3 ms·
> Ernesto Garbarino says that UML was killed by decreasing standards among programmers: “Agile was the assassin and user stories were her deadly, poisonous arro
by spamizbad 4y ago
> Ernesto Garbarino says that UML was killed by decreasing standards among programmers: “Agile was the assassin and user stories were her deadly, poisonous arrow heads (pun intended).”
I got my start in a shop whose CTO was a big believer in UML. I can tell you unequivocally that software processes from that era, while providing some useful lessons, were a result of the 90s software engineering Zeitgeist, which included these major aspects:
1) Non-technical management was still regularly involved in the management of software engineering and engineers needed to explain “Here’s how we will do X” to laypersons
2) Object Oriented programming was at the peak of its hype cycle, but most of the software development workforce had a superficial understanding of it at best. UML allowed you to explore a problem in an object oriented manner before writing any code and gave more OO-savvy engineers the ability to communicate these concepts to other developers who had no hands-on experience writing object oriented code.
3) The “style” of object oriented programming advocated back then would probably get your hand slapped during any modern code review… even by relatively junior developers.
4) Lots of software development practices we take for granted today were not universal: source control, fast build turn-arounds, automated testing. Likewise, because software was delivered via physical media and your ability to distribute patches was far more challenging the whole process was fundamentally more conservative.
So to bring this full circle, what changed since UML’s heyday?
1) Software engineering as an institution matured to the point where almost the entire management chain will typically know not just how to code but actually ship software (seed stage startups are an exception here)
2) Object Oriented programming hype has died down. It turns out it wasn’t the productivity boon we imagined (garbage collection and open source libraries did more for us)
3) Stronger and more robust type systems, Functional programming concepts, and unit testing methodologies are used to mitigate defects
4) Turn-around time to distribute a fix for a production defect is measured in minutes or hours - not weeks or months.
5) Things like CI/CD exist which would’ve made a 90s developers head spin.
- katdork 4y agoother developers who what?
- spamizbad 4y agoAccidentally lost a sentence… Other developers who never wrote object oriented code.
- mark_l_watson 4y agoI agree that there is a clear upwards trajectory for improvements. When I was a teenager in 1964, I had access to a teletype hooked up to a remote server on the east coast that supported BASIC. I used punched cards at my first real job, although they later bought me a Xerox 1108 Lisp Machine. After the Lisp Machine I felt like things sort of went down hill. I love git compared to cvs and svn. I don’t like using Jira unless there is someone dedicated and skilled at relieving developers of some of the Agile cruft. I love cloud platforms like GCP, AWS, and Azure. I like continuous integration, Kubernetes, etc., if someone else sets everything up (+1000 for having skilled dev ops people on a team).
- blub 4y ago1 may be true at some companies, but it’s by far not the case for the great majority of software companies. Furthermore, while it’s nice if managers are broadly familiar with software engineering, it doesn’t bring any benefits for them to code or ship software. On the contrary, they’re more likely to annoy the actual people doing those tasks. And while the hype for 2 may have died down, it did so because OOP became the mainstream. Which means that more documentation not less is needed. 3 is not related to UML. UML is a design and documentation language, it’s not pertinent to mitigating defects. 4 is also inapplicable. UML is once again not a QA technique. 5 is also inapplicable for the same reasons as above. Honestly it looks like you listed more or less five random things which changed since UML’s heyday…