When talking about Model-Driven Software Development with people in the wider software world I'm often faced with common myths. I think it's a good idea for us here to be aware of such myths and how to 'explode' them.
So, can I ask that we share a few of the common myths that we've heard and how we counter-act them?
Some 'myths' I face regularly:
- MDSD isn't 'agile'
- You have to be a 'guru' to use MDSD (last guru cited was Stephen Wolfram)
>> - MDSD isn't 'agile'
I'm preparing a half day session on the topic of how MDSD is agile, as part of a masterclass in Agile Architecting (http://www.agile-architecting.com).
As for myths, how about this one. The example case hasn't been countered yet, but the person in question has left the company so there's new chances there:
A company creates a large number of similar applications in it's domain [details on request, left out for sensitivity reasons], and has been applying a copy-paste-modify approach for years. This goes as far as copying the code of an application still being developed and create a new application based on that, in parallel. I talked to the architect a couple of times, pointing out that apparently there is a lot of repetition in his applicaitions, and that an MDSD, more specifically, a DSM approach could be very useful. He agreed with the story on each occasion, but after three week research period, he concluded that he 'cannot find any useful repetition and is no longer interested'. I was not awarded a look at the code, so I couldn't get much further, but knowing this person and his interests and fears quite well, I think this can be scheduled under either one of these three myths:
MDSD/DSM isn't compatible with 'open source' solutions [the guy is a Linux and Python promotor, and was trying to move the company platform in that direction]
MDSD is a thread to the position of software architects as well as programmers
You have to know exactly where your repetiting efforts are before even considering MDSD
The first one is easily countered: the Eclipse based efforts are fully Open Source as far as I can tell, and tools like e.g. MetaEdit+ are easily integrated with Open Source development and solution environments.
The second takes more effort to convince people, but from a logical perspective is also easily countered: in order to have a platform for MDSD, architects are still needed, and following the reasoning that "generators only generate what your best programmers create manually" I don't expect programmers to be out of a job either.
The third one fits in nicely with the Agile part: being aware that repetition exists, and that it can be realised more efficiently with MDSD is a good starting point. Finding the first opportunity to do so is a first iteration, and growing insights and an agile, iterative approach will help you take it further from there. I'll elaborate more on that once the masterclass session is more complete.