umldesign-documents

Design documents vs UML or both?


I've had a hard time sitting in front of UML and getting value out of it because it almost seems like as much work as programming (if you use an expressive language). I find that writing natural language tells me more about a software project than creating complicated diagrams. I'm new to UML though and I wondered from others who know UML well:

  1. Is UML worth all the time it takes to learn / do, even for small-medium projects?
  2. Can well elaborated design documents, while still higher level, suffice to keep programmers on target to create the right code, even in teams?

Solution

  • I don't think UML is sufficient on its own.

    I've had a hard time sitting in front of UML and getting value out of it because it almost seems like as much work as programming (if you use an expressive language).

    I agree with this. UML can provide method signatures, but you don't fill in the meat of the method. Worse, you can't do anything approaching TDD with UML. Given a choice, I'd rather have TDD and functioning code than UML diagrams.

    I find that writing natural language tells me more about a software project than creating complicated diagrams.

    Spot on. Pictures can be helpful, unless they're bad pictures. Sequence diagrams tend to become impossibly complicated for all but trivial flows.

    Is UML worth all the time it takes to learn / do, even for small-medium projects?

    Vendors and architects will tell you UML is indispensible, but I don't agree. I fall into the "skecher" camp of UML users.

    Can well elaborated design documents, while still higher level, suffice to keep programmers on target to create the right code, even in teams?

    I don't know what suffices to keep programmers on target, but I'd guess that UML isn't a big part of it. Architects tend to love it because UML tools keep them busy, but most developers don't care beyond boxes and arrows on white boards.