This is quite the classic from the days UML was used unironically.
This is quite the classic from the days UML was used unironically.
I like to create classes/methods with little/no/mock implementation to see how it will fit together. If there's something where I'm not sure how it works (third party API/lib I've not used before) I'll get more granular with it.
There's tooling to produce diagrams from code if someone really wants it. But either way my design phase is now usable code.
That being said, I still have to admit this rarely survives contact with actual implementation. It just feels better.
Pretty rare though.
On average, I'd say we have much better design and UX now compared to 2004!
In my career I’ve encountered a lot of projects that have been designed to death; They start with good intentions to do things “right” and then hire a lot of people who do a lot of designs and documents and meetings and committees. Two years later, nothing is done because everyone is too busy designing and re-designing.
At the core of it all is the idea that if you’re not following all of these formal techniques and processes then you can’t possibly deliver anything good.
(Personally, I’m a fan of doing less design, less documentation, and making the code as obvious as possible. It’s a lot of friction to have multiple sources of truth that have to be kept in correspondence with each other.)