The inverse proposition also appears to be true: a complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a simple system.
As someone who is 95% self-taught, my ability to pick out patterns has been one of the most beneficial to my career. Over the years, I’ve developed this sort of X-ray vision, with which I see teams, organisations and clients. More to the point, I see the system that I’m designing and building software for: The human workflows enabled by my solution, and how they connect to create value.
My flavor of systems thinking is influenced by paradigms and principles such as:
- MVC (Model-View-Controller), a software architectural pattern
- DDD (Domain Driven Design), principles for robust and business-oriented software development
- Object-Oriented Programming, software design pattern and methodology
- Donald Norman’s Design Principles, see The Design of Everyday Things
- Blue Ocean Strategy, market and product research framework
- Business Model Generation, business analysis framework
- JTBD (Jobs To Be Done) theory for understanding customer behavior and market demand