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:
http://www.modeldrivensoftware.net/forum/topics/the-new-goldenegg-modeldriven
And also another interesting discussion on the matter:
http://www.modeldrivensoftware.net/forum/topics/agile-business-application
I can of some other reasons:
First, big ISV players have to cater for a large business audience (or they think they have to to make it worth their while) and developing a useful/-able, meaningful model-driven targeting such an audience is really, really difficult. Think of how few really mature IDE's (1 for the .NET ecology, essentially 3 for the Java ecology -I don't count vim/Emacs + a command line compiler as an IDE, btw) and mature Office workbenches (essentially 2: Microsoft + OpenOffice and derivatives) are around. And those thinks are relatively easy compared to a business-oriented, model-driven tool.
Second, ISV's often develop IDE's for their own use: Eclipse was started largely from within IBM for RAD and VisualStudio by Microsoft. But MDSD is not suitable for all software: the amount of commonality (vs. variability) and homogeneity more or less governs whether MDSD is an economic proposition. Re-use across projects also requires commonality and homogeneity to be the same (to a large degree) across projects. So, it's two big steps moving from local/ad hoc technologically-oriented solutions to a business-oriented, model-driven workbench.
In practice, I expect such tooling to grow from small ventures who can afford to evolve quickly against actual customers without the need to put out a product that is "good (enough) for everyone".
Posted by: Meinte Boersma | 01/02/2011 at 13:53
Hello Meinte,
Thanks for your insightful comments:)
Yes can't agree more: it is very hard to build a model-driven platform that targets a huge user base. And the big players' success becomes in such a scenario a handicap. At least for the first versions of the platform.
So it quite makes sense that small ventures are the leaders in this market.
You'll find other feedback on this topic on the model driven software network : http://www.modeldrivensoftware.net/forum/topics/the-new-goldenegg-modeldriven
Posted by: Walter Almeida | 01/02/2011 at 14:41
wow!!! this is great job!!!! congratulations!
Posted by: freelance writer | 08/11/2011 at 17:04
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!
Posted by: Ashton Kutcher | 31/03/2012 at 00:32
I'm not sure why but this blog is loading very slow for me. Is anyone else having this issue or is it a issue on my end? I'll check back later on and see if the problem still exists.
Posted by: popular family dog | 26/10/2013 at 17:07