Is anyone aware that UML is already dead ?
I remember in college UML was something that you need to learn.
Learning cardinality or learning how composition was represented. Also how you can represent a use case in UML or how a loop is represented in a sequence diagram. It was fun to learn/memorize all the notations and we were able to visualize the whole system before doing a single line of code.
Also we were amazed on how code can be generated using rational rose or others "case" tools. So we can have the whole skeleton of the app and CRUD operations could be done quickly.
So in one of our final courses in college we deliver the whole documentation of the application. We design it and create a word file with all possible diagrams. We struggle to put the whole diagram in a single word page as the class diagram was too big for a single page. The result was a 40 page word file that not only contains diagrams but also the class diagram dictionary where you describe what each attribute means and what each method does.
So the final result was a diagram like this one:
Then the teacher and his/her assistant review the big word file. I guess over the weekend or dedicated a whole day to review this big file. After this they told us to start the implementation as our diagrams are good and maybe we need some refinements or remove some classes. Or maybe some use case diagrams were not so important and can be removed.
So then the team(a group of students with fictional roles) gathered together to split the whole system in several parts and then each team will take care of each module.
After several meetings and everything was in some way clear. Coding started. In that time having lonely wolf programmers was a thing. So they were assigned in the heavy or complex coding tasks happily isolated of everyone else. Then a demo was done in class and we move to fix all bugs after each demo or review in class.
As this cycle goes on. UML diagrams were never reviewed again. They were printed at the beginning and distributed to each team. But they were quickly forgotten for everyone in the team and the code or UI was the main concern. Also some adjustments were done to the code at last minute before demo. And finally some manual testing with happy flows. And so on.
UML diagrams were just there forgotten and to be never used again. And also the generation of code based on the diagrams was only used once at the beginning to never be used again too. As it was easier to add a property in the code than the diagram.
Fun memories of college but going back to the title of this post. Are we aware that UML is dead long time ago ? I don't think so.
I just realized of UML is dead because of this article that i found in twitter: buttondown.email/hillelwayne/archive/why-um..
And also comments from Grady Booch in that twitter thread:
So yeah UML is dead and buried. Now in my experience it is only used to quickly visualize some possible design decisions and be quickly forgotten after erased in the whiteboard when the meeting is over.
So how and when ?
This is well explained in the article from Hillel Wayne.
My two cents: i think be because of the agile way to do software in iterations and having incremental design instead of having the whole design at the beginning of the project. Also in theory having big documentation word files is not seen as valuable but "working software" instead. At least in theory.
Also for code generation IDEs are more powerful now. You can generate constructor/getter/setter with just two clicks. So generating code from diagrams is not productive or helps to do even crud operations quickly.
And finally we as devs(maybe cliche) hate documentation or to document software. Therefore i don't think anyone is missing to do a word with 40 pages with big diagrams in two pages that could barely be seen without doing 120% zoom.
So what other technologies, methodologies or notations have been forgotten with the time ? Maybe we will find out in some twitter thread or a reddit post.