Last week I attended an OMG meeting for the first time in almost 6 years. If you don’t know, the OMG – Object Management Group – is the organization that specifies UML, as well as a lot of related specifications such as BPMN and MOF, and some unrelated ones such as CORBA. The last time I attended an OMG meeting I worked for IBM and was one of the authors of UML 2.
I was made extremely welcome: one big hug, and lots of warm handshakes and friendly conversations with smart and committed people. I gave a presentation about UML 2, which attempted to capture the improvements that I think are necessary to make it really fit for purpose. This was no different from what I’ve been saying about it ever since I joined Microsoft, but now we’ve rejoined the organization there is a new opportunity to do something about it. I’m hopeful that my involvement will help to re-energize the UML specification process and we can fix some of the things that people complain about.
You might well ask why we didn’t do this five years ago. What’s changed? I think there are several points.
Firstly, Microsoft has now made interoperability a priority, and supporting important standards is a reality, e.g. from Ray Ozzie’s keynote at Mix08 : “in today's world of loosely coupled systems, transparency, standards, and interoperability are key”. Another recent example is the Content Management Interoperability Services specification.
Secondly, five years ago the market was naive about UML – it was often thought of as the “Universal Modelling Language” and surrounded by too much simplistic thinking. Our entry into the debate with Software Factories and Domain Specific Languages was, I believe, extremely healthy and helped people to grapple with some of the real issues involved in the debate. In case you wondered, we’re still as committed to those initiatives as we ever were.
Thirdly, we’re now firmly in the Application Lifecycle Management business, listening hard to our enterprise customers, and they are telling us regularly, loudly and clearly that they want us to support UML in Visual Studio Team System.
Finally, I think that in 2003 some of the key contributors were simply exhausted by the UML 2 effort. It didn’t quite produce the lean, mean, powerful construct that many of us were hoping for, and it was very hard work. It has taken a while for these folks (and quite frankly, for me) to regroup and look into the future.