Embracing Uncertainty: Thriving in Complexity and Legacy Code
summary
Upgrading seven coupled Rails apps from Rails 2 to Rails 3 reveals real constraints: a single shared database, per-app read‑through caches using the cash_money gem, and database triggers that delete cache keys so upgrades must untangle DB‑level cache knowledge. Practical tactics include hypothesize and test with lazy validation, compartmentalize complexity by boxing subsystems, pattern‑match cautiously, and phone a friend or consult Git history and long‑tenured engineers to recover intent and ship changes safely.
AI-written summary · about
chapters (9)
- 0:00Introduction and welcome
- 1:23Why uncertainty matters
- 4:53Effects of uncertainty on cognition
- 9:27Personal journey with uncertainty
- 13:40Learning to embrace uncertainty
- 17:36Mindset shift for growth
- 18:20Practical tips for legacy code
- 22:19Understanding legacy code history
- 23:02Final thoughts and call to action
related talks
28mUpgrading Rails: The Non-Technical Parts
29mHacking Development Culture: Treating Developers As People
47mProgress
38mThe Past, Present, and Future of Rails at GitHub
28mAvoid overengineering & big ball of mud- 7 lessons for maintaining the balance
35mUpgrading Legacy Projects: Lessons Learned
37mLearn to appreciate legacy (Story about Zed)
34mShitlist-driven development and other tricks for working on large codebases
