During the last few years, Jon Whittle, John Hutchinson, and Mark Rouncefield have been trying to understand whether developers use some kind of model-driven approach in practice (and if so, how and why).
In their recent paper: The State of Practice in Model-Driven Engineering (IEEE Software, May-June 2014) they summarize the main conclusions from their “field work” (in short, a survey involving 450 developers complemented with deep interviews with 22 of them).
Given the nature of the paper (“We describe elsewhere the gory details … In this article, we focus on key takehome messages for those who have adopted MDE or who are thinking of adopting it“) clearly my recommendation is that you go ahead and read the whole paper from start to bottom. Still, since you may not have easy access to the article (let’s skip a yet another discussion on open access 🙂 ) I think it’s worth to enumerate some of their hightights (again, for the reasoning/data behind those claims refer to the paper):
- MDE use is widespread
- Companies who successfully applied MDE largely did so by creating or using languages specifically developed for their domain
- MDE efforts imposed by high-level management typically struggle
- Code-generation doesn’t drive MDE
- The main advantages are in the support that MDE provides in documenting a good software architecture
- Certain types of developers can be very resistant to MDE
- MDE can offer a fundamental shift in global software development
- There are interesting relationships between the structure and business of an organization and the likelihood that MDE is appropriate or will be a success
- MDE developers need both compiler development skills and abstraction skills
- …
Were you surprised by these findings? Do you agree with them? Do they reflect your own reality?
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. Â More about me.
“Companies who successfully applied MDE largely did so by creating or using languages specifically developed for their domain”
=> see tens of such cases at http://www.dsmforum.org/cases.html
Link to the article: http://eprints.lancs.ac.uk/69765/1/SO_SW_2012_12_0188.R1_Whittle.pdf
“Code-generation doesn’t drive MDE”
When most tools supporting code generation can actually only do partial code generation (e.g. no support for modeling behavior, developers still need to fill in the logic in methods), that finding is not surprising at all.
Interesting read, also because I wrote an article for a Dutch magazine, which led to similar, if not identical conclusions. Only difference is that I used the Code Generation 2014 conference and interviews with 7 Dutch MDE users as input rather than interviewing over 450.