UML, we will miss you
Unified Modeling Language (UML), developed by Rational Software and adopted as a standard by the Object Management Group (OMG) in 1997, was intended to standardize many different types of graphical notations adopted by the software development industry.
My history of relationship with the UML began almost a decade ago, when I became an evangelist for this language as bridge between IT and business… I have never been fully convinced of the value of the UML as a notation for modeling specific software products; my goal was to use UML to describe the required structural and behavioral properties expected from the designed system.
The revelation for me was the formal semantics associated with UML Activity Diagrams. I couldn’t stand the informal Visio diagrams because of the many ambiguities in them. For example, what do the two arrows outgoing from the rectangle mean: selection or splitting the stream into two parallel paths? A similar example: do two arrows pointing to the same rectangle mean that the action starts immediately after the first thread reaches the rectangle? Or maybe it’s OR, XOR, or AND? In general, you get the point. The UML solves this problem by introducing clear and unambiguous semantics.
The game was unfair from the beginning: there is no correct answer
I really put my heart into the UML:
- I drew diagrams for my own solutions from 2004 to 2015 for seven different employers and clients almost exclusively using UML.
- I have run UML bootcamps (for business analysts) with two large clients.
- For my Ph.D. thesis, I identified a key set of discrete mathematics that is the foundation for most of the structural and behavioral models of the UML. I even wrote a GraphViz-based tool in Haskell to visualize this math in graphical UML.
A few years later, around 2015, I realized that I had practically stopped using the UML, as did the rest of my colleagues, as well as almost all the Fortune 500 clients I have consulted lately. What happened?
I know it was death from a thousand cuts. And no, the UML hasn’t killed the business community because of its complexity or rigor. In contrast, business people loved the ability to communicate clearly and unambiguously with a few new symbols. IT people elevated the UML (I did this at one time), and they also caused it to fall.
But the UML itself was not the victim. Quite frankly, the UML has become just a collateral loss. The real massacre has been in the requirements development area, which includes business intelligence and design. Agile became the killer, and user stories were his poisoned arrows.
In the model, where user stories are shoved at the input, and a demo (or feature production release) is received at the output, there is no more room for meaningful structural analysis of tasks.
In today’s brave new world, understanding is directly crystallized into production-ready code. Even business modeling has, in fact, been killed by a related Agile discipline: Domain Driven Design (DDD). Bounded contexts encapsulate (sweep under the rug) complexity so that the enterprise can scale to “two-pizza teams.” Companies using BDD and requiring their workgroups to write Cucumber specifications, have an advantage here, but very few businesses are engaged in this.
The modern paradigm is that we still won’t be able to understand the problem. Digital transformation gurus tell us that we need to deploy products to production so that users themselves can say what the business requirements are, and not formulate them independently a priori. Thanks to this, we can make several attempts to get it right. Yes, in this paradigm one has to make mistakes quickly and often.
You should have figured out by now that this is not a UML flaw. We just gave up on business analysis and formal specifications, so we are faced with a new question: what to use instead of UML?
An example of a masala chart
While some use lightweight modeling techniques like C4, most of the diagrams in use today are of the type that I somewhat dismissively call “Masala diagrams”… After all, why not call the diagrams that I make myself? Why Masala? Because they are informal; they simultaneously cover several dimensions, they can be structural, and behavioral, logical and physical. They are often a jumble of visualizations. architectural model 4 + 1…
How to prepare a masala diagram
The millions of dollars in systems that our lives and finances depend on are built, financed, and implemented entirely around these masala diagrams, which often contain nothing more than a few epics and user stories.
“The author, well, the architecture of my bank’s mortgage system was certainly not designed on the basis of these horrible masala models of yours!”
It can’t be true, can it? In fact, if your bank does not use CICS, and the solution was sold last year, then it is highly likely that it was constructed on the basis of the very masala diagrams.
Has the world gone crazy? No we just gave up engineering design BY. Now it’s simple code gamble… I am not saying that those who write software are not themselves engineers; more often than not, it is not. The point is that at the organizational level, software is no longer designed, as is done in other areas, for example, in mechanical engineering. Boeing would never order a jet engine from Rolls Royce based on such an informal masala diagram.
However, masala diagrams have their own purpose. When used where they belong, they are beautiful. You see, these are not specifications… Their goal is to evoke emotions. Masala charts are valuable when needed cause joy in the heart of the leader for whom they are intended.
No matter how I argue with my friends from the Agile camp, I cannot remain blind to the happiness of people. My clients and colleagues are not only asking more masala diagramsbut also insist that I make them even more masala (so that I combine more architectural dimensions in them!). Why resist this?
UML still remains in my heart and I continue to structure solutions using several dimensions, but in the form of pure data / tables. And when it comes to graphic notation, I take out my blender and 5 liter skillet and start making a wonderful masala chart for my favorite clients.
Epic servers – this is VDS for hosting sites from a small online store on Opencart to serious projects with a huge audience. Create your own server configurations in a couple of clicks!
Join the our chat on Telegram…