Decisions, Decisions — Dan North on Trade-offs in Software
summary
Automated builds and deployments trade speed for locked‑in assumptions — automate only once a manual path is stable — and automated tests catch known failures while manual testing finds the surprising; adopt Spike and stabilize to ship minimal code, harden only if people use it, and keep a short software half-life by ruthlessly deleting unused code. Start with a single deployable, use a dancing skeleton to validate the path to production, and prefer simplicity over premature distribution.
AI-written summary · about
chapters (18)
- 0:00Introduction and setup
- 1:27Development trade-offs
- 8:35Automated vs manual builds
- 10:00Automated vs manual testing
- 15:36Spike and stabilize pattern
- 22:03Monoliths vs microservices
- 28:03Objects vs functions
- 30:49Synchronous vs asynchronous
- 32:13Threads vs event loops
- 35:51Concurrency models
- 36:13Short software half-life
- 41:12DRY vs decoupling
- 49:59Automated vs manual deployments
- 53:33Vertical vs horizontal scaling
- 54:57Cloud vs on-premise
- 57:27Dancing skeleton pattern
- 59:58Making informed decisions
- 1:01:21Q&A
related talks
42mStrategic Testing Decisions
12mHow to make the perfect decision
26mIndecisions Are Not All Bad
32mMaking Sotware Better, Despite Having Users
28mAvoid overengineering & big ball of mud- 7 lessons for maintaining the balance
27mStrategies for making impossible decisions
32mStop Automating, Start Investigating: Slow Down 2 Speed Up
01h 02mDecision Dials
