| name | systems-thinking |
| description | Analyze organizational, technical, and strategic problems as interacting systems using Rumsfeld Matrix, causal loops, debt cascades, constraints, and resilience thinking. Use when problems involve feedback loops, hidden dependencies, legacy systems, architecture portfolios, repeated failures, unknown unknowns, or change resistance. Keywords: systems thinking, causal loop, Rumsfeld Matrix, unknown unknowns, Chesterton's Fence, debt cascade, theory of constraints, enterprise architecture. |
Systems Thinking
Two frameworks: the Rumsfeld Matrix (classify what you know and don't know) and Causal Loop Diagrams (map how variables feed each other). Analyze as interconnected systems, not independent parts.
The Rumsfeld Matrix
Classify before acting — the quadrant determines strategy.
Known Knowns
Fully mapped and documented. CMDB, API docs, org charts, architecture diagrams.
Action: Trust but verify. Stale Known Knowns are worse than acknowledged Unknown Knowns.
Known Unknowns
The gap exists and you know where to look. Tech debt backlogs, unmapped processes.
Action: Prioritize by decision impact. Map what the current decision requires, not everything.
Unknown Knowns
The system does the work but documentation is unaware. Shadow IT, tribal workflows, "we've always done it this way" processes. This quadrant is where strategies die.
Action: Hunt these before architectural decisions. Ask operators and maintainers, not designers. Check cron jobs, home directory scripts, undocumented integrations.
Unknown Unknowns
Emergent behaviors from system interactions. Too many variables to predict.
Action: Cannot map in advance. Build resilience (loose coupling, observability, blast radius containment) instead.
Causal Loop Diagrams
Post-mortem only. Reconstruct after incidents or strategic failures. Never predictive — parameters shift constantly, predictive CLDs encode false assumptions.
For each node: name the specific variable and direction of change. "Complexity increases" not "things get worse." Precision reveals intervention points.
Reinforcing Loops (Self-amplifying)
Spot by asking: "Does X make more of X happen?"
Success spiral: Platform works well → attracts users → generates funding → builds better features → works even better.
Death spiral: Pressure to deliver → quick fixes → higher complexity → slower delivery → more pressure.
Direction (positive/negative) depends on whether the loop state is desirable.
Balancing Loops (Resist change)
Spot by asking: "Does X push back against the change that created X?"
Modernization trap: Attempt innovation → requires legacy integration → consumes maintenance effort → decreases time for innovation → back to attempt.
This is why digital transformations fail — not opposition, but the system's existing balancing loops suppress the change.
Intervention Points
- Break a reinforcing death spiral — intervene early where amplification is weakest. Not "stop pressure" but "refuse quick fixes even under pressure."
- Disrupt a balancing loop — identify what stability it preserves and decide if that stability serves the goal. Isolate new work from legacy coupling.
- Reclassify knowledge — move items between quadrants through discovery and investigation.
Additional Patterns
Debt Cascade Across Layers
Debt at the strategy layer (wrong capability definitions, half-frameworks) cascades down to business and application layers, multiplying impact. Strategic debt is the most destructive because it makes bad long-term strategy look appealing. Code-level debt is the least dangerous — it's contained and fixable.
Enterprise architects should NOT focus on code-level architecture. With hundreds of apps (many 3rd-party SaaS), the EA focus is integration patterns, data flows, vendor lock-in, and landscape-level overlap. Letting go of code-level control is a senior-level insight.
Fences Around Fences (Chesterton's Fence Misuse)
Everyone knows Chesterton's Fence: don't remove something without understanding why it exists. The expert insight is the second half: architects invoke the fence to justify not removing things, but then never investigate. Caution becomes paralysis.
Teams build workarounds around unknown systems rather than touching them. Over 10 years, this creates compounding complexity that slows all projects. This is a knowledge retention problem, not a risk problem. The fence isn't the issue — the silence around it is.
Sometimes breaking something is the only way to learn what it did. Calculated risk beats indefinite stasis.
Theory of Constraints for Portfolios
In pace-layered portfolios (Systems of Record / Differentiation / Innovation), the SOR layer is almost always the bottleneck. Small improvements there cascade multiplicatively across the enterprise. Don't optimize what's visible (SOD/SOI) — find the hidden constraint in the foundation.
Governance must match the layer: SOR gets rigid change management, SOD gets agile, SOI gets experimental. One-size-fits-all governance kills innovation or destabilizes the core.
NEVER
- NEVER attempt to produce a complete map. Why: "We mapped everything" is the most dangerous sentence in architecture. Completeness is impossible; the attempt creates false confidence. Instead: map only what drives the decision at hand. State explicitly what you are NOT mapping.
- NEVER treat a balancing loop as benign. Why: balancing loops resist ALL change, including the change you want. The most stable system is a dead one. Instead: ask "what stability is this preserving, and is that the stability we want?"
- NEVER assume more mapping = more knowledge. Why: every map is a selection — more detail means more selection bias. You can't see what's missing from the map itself. Instead: value useful abstractions, not exhaustive detail.