First of all: sorry for the clickbait title.
Recently I had a discussion with a professor (not my supervisor) about UML. I said I assess my UML knowledge as sufficient but not as deep. He answered to my assessment:
When you are not fluently in UML, you will never ever work as a software architect in larger systems.
Of course, every professor thinks his research topic is the one and only and every professor can not understand why not every student loves this area, too. However, his condescending answer triggered many thoughts in my mind (although I am not sure if I want to be such a software architect). So thank you, anonymous professor.
And you are wrong.
I can name hundreds of large software projects which are completely without a single UML diagram. And I am absolutely sure, you also can do: I am not aware of a single large open source project which uses formal UML for documentation or sketching new ideas. I am not the only one who recognized this.
Although there are different views on UML, as Martin Fowler describes in his blog article I do not see any of them in Kubernetes, Linux kernel, OpenStack, PostgreSQL, Chromium, Scala, or what have you.¹
This can have several reasons:
- UML is not a proper tooling: Maybe only a subset of all developers have enough knowledge about UML to make it a useful communication tool and lingua franca of software development. Is UML too complex? Too badly taught? Anyway, it seems UML does not satisfy the needs.
- UML has no proper tooling: Probably there is no suitable free and open source software tooling for discussing and versioning UML diagrams in git or SVN.
- Open source is not well documented: In some cases this is simply true, but for many open source projects, it seems that the textual is sufficient. UML does not add value. So I cannot agree on that.
- UML is for proprietary software development only: I cannot agree, either. Why does UML add value to closed-source software, but not to open source software?
Please do not get me wrong: I would not miss UML in my curriculum and see its benefits. But the importance of UML is arguable — at least. Maybe a better, non-clickbait title could be “UML considered less important than some think”. But I really like controversial topics and technical discussion, although the discussion turns out I am wrong. So let me know what you think.
¹ I really hope I did not overlook any UML diagrams in these projects. But at least UML is not common.