Predictably Unpredictable
summary
Code and systems break when tiny shared hidden dependencies and mutable state create bidirectional failures — example: a standalone logging service overload causes payment and stock services to cycle up and down, masking the real fault. Remedies listed include queues, circuit breakers, Netflix-style resilience and chaos testing, plus modeling with causal loop diagrams and system dynamics. Operational practices recommended are OODA loops, Cynefin (simple/complicated/complex/chaotic), pioneer/settler/town-planner teams and safe-to-fail experiments. Case wins: Slack pivoted from internal tool and a local loyalty product overtook its info site; Ebola modeling cuts projected cases dramatically.
AI-written summary · about
chapters (12)
- 0:00Introduction and context
- 4:20Simple functions complex dependencies
- 10:27System-level hidden connections
- 13:58Feedback loops and cycling behavior
- 20:40Causal loop diagrams explained
- 27:19Systems thinking fundamentals
- 35:06Law of unintended consequences
- 41:25Complex adaptive systems in nature
- 47:44Navigating uncertainty in systems
- 53:02Snowden's Cynefin framework
- 58:00Complexity as opportunity
- 1:01:42Q&A and final thoughts
related talks
29mDeprecating Simplicity
30mWhy This Stuff Is Hard
43mBetter Software Development Systems through Stress
41m‘Failure’ as Success: The Mindset, the Methods, and the Landmines
29mComplexity: The Crucial Ingredient in Your Kitchen
55mModels For Resilience
34mWhy Good Software Goes Bad
54mSeeing Like a Programmer - Resiliency, Limits, And Moral Hazards In SE
