Indiana Jones and the Temple of Legacy Code
summary
Gives concrete tactics: establish reproducible builds (lock deps, build.sh/build.ps1, devcontainers), push that to CI, and add at least one test (Playwright if needed) before you touch code. Use mutation testing with Stryker mutation testing to validate tests. Add OpenTelemetry observability around small flows to learn behavior. Mine Git history to find hot spots — Jellyfin’s base item repository: 81 changes / 46 bug-fix commits and ~60% rewritten — and use git‑thesis, Hercules or CodeScene/CodeMart and safe refactoring as exploration tied to the system life cycle.
AI-written summary · about
chapters (17)
- 0:00Legacy code struggles
- 2:27Legacy systems as traps
- 8:06Entropy in legacy systems
- 10:57Supportability and life cycle
- 13:04Repeatable builds for supportability
- 15:31Adding tests to legacy
- 16:52Mutation testing validation
- 18:17Observability in legacy code
- 21:09System understanding via observability
- 22:11Git for legacy systems
- 27:31Finding problems with Git history
- 31:21Refactoring without committing
- 37:17Hidden coupling detection
- 41:48Safe changes via understanding
- 42:50Risk management for legacy
- 48:50Evaluating supportability before changes
- 49:30Legacy systems teach resilience
related talks
32mContinuous Integration and Deployment: Five Lessons Learned
21mShaky to solid a test based approach to legacy code
42mGit and Testing
40mThe Build That Cried Broken: Building Trust in Your Continuous Integration Tests
31mThe Build That Cried Broken: Building Trust in Your Continuous Integration Tests
41mContinuous Integration Tips & Tricks
28mSome small steps for code, One giant leap for quality
35mQuickly and Safely Refactoring Legacy Code
