This is a perfect summary of why UML is screwed. In fact, I would add in three more points to the list:
- UML has failed to make sense in agile development. Agile developers prefer code over formalism and coding is very much part of the thinking process. Doing a major modeling exercise does fit well into this
- Open source developers don’t use UML. Again, open source developers communicate using code (I read tons of commit logs each day): The very nature of heterogeneous communities means you can’t force tools on them, and since the availability of good, free tools and interoperability between them is severely lacking, UML just doesn’t work beyond simple diagrams. And since open source is more important than ever, this is significant
- The support for advanced refactoring in modern IDEs means we keep changing our code all the time. Keeping a model up-to-date gets impossible very quickly
All in all, UML is screwed.
Like many of the commentators on the post above, I use simple class diagrams and sequence diagrams to communicate. Usually as part of white board sessions. Despite many attempts, I now never use the UML meta model. The formalism in UML doesn’t help or interest me.
On a separate note, number 12 on the list in the original post is “Treat software development like manufacturing”. This might be my favorite fallacy of software development management. But that’s for a different post.
May 23rd, 2008 at 12:40 pm
I think your points have very little to do with UML itself, but are all caused by inadequate tool support and organizational issues.
When diagrams can be generated from code, they’re always in-sync with code and thus perfectly usable for agilists and refactoring.
The organizational issue of open-source projects comes up with other tools as well, for example build tools. Somewhere you have to agree on a common format.
Best regards,
Yanic
May 23rd, 2008 at 12:45 pm
“I use simple class diagrams and sequence diagrams to communicate. Usually as part of white board sessions.”
Drawing sequence diagrams with Trace Modeler is actually faster than whiteboarding, so you might want to have a look (see my link for a 30 sec demo).
Let me know if you feel up for a challenge ;o)
Best regards,
Yanic
May 23rd, 2008 at 1:07 pm
I can’t see the parallel with any other tools commonly used within the open source community. Build tools are centralized and great ones are freely available.
White boarding is a highly collaborative activity, something I’ve never seen a UML tool do good. How do I let everyone participate in the design if only one is in front of the keyboard. Trace Modeler looks slick, but I doubt it can ever replace a white board for me.
May 23rd, 2008 at 2:46 pm
Use a beamer and a wireless mouse.
May 23rd, 2008 at 3:24 pm