| I dunno I disagree—the fact is a lot of people just dive into coding and don’t spend much time with design. There’s a ton of value in the idea of diagramming code and then generating sources. UML is a starting point but the journey is far from over. The more appropriate idea is that you create documentation in the form of diagrams for free. Just like in TDD you get unit-tests for free. Folks always talk about self-documenting code—and that’s great. But what about conveying a complex system to a new team of engineers? Diagrams are frankly priceless if done well. Also, looking at something like Kubernetes where a declarative YAML file generates magic underneath is somewhat similar. A step beyond what we have would be nice diagramming capabilities over the YAML to auto generate the plumbing underneath. Personally, I think future advances in development _will_ be done as higher level ideas—pictures worth a thousand lines of code—AI will do the rest. |
The problem is the diagrams are hard to create and hard to update and usually don't remain synchronized to the code. If there was a good way to create documents from the code (perhaps with some annotations required), it could just be a Make target and boom, free(ish) documentation.