The Model Driven Software Network

Raise your level of abstraction

Modeling will be commonplace in three years time (or so Stephen Mellor says)

In the last UML/MoDELS conference, Stephen Mellor gave a keynote speech in which he claimed that modeling will be commonplace in industry in three years time (you can read my summary here: ).

The problem is that himself acknowledged that he has been giving the same answer for the last 20 years. So, my questions is: Is this time for real? Are we really on the verge of seeing a generalized adoption of modeling? I've to say that I'm not that optimistic. What is your opinion?

Views: 472

Reply to This

Replies to This Discussion

In my experience modelling is pervasive in the industry already. But, that's not a useful observation since modelling means many things to many people :-)

Stephen's observation that model-driven development will be commonplace is much more exciting.

My own experience is that the development community is much more interested and aware of model-driven development now than it was 5 years ago. The dedication of many members of this community has played a part in this but I attribute this largely to Microsoft's DSL Tools work, the growing availability of industry-strength open-source tooling such as openArchitectureWare and to more articles and books coming out on model-driven development topics – e.g. Fowler’s forthcoming book. A small amount of additional evidence is the emergence and success of specialist industry conferences such as CG20xx :-)

But, I think we are some way off from Stephen's prediction. The majority of software developers are slow to change their way of working. Where they work in an organisation that is slow to change this poses additional problems.

The composition of the CG20xx conference is a microcosm of the industry – at CG2007 we had almost exclusively what I would term MDD enthusiasts – people who were already working with MDD and being successful with it. At CG2008 and CG2009 we expanded the range of people to include quite a number of complete novices – both from companies and from consultancies. I’ve no doubt we will see more people at CG2010 and again more newcomers who are keen to try out the tooling and learn about the pros and cons of MDD.

MDSN member Jos Warmer is also on record as saying that there will be no need for a Code Generation conference in 10 years because MDD will be mainstream. My own feeling is that the truth lies somewhere between Stephen and Jos’s predictions.

We need more success stories and tooling that is easier to use before MDD becomes mainstream – either that or more developer ‘pain’ with existing methods. The developer community does tend to take its lead from ‘superstar developers’ – with Martin Fowler on-side the chasm may be about to be crossed.
Three years may be a bit short. As Mark points out as well, the actual MDSD community is still not that large if we only count people actively working on and with the various MDSD options and compare the numbers to the number of people actually developing software. (Oops, was that really one sentence ;-))

Given that people are reluctant to accept change, and a lot of developers still have a main interest in programming, it may take a bit longer - say 5 to 10 years. Just look at how long it took in many companies to actually get OO accepted as a workable concept. Component based development completely went past a lot of companies. At the same time the Agile development practises have become quite populare very quickly, in my opinion because the focus there is on (efficient) programming, i.e. programming is the core of development, rather than design and modeling.
With textual DSLs becoming popular now, even though they've been around for years, the gap between programming and modeling is becoming a lot smaller and more of the 'real programmers' get interested. Still, not interested enough to make MDD mainstream in 3 years time.
> My own experience is that the development community is much more interested and aware of model-driven development now than it was 5 years ago.

I'm completely sure about this, but I'm afraid that I see a huge difference between "awareness" and actual "usage". At least awareness is a first step
Moreover, early adoption at the edge of the industry is far from the reality of the mean shops.
Actually the usefulness of the entire concept of OO for many problem domains is drawn in to question by many 'superstar developers' in the book 'Coders at Work', which I highly recommend.

Much like OO, I think to get uptake on modelling what you have to do is lead: show people that you can solve a problem smarter, faster, and more flexibly with a modelling based approach. Quite frankly, a lot of the time this isn't true, and that's why modelling is a tool and not a panacaea. If coders have to give up the ability to optimise or switch direction due to inflexible modelling workflows (often), then they will reject models entirely. This is why models with code-synch (two way) are easier to adopt, and why you only tend to see (IMHO) large scale use of modelling in 'enterprise' (read: slow, large-budget, cash available) environments where top-down decision making and the likes of UML are still a viable design approach. The rest of the world doesn't live in this bubble, which feels soul-destroying and pointless for many talented coders. Increasingly, with 'agile' and open source, we are actually seeing the reverse: the free-world, internet-based, open source talent's approach to programming win over the top-down. Personally, I am not surprised. There is a massive disconnect between parts of this community and wider reality, that which lies outside their own specific niche in the programming world.
Hm, well.

I can understand your point of view, I can understand the points of view of those "superstar developers", I can agree to some of their statements really from the bottom of my heart. But that does not mean much. There are other quotes I'd consider rather wrong, and while there are names on the list I'm holding in highest esteem, there are others who have written software I had to work with and still remember the pain (I won't tell the names and your guesses will most likely be wrong).

“These are wonderful interviews and this looks to be a bible for any programmer who aspires to be better.”

The problem is, as with all kinds of successes and related guidebooks, that you really won't get better by just reading about them. Even worse are the "followers" who reinterpret what they heard and distribute their translated messages as the truth. Don't believe it! Work hard on your own understanding, and trust yourself.

That said: yes, modelling has been for a long time (and still to some degree is) a costly enterprise luxus. And yes, quite often that has been associated with OO(P), UML, MDSD. But to throw out the baby with the bath water and blame those approaches is agile hype, derived from the originally rightful criticism on BigDesignUpFront and then over and over repaeted that it finally became "OO failed". Some people nowadays even do not know the difference between OO and OOP - how can they reasonably judge on it? Moreover, in open source and everywhere, OO has become so widespread that one can find sitting people in front of their IDE, based heavily on OO, working with a language based heavily on OO, and simultaneously claiming OO failed. That's - fascinating.

I've seen many software in different languages and contexts. Open source is great, so is OO, but no approach can guarantee quality. Still good programmers are required to produce good software. An important sign of a good programmer - to all my experience - is that he never ever flatly denounces an approach.
The other day, lunching with colleagues, we think aloud and conclude about project management and the usage of metrics and dashboards ending in paralysis by analysis:

"Your are not going to win the match just looking the scoreboard at every time. It's time for action, change something!"

For this question, I think the same approach applies: Who, if not us, the practitioners and tool makers are the ones who should make it possible?

I don't know when the mainstream will catch it, but in the mean time, we will try to do our work with the best technology and methods we have or research. Others will take a look soon or later. :)

The answer is in inside us: how fast we can create such momentum?
I feel we are in the good track with MSDN and CG*.
On that one, a CG devotee might say that project management 'action code' is fruitfully generated from the 'source code repository commits' model. (ie: If you have technical project managers who understand and make an effort to keep up with what is going on with their project at the code level, then you close the loop and everybody benefits)
Pedro, I think you meant "MDSN" (Model-Driven Software Network) instead of "MSDN" (Microsoft Developer Network)...
Yes Rui, thank for fixing it!
In what other thing I could be thinking of? }:)




© 2019   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service