The benefits of Model-Driven Engineering (MDE) are well-known. Among them, we can cite productivity improvements and fewer defects in the final code, among many other benefits. All thanks to using models, instead of low-level code, to capture, discuss and specify the software to be built.
Despite all of these advantages, the implementation of an MDE-based development process is often faced with resistance and negativism. This has even raised the use of alternative terms (like low-code) to make MDE more developer-friendly. For sure, any initiative that helps to bring “modelling to the masses” is positive, but I think we need more than marketing initiatives. Hence, I advocate for MDE to become more transparent as a key concern to keep in mind in the future evolution of model-driven engineering, in order to maximise its benefits and potential. During this article, I will focus on three dimensions of MDE transparency at the tooling level, at the user level and at the thinking level.
Transparency at the tooling level
Developers should not see modelling tools as a separate type of tool, disconnected from the rest, but as a tool, part of the tool chain that they put in place every time they start a new development project. This means modelling tools should be completely integrated into the iterative development cycle and not just be an initial tool to draw some software blueprints to be forgotten and thrown away after some first high-level discussions. Aspects like textual modelling, that many developers will feel more comfortable with and adapts well to versioning systems, or round-trip engineering, required to make sure modelling and programming artefacts can work together (App Studio could be a good example of this), could play an important role here.
Transparency at the user level
In general, the usability of modelling tools is rather poor. Too many clicks to draw a simple diagram. Lacklustre auto-layout techniques ending up with models full of lines crossing everywhere and obfuscating the model information. We could say that our model-driven tools do a good job in constantly reminding the designer that they are (annoyingly) there.
To face this, we (the modelling community) need to consider usability a primary concern, now that many other technical aspects have been solved. Providing good web-based modelling tools could be a solution for some users. For others, we could even consider integrating with the tools they already use. We know many people model with PowerPoint (or other drawing tools). Let’s either create plugins that transform those tools into real modelling tools or, at the very least, investigate how we can provide similar experiences in our modelling tools as, clearly, there is a learning barrier that prevents people from choosing modelling tools over purely drawing ones.
Transparency at the thinking level
Let’s be honest. Modelling is not easy. Another way to make model-driven more transparent is to make sure users are able to model in a more natural way. Here, we could benefit from recent AI advances to (partially) generate models from whatever documents and data sources the user already has available. We could reuse interviews, requirement documents, existing databases to learn from them and try to generate a potential model of the system. For some specific domains, this model could be rather accurate and be used to directly generate one of the system components. This is for instance what we do in Xatkit where we are able to generate bots automatically configured from the eCommerce data in the shop database. I call this a no-work experience, as we’re really going much beyond the so-called no-code tools.
For more complex domains, we could at least generate a partial model that the user could refine. Or we could bring into the tool a modelling assistant able to suggest changes and improvements on our model (based, for instance, on what the assistant has seen in other models in the past). There are plenty of opportunities to improve the modelling experience and helping users to create better models, faster. I’m looking forward to seeing advances in all these areas. Please reach out if you’re working on any of these topics and want to share your experiences and new developments!