Why optimizing the parts often pessimizes the whole.
A system is more than a collection of parts. It's the parts plus their interactions. And often, the interactions matter more than the parts themselves.
Consider a software team. You have developers, designers, QA engineers, a product manager. Each individual might be excellent. But if they don't communicate well, if handoffs are clunky, if incentives are misaligned—the team underperforms despite the talent.
Systems thinking means understanding the whole system before trying to improve the parts. It means asking: How do the pieces interact? What feedback loops exist? What emergent behaviors arise?
Most organizational dysfunction comes from ignoring systems thinking. Each department optimizes for its own metrics while the overall outcome suffers. Sales closes deals the product can't deliver. Engineering builds features marketing can't sell. Everyone hits their KPIs while the company struggles.
Deming's Observation
W. Edwards Deming noted that 94% of problems are caused by the system, not the individual. Yet most organizations blame and train individuals instead of fixing systems.
Here's a common scenario: The development team is the bottleneck. So management decides to make developers more efficient. They track story points, measure velocity, reduce meetings. Developer productivity goes up.
But delivery doesn't improve. Why?
Because the bottleneck was never really in development. It was in deployment—a manual, error-prone process that only one person understood. By speeding up development, you just created a bigger pile-up at deployment. Lead time increased even though developers worked faster.
Local optimization improves one part of the system. Global optimization improves the whole system. They're not the same thing—and local optimization often hurts global performance.
This is Goldratt's insight from Theory of Constraints: improving anything that's not the constraint is waste. If deployment is your constraint, making development faster is theater. Fix deployment first.
In software organizations, common local optimizations that hurt globally:
Systems contain feedback loops—output from one part becomes input to another. Some loops are reinforcing (amplifying), others are balancing (stabilizing).
Reinforcing loop example: Developers cut corners to hit deadlines. This creates technical debt. Technical debt slows future development. Teams cut more corners to hit the next deadline. The death spiral accelerates.
Balancing loop example: A team adopts WIP limits. Work piles up. People swarm to help clear the pile. WIP drops. The system self-stabilizes.
Emergent behavior is system-level behavior that can't be predicted from the parts alone. A traffic jam isn't caused by any single car—it emerges from thousands of small interactions. Similarly, a dysfunctional organization might have all excellent individuals but the system produces dysfunction.
Lean thinking requires stepping back to see these patterns. You can't fix a reinforcing death spiral by training individuals. You have to change the system dynamics—usually by changing incentives, constraints, or feedback mechanisms.
How to See Systems
Draw the value stream. Map the dependencies. Identify the feedback loops. Ask: What happens when X changes? Then ask: And then what happens? Keep following the chain.