The introduction of new technologies or processes is always accompanied by a learning process. In this context, there are uncertainties and sometimes suboptimal decisions are made to learn from.
Although data modeling has an important role in software development, it is often equated with database schemas or plain data objects. UML is an important and well-known topic, but for many it seems too academic and is often just used for documentation purposes. It is not just about using a certain framework, but rather conveying an alternative way of thinking, coupled with appropriate standards and methodologies for model-to-model or model-to-text transformation. In doing so, we help to manifest something that, in our experience, already exists in the minds of the business and the developers and is just waiting to be formalized.
Introducing a domain language / nomenclature on use-case level in a non-technical field as well as the technically related development, ensures a better understanding and communication among the business departments and developers. Model Driven Software Development – MDSD – can increase your development efficiency by using the right tools and frameworks out of the UML tool set, It then moves a model from the pure documentational character to a crucial and enabling role in your development process.
Thanks to our years of experience with EMF-Eclipse Modeling Framework and its ecosystem, we can share our expertise in form of
- Workshop and Moderation (Design, Data-Modeling)
- Model Reviews
- Technological Consultancy (UML, EMF)
Smart City and Industry 4.0
These two expressions are omnipresent nowadays. A key success factor of these topics are the handling of information. New use-cases evolve out of the availability of data. In addition to that new information can be transformed and combined out of that data in an intelligent way.
This requires a new system architecture. Modularization of different data sources and specification of interfaces and data models are, as well as scalability, mandatory requirements for that. Publicly available specifications will spread the acceptance of such a system.
In an existing infrastructure with existing products, data sources and protocols, a new “Information Hub” can be placed, bypassing, established systems and architectures. By hooking interface adapters into crucial points at your legacy systems, the information hub is connected to the “old” world. Such use-cases are common in the real world, where it’s not simply possible to start from scratch.
Our non-technical and technical portfolio matches perfectly with the requirements of such an ecosystem. Our experiences in topics like modeling, data transformation and the engagement into modular software architectures and distributed system can be a great benefit to related projects.
Every Smart City and Industry 4.0 project is unique and has individual challenges. We can help you identify your needs, bring the people minds together and moderate and guide your project right from the vision to the implementation.
Microservices are currently on everyone’s lips. It is one way of achieving modularity that makes your software more effective, efficient and maintainable. It helps to break down complex processes and software in smaller maintainable modules. This reduces complexity and allows teams and developers to have a better grip on the system.
Modularity is no concept that can be learned in a pinch. Developers that built monolithic software for most of their career, will need time to adjust and accept the new paradigms. These go beyond what meets the eye on first glance and needs to be accounted for in a hatching architecture.
With years of experience in modular systems and close contact to the inventors of the concept, we can give you guidance through such a learning process. We can point you in advance to the hidden issues that need to be addressed.
Introduction of modularity is a process that does not only depend on technical things, but in large part on the human factor. Whole departments and teams will need to be convinced, that they need to abandon their old mindsets and see the merit of this new methodology. We support help with these social aspects as well, to raise awareness and acceptance in your team.
In this context we can provide:
- Guidance through the migration process from monolith to modular system
- Guidance for green field projects
- Training of your staff
- Reviews and analysis of your system
Development Process Reengineering
Projects and products grow over time and so does the build and development process. This often leads to complicated and fragile setups, that might work but restrict the productivity of your team. Modular architecture helps avoiding such a “Frankenbuild”, but it requires the right tools and mindset.
We can help you to make a step back and review this process. Together we can migrate from historical grown, legacy build setups to a smooth running, clean setup that is maintainable by every developer. Our experience is not only restricted to certain build tools like maven or gradle.
We can also provide support of any kind from an architecture of a build process to e.g. Docker based CI/CD infrastructures or a migration planning. We also cover Eclipse RCP / Tycho related build setups and also offer professional BND support and services:
- Migration from legacy PDE or Tycho projects to BND
- Building Eclipse RCP with BND
- Build infrastructure and CI with using BND
Agile 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 most are not directly aware of and which 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.