Blog

Should a New Developer Bother Learning UML?

Way back before software lived in the cloud and “agile” was just an adjective for fast, Grady Booch, Ivar Jacobsen, and James Rumbaugh set forth onto the world a new way of modeling software called the Unified Modeling Language.  Originally released as part of the Rational Unified Process, the model’s diagrams lived beyond the popularity of the process itself to reach near ubiquity in the software industry.  Component, Class, State, and the always popular Sequence diagrams became the way architects and software engineers described their ideas before the first developer clicked “File->New”.

The next phase of evolution for UML diagrams was code generation and it’s here where things started to awry.  Many software tool manufacturers including Microsoft, Sparx Systems, Rational, and others tried to bridge the gap between bidirectional diagram-to-code generation with limited success.  In many cases the code generated was overdone, with literally dozens of near empty classes being generated.  Others didn’t do enough or were “Write Only” models where diagrams couldn’t accurately reflect changes in the underlying code.

As the Internet tidal wave crashed down on the industry bringing with it a need for high speed development and continuous delivery new methodologies started to form like Agile (with a capital A), XP, and Scrum all of which favored code over documentation.  It seems that the world now speaks in code snippets and GitHub repositories.  Online interactive code samples hosted on sites like JSFiddle and CodePen bring your expression of ideas as code to a global public audience.

However, while the folks pushing the latest JavaScript framework might wax poetic about how documentation is a waste of time any developer having to maintain a large system without documentation would gladly offer up their Starbucks card for a decent sequence diagram.  So where do you draw the line?

We want to hear what you think!  Is UML still a valuable tool or just another artifact left in the wake of an industry that is pushing to always go faster?

[poll id=”81″]

Rachel Snowbeck

View Comments

  • I don't use pure UML. I use Doxygen for documenting most projects and include simple box and arrow diagrams (roughly object diagrams but often more dataflow) written using Graphviz DOT syntax.

  • Uml needs to be updated and animated.
    There should be central stores of pluggable diagrams for common patterns with Aspect oriented view filtering and fly through animations.
    It should be a central controller/viewer of all systems aspects and interact with running instances.

  • It's not sufficient to capture business requirements and processes. In Business we talk about phases, stages, progress and duration of process, etc and where is UML in all that... I can't make class diagram with 100's states and meta states to capture business ... no one understands that. Tired of UML....

  • 2 years after this article I'd say UML is still relevant today. Some of its diagrams are simply too good not to use, especially because they can get the message across. @disqus_XS0D4oyec1:disqus: UML was never aimed at capturing business requirements, you'd want BPMN for that. A standard maintained by the same organization which manages UML (O.M.G.; the Object Management Group).

Recent Posts

8-Step AWS to Microsoft Azure Migration Strategy

Microsoft Azure and Amazon Web Services (AWS) are two of the most popular cloud platforms.…

4 days ago

How to Navigate Azure Governance

 Cloud management is difficult to do manually, especially if you work with multiple cloud…

2 weeks ago

Why Azure’s Scalability is Your Key to Business Growth & Efficiency

Azure’s scalable infrastructure is often cited as one of the primary reasons why it's the…

4 weeks ago

Unlocking the Power of AI in your Software Development Life Cycle (SDLC)

https://www.youtube.com/watch?v=wDzCN0d8SeA Watch our "Unlocking the Power of AI in your Software Development Life Cycle (SDLC)"…

1 month ago

The Role of FinOps in Accelerating Business Innovation

FinOps is a strategic approach to managing cloud costs. It combines financial management best practices…

1 month ago

Azure Kubernetes Security Best Practices

Using Kubernetes with Azure combines the power of Kubernetes container orchestration and the cloud capabilities…

2 months ago