Podcast Summary
Podcast: Scrum Master Toolbox Podcast: Agile storytelling from the trenches
Episode: Swimming in Tech Debt — Practical Techniques to Keep Your Team from Drowning in Its Codebase
Guest: Lou Franco (Author, Veteran Software Engineer, Former Engineering Lead Trello & Atalasoft)
Host: Vasco Duarte
Date: December 13, 2025
Overview
This bonus episode explores the realities of technical debt ("tech debt") and practical strategies for addressing it, drawn from Lou Franco's book Swimming in Tech Debt. Lou shares personal stories from his engineering and leadership roles at startups and companies like Trello and Atlassian. Together with Vasco, they discuss balancing the cost and benefits of tackling tech debt, choosing effective approaches for teams and individuals, and creating organizational environments where teams can sustainably address accrued codebase problems.
Key Discussion Points & Insights
1. Origin of "Swimming in Tech Debt" Metaphor
- [01:33–07:13]
- Lou explains how repeated first-hand encounters (both positive and negative) with tech debt at startups and major companies shaped his philosophy.
- Atalasoft Story: A departing engineer's candid feedback about ignored tech debt led Lou to uncover team-wide frustrations and take action, resulting in faster—not slower—progress after refactoring a problematic build/install system.
"I noticed that we didn't go slower by paying tech debt. We went faster because we were constantly in that code and now we didn't have to run into problems." – Lou Franco [05:39]
- Trello Story: Contrasts the Atalasoft approach with a time at Trello where the team "over-fixed" navigation issues, investing too much time on a large rewrite that ultimately was redone few years later.
"We decided to rethink navigation code in our app, and it took longer than we probably thought it would. In general it was overkill..." – Lou Franco [06:34]
- Atalasoft Story: A departing engineer's candid feedback about ignored tech debt led Lou to uncover team-wide frustrations and take action, resulting in faster—not slower—progress after refactoring a problematic build/install system.
- The lesson: The right balance is key—neither neglect nor overcorrection.
- Lou explains how repeated first-hand encounters (both positive and negative) with tech debt at startups and major companies shaped his philosophy.
2. Decision-Making Framework for When to Address Tech Debt
- [07:13–12:56]
- Lou describes a cost-benefit schema inspired by Bob Mesta's push and pull theory, structured as eight guiding questions to help teams self-evaluate whether to remediate tech debt.
- Questions cover:
- External visibility to users
- Alignment with engineering values
- The "interest payment" (resistance and volatility)
- Risk of regressions
- Project scope and estimation
- Uncertainty about the benefit
- Special attention: Gauge risk, particularly in untested, critical code.
"The biggest thing to stop you from paying tech debt is the chance of regressions ... especially if you don't have any tests." – Lou Franco [10:40]
- Vasco advocates cautious estimation—assume the rewrite will take as long as it took to build the original, and always scaffold with tests first [11:06].
- Questions cover:
- Lou describes a cost-benefit schema inspired by Bob Mesta's push and pull theory, structured as eight guiding questions to help teams self-evaluate whether to remediate tech debt.
3. Choosing a Refactoring Approach: Incremental vs. Big Rewrite
- [13:02–16:33]
- Lou favors a piecemeal, incremental refactoring approach—illustrated by Atlassian’s gradual migration from CoffeeScript to TypeScript via the "Decaffeinate" initiative.
"I'm mostly going to advocate for piecemeal migrations along the way ... reducing the size of the problem over time." – Lou Franco [14:21]
- Cautioned that full rewrites raise risk and delay learnings; keeping systems in parallel and transitioning incrementally offers safer paths with feedback.
- Lou favors a piecemeal, incremental refactoring approach—illustrated by Atlassian’s gradual migration from CoffeeScript to TypeScript via the "Decaffeinate" initiative.
4. Observability and Testing as Risk Control
- [15:44–16:33]
- Building strong observability into new/refactored code is crucial, capturing exceptions and signals so issues are visible post-migration.
5. Everyday Personal Practices for Chipping Away at Tech Debt
- [16:33–20:41]
- Onboarding: Use onboarding as a “low-risk” opportunity—have new hires start with running or improving unit tests for fast learning and safe, early contributions.
"Unit testing is a really great way to learn a system. It's like executable specification that's helping you prove that you understand the system." – Lou Franco [17:34]
- “Pay a little debt daily” ritual: Begin each coding session by clarifying, refactoring, or documenting confusing code—a quick win that pays long-term dividends.
- Mutation Testing: Adopt the discipline of breaking something intentionally to check that tests fail, revealing test gaps and connecting momentum from one coding session to the next.
"When I sit down at my desk, the first thing I do is I pay a little tech debt... It doesn't take long. It's easy. It gets you warmed up." – Lou Franco [18:20]
- Onboarding: Use onboarding as a “low-risk” opportunity—have new hires start with running or improving unit tests for fast learning and safe, early contributions.
6. Team-Level Practices for Systematic Tech Debt Management
- [20:41–25:31]
- Move beyond style guides: Develop and maintain a vision of your target architecture and keep nudging the codebase towards it in every PR.
- Budget time for engineering-led work (e.g. tech debt, tooling) alongside PM-led work, formalized as an explicit percentage over the planning period (e.g. 20% of capacity).
"The engineers were given autonomy... within our time constraint... to take on a project that you could never get done in a sprint." – Lou Franco [22:38]
- Hold quarterly dedicated meetings for the tech debt backlog, scored using Lou’s eight-question framework—prioritize based on risk, frequency, and strategic value.
"Developers should be running a similar process with their tech debt—a backlog that's out of the main backlog. Not approved, we're just talking about it." – Lou Franco [24:08]
7. Leadership’s Role in Addressing Tech Debt
- [25:31–30:20]
- Organizational buy-in is essential—leaders should set clear constraints about tech debt tolerance, position within the product lifecycle (e.g., learning phase vs. scale phase), and empower teams to act, with accountability for progress.
- Atlassian “Five Alarm Fire” Example: CTO stopped all feature development across the org to focus exclusively on reliability, granting engineers autonomy to address the root causes. Lou used this time to add observability and reduce errors in Trello’s offline sync.
"We were told as engineers: do whatever it takes to increase reliability... [I was] able to bring [errors from sync] down to 25% of [their baseline]." – Lou Franco [27:13]
- Progress, even when invisible to customers, should be made legible to leadership (e.g., dashboards showing migration/tech debt reduction).
Notable Quotes & Memorable Moments
-
On the true cost of ignored tech debt:
"It was not just its existence, but my attitude toward it... I was basically ignoring it."
– Lou Franco [03:44] -
On the misconception that paying tech debt is always a drag:
"We didn't go slower by paying tech debt. We went faster because we were constantly in that code and now we didn't have to run into problems."
– Lou Franco [05:39] -
On incremental migration visibility:
"There was a bot or somebody would post in our, in the main Slack channel, the percent of CoffeeScript going down. It was called the Decaffeinate project and it was a great name."
– Lou Franco [14:27] -
On small, daily practices:
"Begin each coding session by paying a little tech debt. It doesn't take long. It's easy. It gets you warmed up."
– Lou Franco [18:20] -
On tech debt budgeting:
"What they did is agree on a split for the year, a percentage split of how much time would be allocated towards PM led work and how much time would be allocated towards engineering led work."
– Lou Franco [21:25] -
On leadership’s obligation:
"Tell the team what your feeling about tech debt is at a high level and what you think generally is the appropriate amount of time to be spent on it, and do that by explaining where products are in the software lifecycle."
– Lou Franco [28:07]
Timestamps for Important Segments
- [01:33] Introduction and inspiration for the “Swimming” metaphor
- [03:20] Atalasoft’s formative “tech debt wakeup”
- [06:34] Trello navigation rewrite—overcorrection
- [07:36] Lou’s decision-making framework for addressing tech debt
- [10:40] Risks of regression and testing
- [11:06] Vasco’s rule of thumb for estimating refactoring
- [13:48] Incremental vs. big-bang rewrites
- [14:27] Trello's “Decaffeinate” project
- [16:53] Personal tech debt payoff habits
- [18:20] Mutation testing and session transition
- [21:25] Engineering/PM workload split for strategic debt work
- [24:08] Dedicated tech debt “backlog” meetings
- [27:13] Atlassian “Five Alarm Fire” story
- [28:07] Communicating leadership’s stance on tech debt
Additional References
- Book: Swimming in Tech Debt by Lou Franco
- Resources Mentioned:
- Bob Mesta (product management frameworks)
- Michael Feathers, Working Effectively with Legacy Code (test-seam strategies)
- Mutation testing tools: Striker (JavaScript), mutmut (Python)
- Geoffrey Moore: Crossing the Chasm, Dealing with Darwin (product life cycles)
- Steve Blank's books on startups
Conclusion
Lou Franco and Vasco Duarte present a pragmatic, nuanced guide to recognizing, prioritizing, and tackling tech debt—balancing the need for progress with the real constraints of daily software development. Technical debt, if left unchecked, not only frustrates engineers but can throttle organizational momentum. Through a mix of frameworks, team rituals, leadership strategies, and grassroots personal habits, Lou demonstrates that it’s possible to keep your team swimming—not drowning—in whatever codebase you inherit.
Connect with Lou Franco:
- Website: loufranco.com
- LinkedIn: Lou Franco
Get the Book: Swimming in Tech Debt (link via show notes)
