Systems Thinking for Software Professionals
Systems experts have taught us how to improve our software systems:
Peter Senge has demonstrated that we blame the wrong things (events, situations or processes) for our systemic problems.
W. Edwards Deming says that 94% of the time, the system is to blame for performance issues, not the individual parts of the system.
Jay Forrester discovered counterintuitiveness: most organizations “fix” systemic problems by inadvertently making them worse.
Donella Meadows said, “We'll go down in history as the first society that wouldn't save itself because it wasn't cost-effective.”
As relational complexity increases, we need to think in systems. I don't just mean adopt Kubernetes. Technology systems are always, also, people systems. Without systems thinking, nothing is transformed. As Robert Pirsig said,
"If a factory is torn down but the rationality which produced it is left standing, then that rationality will simply produce another factory."
Systems thinking is becoming a core and critical skill. The Iceberg Model, for example, helps us understand "the rationality that produced" our current situation. As a software professional, you can use itwhenever you want to understand the root cause of a system challenge.
Using tools like the iceberg model is deceptively simple. Avoiding the iceberg ... takes committed practice.