In this episode of the Maintainable Software Podcast, Robby Russell sits down with James Socol, a Staff Engineer at Fastly, to discuss the art of maintaining legacy code and the nuances of technical debt versus technical depreciation.
Key Topics Discussed:
- Characteristics of Well-Maintained Code: James shares his insights on what defines well-maintained code, emphasizing the importance of continuous maintenance, testing, and encapsulation.
- Technical Debt vs. Technical Depreciation: James introduces the concept of technical depreciation, distinguishing it from technical debt and explaining how time affects software maintenance.
- Balancing Old and New Patterns: The discussion explores the challenges of integrating modern standards into legacy systems and finding a healthy balance.
- 20% Time for Maintenance: James advocates for dedicating a portion of engineering capacity to maintenance tasks, drawing parallels to Google's 20% time concept.
- Onboarding Strategies: James offers valuable advice for new hires, emphasizing observation, gradual involvement, and building social capital within the team.
- Continuous Delivery and Big Changes: Insights into managing significant changes in a continuous delivery environment, with practical strategies for maintaining stability.
Resources Mentioned:
- Riot Engineering Blog: A Taxonomy of Tech Debt
- Silicon Valley Product Group
- Laura Hogan's Donut Theory
Books:
- Getting to Yes by Roger Fisher & William Ury
- Turn the Ship Around by L. David Marquet
Thanks to Our Sponsor!
Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and soon, other frameworks.
It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.
Keep your coding cool and error-free, one line at a time! Check them out!