My 2 cents about UML
It’s about Learning
Lean was always about learning. In the classical book “The Goal” Goldratt tells a classical tell about a factory that was doing local optimizations and was not maximizing results and mainly increasing WASTE in the form of inventory and operational expenses. The same issues/fallacies I saw with SOA(Service Oriented Architecture) where one the first wave there was a massive push from vendors to REBRAND solutions to SOA and make people BUY first and think later. IMHO represented by the classical ROI fairy video. The same re-brand tool rush happened with Agile and JIRA(Capture by the parody Jira JR video).
Learning needs to EARNED. It cannot be acquired by a TOOL and by hiring a software vendor or consultant. Proper vendors can help you to accelerate your LEARNING however what often happens is the focus on IT delivery hater than business learning.
It’s about the business
We cannot do software ignoring the business domain. It’s very easy for engineering to focus on CODE problems and forget about business processes and business flow. Our failed attempts to do microservices pushed complexity upwards and create the need for BFF aggregators and even PR coordination nightmares (vide Uber DOMA story).
It’s easy to be trap thinking about if Spring Boot or Quarkus is the best choice and miss how the business change data and how the Domain should evolve, we need more DDD. We need to understand the business. As time pass and we have more and more legacy, even the business experts are rare in several companies and people need to look at the legacy code in order to know what's going on — we went full circle now.
It’s not UML fault — it's about Thinking
IMHO we need to think. We need to have time to think and properly collaborate with the business. UML is a way to force you to think from different perspectives and understand how your domain works. Notation and formalism are not the point and really dont add much value. Thinking is bigger than planning. That’s why we need retrospectives and collaboration with the business.
If we continue doing things we dont understand. If we continue to ignore the business domain. Any tool, Service, or Vendor can save us. We need to break the CONTROL fallacies and embrace complexity, care about people and understand that Learning is the only way forward.
Cheers,
Diego Pacheco