The greatest challenge while developing software for systems is the communication and alignment between all disciplines and everyone involved in the process. Model Driven Engineering (MDE) is a relatively new methodology that enables complete synergy between all parties. A next step in software development that is not completely new but for which the time now seems to be right. Operations Manager at ICT Group, Ronald Wiericx and Senior Software Designer, Olaf Donk are pioneering with MDE.

The original approach of developing systems is to make a design in which the clients specifies what requirements need to be made,” Olaf explains. “the designer creates a design from the requirements and the programmer develops the code. But each discipline speaks another language and often the result is not what other persons involved aimed at. In this process all parties that are involved make a lot of assumptions which in the end may prove to be false.”

“This so-called waterfall method is a very linear way of developing software and takes a long time,” Olaf continues. “At the moment a lot of companies already work in a much more agile manner. There are more delivery and testing moments. But it is still a very traditional way of developing systems.”

Working on a central model

“When applying MDE we all start with the same starting point,” Ronald explains. The designer, developers and users all work on the same model. A model that is written in a language that all parties involved understand.” Olaf adds: “a language which is domain specific. It is a lot easier to have in depth discussions if you know what you are talking about and when you know what you are aiming for. The methodology allows you to analyze more aspects before you actually build the system. It allows you to generate code from the model. Changes in the model will propagate easily into the code. The approach enables a more efficient way of testing the software. This complete development cycle results in an accurate system that fits or exceeds the customer’s expectations.”

Market seems to be ready to adopt Model Driven Engineering

“MDE is not incredibly new, but at this moment the market seems to be ready to adopt it,” Ronald says. “When I got to know it seven years ago I immediately believed in it, but today it is still not used on a large scale. That is probably mainly because this approach is not what generations of developers have learned. They were taught to program code, and that is what they put into practice and what they are very good at it. Nowadays people are educated differently. Recently we hired a number of professionals fresh from school that are used to thinking in models and they think MDE is great.”

Different set of skills required for Model Driven Engineering

“Other reasons why the market seems to be ready to adopt MDE now is that years ago MDE tooling was simply not attractive”, Olaf adds. “Nowadays there are a lot of tools and moreover computing power has increased. Computers are faster and offer more capacity.” Olaf agrees the different way of working is the main barrier for a fast adoption of MDE. “Applying Model Driven Engineering requires a different mindset. Getting people to work on a sound model and validating it, together with other disciplines is a totally different approach and requires different skills. Soft skills and thinking in a more abstract way are becoming more and more important for developers.”

Invest in fine-tuning the central model

Although MDE is increasingly adopted by companies, Ronald and Olaf expect it will still take time before the approach will be widely used. “You spend a lot more time on tuning the requirements and design phase and a lot less time on implementation and testing.” Olaf explains. “When you have perfected the model, you need a lot less manual labour. Moreover, the MDE approach forces you to be more complete on requirements aspects, in a language that all involved disciplines understand. It will lead to efficiency on the long run but it takes time to apply MDE. It requires all disciplines to work in a different way. The first few projects you do using MDE are serious investments for a company.”

Thinking about the essence during a team effort

Olaf regularly puts this new way of working into practice. He recently worked on an MDE project for a large company in the Brainport Eindhoven regionthat was aimed at making a part of the machine that the company produces more sustainable. “At the moment I spend 1,5 day of my time on making others enthusiastic and I spend about two days on developing models, the rest of my time I spend on research. What I like about how the MDE approach has changed my role is that you work with other roles more intensely. It really has become a team effort, interaction is key and you work together closely. Moreover, I love puzzles. When you use MDE you really think about the essence.”

“A long time ago I learned to develop in the traditional manner,” Olaf says. “But somewhere along the way I realized that it is simply not efficient and that it is time for a change. You need to align the process and everyone that is involved. And that is what you do with MDE.”

Real transition in the market is yet to come

“In my role as operations manager I am less involved in technology than Olaf is,” Ronald continues. “ICT is building its network with companies that are also interested in the MDE methodology. You need to collaborate. Software engineers with the right profile are scarce and need to be trained. At ICT Group I hire and coach developers who work with MDE and make sure they are educated properly. Something which is not easy for MDE as there are currently only a few parties that provide proper education. MDE education is still in its infancy.”

“ICT Group invests a lot in Model Driven Engineering,” Ronald says, “but it is still upcoming; the real transition in the market is yet to come. That is why you see that companies start with small pilot projects besides their regular processes and gradually extend the approach. Nevertheless, I believe MDE is going to be the future methodology used for software developing.”