UML: My Part in Its Downfall
It is easy to account for UML&#x27;s lack of long-term success: it sucked.  The so-called Universal Modeling Language, was not universal, nor was it a language.  It was a <i>graphical notation</i> for describing code written in a particular paradigm that was fashionable at the time.  The biggest problem with UML is the same as the problem with any graphical notation: the symbols it used did not have any lexicographic order, and so if you encountered a symbol whose meaning you did not know there was no way to look it up.  You had to either climb the whole learning curve yourself or consult someone who had.  This provided social status to those who had the knowledge, completely independent of the actual value that the notation provided.  That was the main basis for UML&#x27;s popularity as far as I could tell.  Far more effort was put into <i>teaching</i> UML than was ever put into actually <i>using</i> it, at least where I worked at the time (NASA).<p>Not only was UML a graphical notation, it was a <i>badly designed</i> graphical notation.  It attached semantic significance to symbols that were very similar in visual space.  The poster child is the hollow diamond &quot;arrowhead&quot; versus the filled diamond.  You have to have pretty sharp eyes to distinguish them, and there is absolutely no mnemonic value to these shapes.<p>Graphical notations can be useful.  Feynman diagrams, for example.  But UML was nothing but a hot mess from the beginning.  Good riddance.<p>[UPDATE] When I was taught UML I was told that the first thing you do is produce a &quot;use-case diagram&quot;.  So I spent a lot of time drawing little stick figures.  When I asked how this was supposed to be more useful than, oh, I don&#x27;t know, just <i>writing some fucking English text</i>, I was reprimanded for not being a team player.  Madness.