I've been meaning to refer to Arnon Rotem-Gal-Oz's Cirrus Minor, and in particular his entry on the current state of Software Factories. He makes several good points there, many similar to those of Roy Osherove that I quoted yesterday. One main worry he shares with me is that Microsoft don't really know yet what to use their tools for:
Microsoft seems to be taking some steps in the right direction (GAT is probably the best example). Nevertheless there is still a long way to go before we can realize the dream of "factories" for vertical applications This is evident if you take a look at the current crop of DSL examples. These are either some Horizontal languages and tools (i.e. not aimed at a specific business domain) like UIP designer or the GAT4WS Beat [Schwegler] talked about @ the event or even worse UML designers... ('nuff said).
One good reference he points to is the article "Software reuse: From Library to Factory" by M. L. Griss (published in 1993(!)). The ideas in the article are still valid today: good ideas don't lose their validity, people just take time to realize them -- in both senses of "realize".
In his comment on my post from yesterday, Arnon says it is fair to criticize Microsoft over the results of the HL7 example, since "it involved software factories experts (Jack Greenfield)". Now Jack is of course by definition the expert on Software Factories, since he and Keith Short appropriated the term for their work in Microsoft. And he's certainly got an impressive CV, has done similar things in the past, and will no doubt by now be experienced at applying SF.
But was it fair to expect Jack to be a DSM expert in practice at the start of the HL7 project, when he'd not (to my knowledge) used another DSM tool before, and so had only had months of experience with a pre-beta version of Microsoft's DSL tools? If an expert is just someone who knows more than the man in the street then yes, sure. But compared to people who have been doing DSM with a DSM tool for ten years, over many cases in different domains? There are three teams in the world that can claim that: GME and DOME are two of them, and the third isn't Microsoft :-).
So yes, maybe it's fair to conclude Microsoft haven't quite got it all together yet, and even say as Arnon does that their "weak tooling" still has "a very long way to go". And of course coming up with a DSM language and generators is always going to be hard: something you use your best developer for, not a summer intern.
But that doesn't mean the promises of DSM are far off -- far from it! If you have good tooling then building a modeling language, generators and tool support for them is an awful lot easier. Either download MetaEdit+ and see for yourself, or if you haven't even got an hour for that, check out some of our unsolicited testimonials, e.g.
- "Even as a beginner with MetaEdit+, I could define a domain-specific activity language in about six hours - design, testing and one failed trial included," -- Laurent Safa, Matsushita Electric Works
- "MetaEdit+ is the most sophisticated DSM tool" -- Scott Ambler