After talking with Richard from ArcStyler I sent him a message that talked about two things. First why XDoclet was more popular than MDA, and second the types of concerns that people have with MDA. Both of these were just my opinion, or what I had heard when I had talked with people close at hand.
You might not know what MDA is, and that's part of the problem. It's not a drug. It's model-driven generation based on UML. It's an emerging standard from the OMG. The scenario looks like this; you have your whole project modeled in something like Rational Rose, you export the UML diagram as XML, and from that XML you generate the whole thing, or pretty close to the whole thing.
If you have concerns with this it's probably because you are not a big UML fan. Frankly, I could be hanging around in the wrong set, but I don't know many people that are UML fans. Richard said that most of his clients were European financial institutions. I'm going to generalize here, I think the software engineering culture of a European financial institution is drastically different from a startup.
So what are the issues around MDA for a startup style company? Here are some issues that I have heard:
- UML itself is an issue as engineers only passingly familiar with it. Or UML cannot model your project, or various parts of your project, such as the application semantics.
- Attempting to generate all of the code for the application is considered too ambitious for a single generator.
- The culture of the company is such that only a few could be convinced about MDA. So it would be a hard sell.
- Your project is not completely "spec'd out" before implementation. In the startup world does it ever happen that the spec is even close to reality?
- You have a legacy code base where it would be difficult to adapt the generator to write code for your standards.
- You don't have an architect/engineer work environment split. You only have engineers. The assumption is that MDA requires an architect/engineer methodology.
- Generating 100% of the code can't happen, so building the other 20% or so that the generator leaves behind will be difficult.
I'm not saying that these are accurate or fair, I'm just saying that I have heard these and that means that these need to be addresses before the engineers behind them can be sold on MDA.
I'd love to hear what your thoughts MDA. I'm thinkng about turning this into a Devx op-ed piece or maybe an article on some other service. I get the feeling that if I extensively interviewed Richard, and the OMG guys, and got some material both from users of MDA and people that were negative about MDA that it would be a big article.
It would be an interesting article. Theoretically MDA, or something like it, is the cure to all of our software engineering woes. Why then, aren't we turning to it in droves?