There is a big fuzz around model driven development and all the goodness about it, its promises of a high level of agility, cut down of prices, reduction of technical risks etc. etc. Many including myself (having created FENOMEN) think that the model-centric approach is the future of software development, and several companies are doing their business of it and build the next generation platforms and tools for creating agile business applications.
So, why on earth is it that big ISV players like Microsoft, Sun, IBM did not clearly entered the game and just let emerging companies share the cake? If it is so much a golden egg, such big companies should have given it a try and invest a few million on it?
For information: I exclude here IBM MDA tools (Rational tools) from the discussion, as I am talking here about tools targeting business users, and functional modeling + generation of ready to use business applications. The Rational tools are modeling tools but targeting technical users. An example of a company building such business oriented model-driven platforms is FENOMEN.
Here are my own thoughts, and I would be very keen on having your comments and thoughts on the matter!
Why big ISV players do not use a Model-Driven approach for their own products development?
First of all, even though we have been hearing about model-driven development for many years now, a full model-driven / model-centric process is still quite a new approach and you see only a few companies largely adopting it. And main reason is we just start to having matured enough technologies and practices to enable a really efficient model-driven approach. And it is now that model-driven tool vendors of today are competing for being the big players of tomorrow!
Today’s big ISV players like Microsoft, IBM and Google are well-established companies, with a highly technical background and spirit and with well-established and efficient development processes and methodologies. A fully model-driven approach to software development is a huge paradigm shift from a classical development process, and why (and most important: How?) would you want to apply such a big-bang on a company that has already performed well for so many years and knows how to do it well? Well change is good, and they will probably change, but they have a huge code base and millions of engineers to train, and change management is costly. So a fast and large move is not an option and too high risk.
Well, actually they probably already do use some model-driven tools for their own internal use. At least tools and technics that help better the productivity of the developments. However these tools remain internal to their teams and used for very specific parts of their developments. For instance Microsoft built and uses a templating and code generation engine (T4 templates), extensively used as part of Visual Studio environment and used for instance to generate code for user interfaces and web services proxies.
Why big ISV players did not create model-driven tools for their customers?
As we already said: moving from a classical, code-centric approach toward a model-driven / model-centric approach to software development is a huge paradigm shift. If a company wants to build model-driven tools, they should already have applied these new concepts to themselves. A model-driven approach is not something you can theoretically lay down on a paper without previous concrete experience. While the basic concepts can appear as simple: you create a meaningful and extensive meta-model and you generate code from the model (or interpret the model), the practical application is not that easy and you have to learn the pitfalls and best practices by actually doing it yourself.
This is the “eat your own dog food principle”, so dear to Microsoft and so essential for our matter. So: big players will be in a position to develop model-driven platforms and tools for their customers when and only when they will have made the paradigm shift themselves and become experts on the matter. This is why IMHO, the leading model-driven tools of today are developed by emerging, new companies. Leaving an option for big players to enter the game which is to buy one of these successful companies!
A word about OSLO: the Microsoft attempt to enter the Model-Driven game
A few years back, Microsoft announced their commitment to a new set of technologies: M and the OSLO platform.
M is known as a declarative language that provides developers with an approachable, textual format for authoring models and domain-specific languages (DSLs) for those models. In other words: M is a language for creating custom, domain-specific languages.
OSLO was initially supposed to be a platform to model and host business application, with the support of M language and a SQL Server back-end. It was therefore supposed to be a full model-driven business platform.
OSLO was then renamed SQL Server Modeling Project, changing the focus of the platform from a generic model-driven business platform targeting any kind of end-user business application, to a SQL Server specific tool for modeling databases. The target user base therefore moved from business users to… architects and developers! That was the end of OSLO as a true model-driven business platform for building business applications! Why? In my opinion, probably partly because of the reasons explained above. And also because Microsoft first business is to sell server applications, SQL Server being on of their golden eggs. So they did not miss an opportunity to refocus OSLO as an extra layer on top of SQL Server, for the benefits of their SQL Server customers base.
End 2010: Microsoft cancelled the OSLO/SQL Server Modeling project, driver for cancelling being: low anticipated market demand. My own guess being that the refocus of OSLO killed OSLO: OSLO primary goal really was to build a model-driven platform for building business applications. The refocus was maybe done because of an internal failure of implementing the full model-driven platform (reasons above). However the refocus was done on a business need that was not primarily identified as such…
Remains: M as a language. Which is fair enough: It is part of Microsoft business to build languages and they already are successful on this market with their range of Microsoft.NET languages. So we can conclude that it is not an easy task, even for big players, to try to extend their business model to new areas…
Any comments are most welcome!
[EDIT] : I posted the same discussion on the Model Driven Software network, you can see the full discussion and many comments/feedback there:
And also another interesting discussion on the matter: