Agree, we are in the stone age in software design and dev. We have not figured out a good way to communicate the design of complex systems in a way the business can understand.
Agree, we are in the stone age in software design and dev. We have not figured out a good way to communicate the design of complex systems in a way the business can understand.
Everything exists and was known from 1960s/1970s. People are just not studying, adapting and using the well-known standards/techniques. Standard Engineering is built on them and Software Engineering adapts/extends those for its own needs.
Specification (technical standard) (general)- https://en.wikipedia.org/wiki/Specification_(technical_stand...
Software Requirements Specification - https://en.wikipedia.org/wiki/Software_requirements_specific...
Software Design Specification - https://en.wikipedia.org/wiki/Software_design_description
Formal Specification - https://en.wikipedia.org/wiki/Formal_specification
System Requirements Specification - https://en.wikipedia.org/wiki/System_requirements_specificat...
All have been collected in a Software Engineering Body of Knowledge book - https://en.wikipedia.org/wiki/Software_Engineering_Body_of_K...
As complexity grows, the value of those artifacts reaches significant limits that are typically dealt with through brute-force mental effort of the people involved.
Lots of complex systems have been built and understood using the above. As system complexity grows, doing the above is even more important even though it be hard.
Some references;
1) A Rational Design Process: How and Why to Fake It by David Parnas and Paul Clements (pdf) - https://users.ece.utexas.edu/~perry/education/SE-Intro/fakei...
2) How Designers Work by Henrik Gedenryd - https://news.ycombinator.com/item?id=48352065