Podcast Summary
AI Assisted Coding: Swimming in AI – Managing Tech Debt in the Age of AI-Assisted Coding
Podcast: Scrum Master Toolbox Podcast
Host: Vasco Duarte
Guest: Lou Franco
Date: November 25, 2025
Overview
In this engaging bonus episode, host Vasco Duarte sits down with veteran software engineer and author Lou Franco (Swimming in Tech Debt) to discuss the practical realities, potential, and pitfalls of AI-assisted coding—particularly how it’s changing the game for developer productivity, coding workflows, and technical debt management. Lou and Vasco dive deep into how tools like GitHub Copilot and Cursor are actually used in day-to-day development, how different approaches to "vibe coding" (prompt-only, often code-blind) compare to more traditional, reviewer-driven practices, and what all this means for the future of code quality, maintainability, and collaboration in fast-evolving codebases.
Key Discussion Points & Insights
Defining AI-Assisted Coding and Vibe Coding
[02:28] Lou Franco:
- "Vibe coding" is defined as coding where you primarily use AI prompts to generate code, rarely or never reading the code yourself.
- Lou distinguishes this from his preferred approach: always reviewing and understanding the generated code, maintaining an active role in code reviews and architectural choices.
- Vibe coding is just one subset of AI-assisted development, and its definition varies across the community.
Memorable Quote:
"The more you're not reading it, the more I'm going to think it's vibe coding … I don't tend to do Vibe coding, except for very simple things where I don't care about the thing beyond how I'm going to use it immediately." — Lou Franco [02:28]
Early Experiences & Productivity Boosts
[04:28] Lou Franco:
- Started with GitHub Copilot in late 2022, attracted by its autocomplete features that reduced need to look up syntax/docs, saving time and maintaining flow.
- Now uses Cursor, which offers powerful inline prompts for hyper-localized code editing.
Memorable Quote:
"It was just saving me so much typing … I knew what I was going to code … and it was just, like, getting me through it faster and keeping me in the zone …" — Lou Franco [04:28]
Inline Prompting and Context Management
[06:30] Lou Franco:
- Inline prompting (e.g., Cursor’s Command-K) enables developers to give precise, in-context prompts, limiting the AI's focus to the immediate code scope, thus avoiding contextual confusion that can occur with broader or chat-based prompts.
- This technique is a "happy medium" between typing code and having the AI generate larger chunks.
Memorable Quote:
"What I like about it is that it's fast. So right here, don't go look at the rest of my files. ... The context is right here. This is what I want you to do." — Lou Franco [06:30]
Practical Tips for AI-Assisted Coding
[09:38] Lou Franco:
- Prefers lots of small, context-specific prompts, building code commit by commit.
- Each AI prompt represents a meaningful, reviewable step in the development history—a process similar to thoughtful, linear manual development.
- Reads and reviews every line of generated code before it’s accepted; believes this is crucial for maintainability and code quality.
- For higher-level or one-shot large features, acknowledges that some tools are pushing those boundaries, but his practice emphasizes understanding and review.
Is AI Creating More Tech Debt?
[15:10] Lou Franco:
- When using AI in a "code-aware," review-driven way, the tech debt produced is on par with that of traditional development: "It's exactly the same amount of tech debt that I would have done on my own."
- However, faster development means more total code—and thus, potentially more tech debt unless time savings are deliberately reinvested in refactoring and cleanup.
- Vibe coding (no reading) can exponentially increase structural issues: code repetition, tight coupling, lack of DRY (don’t repeat yourself), and unclear architectures.
Memorable Quote:
"If you're vibe coding and you don't read the code, what is tech debt then? ... You're kind of experiencing the tech debt a different way. ... It seems to happen when people are not able to impose an architecture onto the code that the vibe coding is generating." — Lou Franco [15:10]
Code Volume Explosion & Human Bottlenecks
[18:46] Vasco Duarte & Lou Franco:
- AI could result in "100 times more code," as productivity explodes.
- Maintaining the same code-to-tech-debt ratio would require either 100 times more reviewers, or a new way to control quality—today, this is a major limitation.
- Human approval and code review remain critical, and AI cannot yet replace this.
Memorable Quote:
"A computer can never make decisions. A human always has to make decisions. I think that is timeless to me. ... There's going to be some bottleneck of me wanting to approve it..." — Lou Franco [20:16]
Refactoring, Testing, and AI’s Limitations
[26:23] Lou Franco:
- AI can assist in refactoring and test generation, but for complex or lossy operations, manual refactoring is still preferable.
- Lou notes that today’s AIs appear to be trained on “end result” code, not evolutionary repository histories. There’s a future potential in LLMs learning from code evolution and good repo practices.
- Embedding stepwise refactoring (analogous to TDD’s refactor step) is a promising method to control tech debt growth when coding rapidly with AI help.
Practical Experiments with AI and Refactoring
[28:01] Lou Franco & Vasco Duarte:
- Incorporating automated or prompted refactor steps after passing tests can help “draw a line in the sand” against unchecked tech debt.
- Using AI for writing clear pull request (PR) documentation is a huge benefit—AI writes better, clearer PRs than most humans.
Memorable Quote:
"You are getting so much... productivity out of it that investing a little bit of that productivity... for that refactor step is extremely good for another kind of productivity." — Lou Franco [30:05]
The Future: AI Remediating Tech Debt?
[24:11] Lou Franco:
- Envisions a future where AI could be trained specifically to remediate tech debt, especially with guidance.
- Right now, for messy or "convoluted" codebases, AI is only as capable as humans—pre-remediation may be necessary before effective AI assistance.
- The field is rapidly evolving; best practices and tools likely to change within months.
Recommendations for Further Learning
[32:23] Lou Franco:
- Recommends upcoming book by Steve Yegge (tentatively titled “Vibe Coding”) for deep strategies on AI-assisted and vibe coding.
- Suggests listening to Steve Yegge’s recent appearances, e.g., Pragmatic Engineer podcast.
- Lou is also active on his blog (loufranco.com) and LinkedIn.
Notable Quotes & Timestamps
- "The more you're not reading it, the more I'm going to think it's vibe coding." — Lou Franco [02:28]
- "It was just saving me so much typing ... and keeping me in the zone ..." — Lou Franco [04:28]
- "What I like about [inline prompts] is that it's fast ... The context is right here." — Lou Franco [06:30]
- "If you're vibe coding and you don't read the code, what is tech debt then?... You're kind of experiencing the tech debt a different way." — Lou Franco [15:10]
- "A human always has to make decisions... there's going to be some bottleneck of me wanting to approve it." — Lou Franco [20:16]
- "You are getting so much productivity out of it that investing a little bit ... for that refactor step is extremely good for another kind of productivity." — Lou Franco [30:05]
Further Resources
- Lou Franco’s Blog: loufranco.com
- LinkedIn: Lou Franco
- Book: Swimming in Tech Debt
- Steve Yegge’s Book (upcoming): “Vibe Coding”
- Podcast: Pragmatic Engineer (for more on Vibe Coding)
Conclusion
AI-assisted coding is accelerating developer productivity and changing workflows, but it’s also introducing new risks and responsibilities—especially around technical debt and code maintainability. Lou Franco’s approach of tightly reviewing, structuring, and consciously steering AI output stands in contrast to vibe-coding’s “prompt and pray” model, but both are evolving rapidly. Investing time in small-step prompts, review, and deliberate refactoring is crucial for maintaining code quality in an age of code abundance. Listeners are encouraged to experiment, share practices, and keep learning as this domain continues to develop at breakneck speed.
