Our consulting services
The introduction of new technologies or processes is always accompanied by a learning process. In this learning process, uncertainties and resulting suboptimal decisions can be made that influence the whole further process. You should learn from this, but you do not have to do it alone. We are happy to give you a leg up if you get stuck at any point in the process. With our extensive experience from our own processes and projects, we offer you the advice you need.
Modelling
In times of digital change and in modern software development, the modelling of data and processes is more relevant than ever before. Too often in recent years we have seen the importance of modelling being underestimated. In our opinion, it still happens too frequent in software development that data models are equated with database schemas and/or data objects. As far as models in the context of UML are concerned, they often only have a documentational character. This is a result of the view that UML - as a relevant and well-known tool for technical and engineering departments - is too academic.
To us, modelling means more than just using a framework or diagramming tool. It is about a methodology and a different way of looking at problems or and processes. Do you already have an idea that is just waiting to be manifested and formalised? We are happy to support you in this. The focus of our work is not only on the pure skills of modelling, but also on the challenges and changes that people face through modelling.
The introduction of a domain-specific language or semantics at the use-case level improves business communication, especially between technical and non-technical areas. Model-driven software development (MDSD) can significantly increase efficiency in development, provided the right tools are mastered and applied.
The UML toolset, for example, can be very helpful. Thus, your model can make a transition from its original documentational character to an integral key function for your company.
We can support you optimally in the upcoming challenges of digitalisation and digital transformation. This is due to our extensive experience in handling data modeling, processes and challenges in introducing such a methodology in companies.
Benefit from our expertise in:
- Workshop and facilitation (design, data modelling)
- Support in the introduction of modelling in companies
- Training on modelling in the company and technical training
- Model review
- Technological consulting - MDSD (UML, EMF)
Smart City and Industry 4.0
These issues are ever-present nowadays. The key factor for success in these areas is the handling and processing of information and data. Interesting new use cases arise from the availability of information and the possibility of combining or enriching it easily and intelligently with other data.
A corresponding system architecture is a prerequisite for this. Modularisation, scaling and availability of components and data sources are indispensable. The success and acceptance of such a system is also determined by well-specified data models and interfaces.
Existing, historically grown and established architectures do not offer appropriate extension possibilities for a variety of reasons. For these reasons, it is often not possible to start “from scratch” with new developments. With our know-how, we outline your “information hub”, which can be placed in such a way as to connect existing “old world systems” by means of protocol or interface adapters anyway.
Our technical, business and sociological expertise will provide you with benefits in your projects. In particular, our skills in interfaces and modelling, and our experience with scalable and distributed architectures will be of great value to you. All these projects have a highly individual character. Particularly the lack of experience in these new areas is frequently a challenge for internal staff. We are happy to moderate your workshops and train your staff to overcome the barriers to entry for such topics.
Modular architectures
Everyone is currently talking about microservices, which is a paradigm for achieving modularity in order to make an application more flexible, more scalable and thus more efficient. Complex processes are divided into separate, self-contained modules. This reduces complexity and makes it easier for the team to gain an understanding of the system.
However, modularity is not a concept that can be learned quickly. Distributing multiple services within an infrastructure also differs from the old familiar methodology of local calls. Developers who have many years of experience in developing monolithic systems will need some time to come to terms with and adapt to the changed situations and concepts. Often these concepts go beyond the obvious, but should be taken into account for a future, well-maintainable architecture. Our experience can help point you in the right places and, if necessary, save you from making expensive mistakes.
Introducing modularity is not a purely technical process. Product managers and developers have to put aside their old ways of thinking in order to internalise these new methods and approaches. Only then will acceptance and understanding of these new processes and approaches increase:
- Help with the transition/migration from monolithic to modular systems
- Architecture support for “greenfield” projects
- Staff training
- Prototyping
- Architecture review
Development process optimisation
Software products and projects usually grow over years. The development process grows on the same scale. This can quickly lead to setups that are fragile, that work but also lead to scepticism and caution in the development team. Again, modular architectures and processes help to avoid a “Frankenbuild”.
We help you take a step back and look at your build processes from a different perspective. Together we help them identify their problem areas and restructure them with appropriate tools so that they become maintainable for every developer.
Our experience is not limited to build tools like Maven or Gradle. We also support you with architecture and migrations of build processes, optimisations regarding versioning or the introduction of API baselining. We also offer professional BND support and help you build Eclipse RCP applications with Maven Tycho, for example:
- Migration from Eclipse IDE PDE or Tycho to BND
- Build Eclipse RCP with BND
- Build infrastructures and CI with BND and Gradle or Maven
Agile development processes
The introduction of agile development processes can present teams with new challenges. Especially the methods of agile software development with SCRUM are often misunderstood. It is important that all parties concerned are involved and what agile software development actually means. Every company has to choose from the tools that SCRUM offers those that fit optimally into their process world.
There are many inconspicuous aspects that are not immediately obvious or known, but can have a significant impact on processes. For example, the introduction of semantic versioning requires significant changes in development processes. We help you to explain the different tools from the agile toolbox and to identify the ones that are appropriate for your company. As SCRUM masters, we support you in living the agile methods as a motto instead of seeing them as a rigid process.
Our project experience has taught us to recognise how agile methods can be reconciled with existing, sometimes externally prescribed process models. We are happy to show in training how other business areas can also benefit from agile methods.