The introduction of new technologies or processes is always accompanied by a learning process. In this context, there are uncertainties and sometimes sub-optimal decisions are made from which to learn.

Introduction

Software developers know that the first implementation based on new technology is rarely optimal. One would then like to do everything again, better, different, bring the knowledge learned in the meantime and avoid the mistakes made. In the best case, this only costs your companies money and time, and in the worst case their customers‘ trust.

Benefit from our expertise in a wide range of software development topics. Our content is practical and we are happy to address your needs and incorporate them into training courses and practical workshops.

OSGi

OSGi is an industry standard set of powerful tools and specifications that make your software more effective, efficient and maintainable. Modular software development and the topic Microservices are currently on everyone’s lips. OSGi has been doing just that for a long time and, if applied correctly, leads to a decoupled programming.

Our experiences with OSGi range from limited hardware projects, to modular desktop applications, to scalable servers, microservice, and cloud-based use cases.

As a member of the OSGi Alliance, in important working groups, we provide valuable background knowledge on specifications around OSGi. This includes not only the programming but also the topics architecture, product development, development processes and tooling.

Combined with our many years of experience with agile and model-driven software development as well as the appropriate business background, you get an optimal overall package.

Modeling in software development

Although data modeling has an important role in software development, it is often equated only with database schemas or pojos. UML is an important and well-known topic, but for many it seems too academic and is often  just documentation.

It does not have to be that way! Model Driven Software Development – MDSD can make many things easier by using the right tools and frameworks. Although the UML tool set is used, it uses only practical components that are decisive for the development efficiency.

For example, the introduction of a language / nomenclature for the non-technical field as well as the technically stored development, already at the use-case level, ensures a better understanding among the departments. In development, MDSD provides the right place for greater efficiency, better communication and reduction of sources of error.

Thanks to our years of experience with EMF-Eclipse Modeling Framework and its ecosystem, we can provide training, consulting and support for large as well as small projects. This is not just about using a framework, but rather conveying an alternative way of thinking, coupled with appropriate tools for model-to-model or model-to-text transformation. In doing so, we help to manifest something that, in our experience, is already existing in the minds of the business and the developers,  and is just waiting for appropriate tools and formalization.

Eclipse RCP & Eclipse plugin development

You or your client want a real desktop application instead of a web application, or you need plugins for an existing rich client application or even the Eclipse IDE? We can point them in the Eclipse world. We stripe topics according to your needs. From the Usabillity, UI test, build process, updates sites, product build, use of various frameworks, branding and context-sensitive help, but also the topics OSGi and the EMF ecosystem we can convey both theoretically and in practical hands-on , The training courses and workshops are not only aimed at developers but are also suitable for product managers and other decision-makers. Benefit from our many years of practical experience in this environment.

Effective development of  OSGi & Eclipse projects

Development of OSGi and Eclipse applications has become much easier in recent years. In long-running projects, however, there are often still outdated processes that make the development of new functions, in particular, more difficult and make an automated build process a challenge. This directly adversely affects the efficiency of the development.

In internal projects and on behalf of our clients, we regularly carry out migrations as well as migration support from, for example, Ant-based Eclipse PDE projects to Maven Tycho or BND. From experience we know that the hurdle of a change with increasing project size does not decrease. The opposite is the case. Challenges are also special product builds or any departure from the standard build process.

We develop migration, integration and / or release strategies for the software production process, assisting your development teams or carrying out the entire migration for you. In addition, we are happy to assist you with topics such as Continuous Integration, Dependency Management, Deployment, Repositories and Docker Builds.

Search & Indexing with Apache Lucene

Whether a comfortable search or faster access to prepared data, Apache Lucene is very much the medium of choice. However, the way Lucene works requires in many cases a rethinking, away from the traditional way of obtaining and processing data from a database. We are happy to advise and train you on useful areas of application, what expectations you can fulfill with them and how they can solve technical problems specifically. This does not only apply to the use of existing products such as Elasticsearch or Solr. Even if you are thinking about an embedded application in your application, we are happy to assist you. We also like to show you how to integrate an almost real-time search, auto-suggestions, similarity search and extensive geo-spatial search into your database, what you have to keep in mind when indexing and what to pay attention to in data modeling. Another interesting topic is the implementation of trainable systems with Lucene without having to use heavy weight tools like Hadoop, Spark.

Effective development processes & process automation

You want to make your development process more effective? This can mean continuous integration, test automation, simplified setup for new developers or projects, and enterprise-specific tools and plug-ins. Here we offer individual training and consultations to help your company and its employees to progress. We show release and branching strategies, proven tool chains that increase development efficiency. Together with you, we examine which tools are suitable for your company. It’s not just about the ongoing process, it’s about the many tools that help set up new development environments or initialize new infrastructure projects. We also provide insights on how you can customize tools or development environments yourself with a reasonable effort.

Agiles development processes

The introduction of agile development processes in a company poses a whole series of unique challenges. It is important to understand what the term agile means and what such an approach offers to all parties involved. There are many different aspects to consider that are not directly aware of the few and can have a positive impact on the company, its processes and its customers. We are happy to explain how to use methods from the SCRUM toolbox to understand agile practice as a motto, not as a rigid process. Through years of practice in agile projects and our work as SCRUM Masters, we offer a wealth of experience, which we can convey from the management to the development team. We can therefore work out how agile procedures can coexist with and complement external procedures. You may also want to learn how other areas of your organization can benefit from agile methods in addition to software development.

Back to top