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?

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This