CDA Technical Debt & Refactoring Strategies 2 — Questions and Answers
Question 1: In the DA toolkit, which practice directly addresses the accumulation of technical debt by building quality into the development process from the start?
- Test-driven development (TDD) (Correct answer)
- Waterfall integration testing
- Manual regression cycles
- Big-bang releases
Correct answer: Test-driven development (TDD)
TDD ensures each code unit is tested before written, preventing defects and debt from accumulating in the first place.
Question 2: A DA team identifies 'architectural debt' in their system. Which refactoring approach is most appropriate for this type of debt?
- Opportunistic refactoring of individual methods
- Strangler Fig pattern to incrementally replace legacy architecture (Correct answer)
- Rewriting the entire system in a single sprint
- Ignoring it until a major release
Correct answer: Strangler Fig pattern to incrementally replace legacy architecture
The Strangler Fig pattern allows gradual replacement of legacy architecture without a risky big-bang rewrite.
Question 3: According to Disciplined Agile, what is 'deliberate technical debt'?
- Debt incurred accidentally due to poor skill
- A conscious trade-off to meet a deadline with a plan to address it later (Correct answer)
- Debt that is never documented
- Legacy code inherited from a prior system
Correct answer: A conscious trade-off to meet a deadline with a plan to address it later
Deliberate technical debt is a known, intentional shortcut made with awareness and a plan to remediate it.
Question 4: Which metric best helps a DA team quantify the size of their technical debt backlog for prioritization?
- Velocity
- Code churn rate
- Remediation cost estimate (Correct answer)
- Number of user stories completed
Correct answer: Remediation cost estimate
Estimating the cost to fix identified debt items allows teams to prioritize based on risk versus remediation effort.
Question 5: A team practices 'continuous refactoring.' What does this primarily mean in a DA context?
- A dedicated sprint each quarter solely for refactoring
- Small, ongoing improvements embedded in every iteration (Correct answer)
- Annual code review sessions
- Outsourcing refactoring to a separate team
Correct answer: Small, ongoing improvements embedded in every iteration
Continuous refactoring means improvement is ongoing and embedded in daily work, not batched into special sprints.
Question 6: Which DA-recommended strategy helps prevent new technical debt from being introduced during feature development?
- Definition of Done (DoD) that includes code quality standards (Correct answer)
- Skipping code reviews to move faster
- Deploying directly from feature branches
- Limiting pair programming to senior developers only
Correct answer: Definition of Done (DoD) that includes code quality standards
A rigorous DoD that mandates code coverage, peer review, and refactoring prevents new debt from entering the codebase.
Question 7: When a DA team uses the 'Boy Scout Rule' in software development, what are they doing?
- Mentoring junior developers on agile ceremonies
- Leaving code cleaner than they found it whenever they touch it (Correct answer)
- Creating a checklist for sprint retrospectives
- Assigning debt repayment to the most experienced team member
Correct answer: Leaving code cleaner than they found it whenever they touch it
The Boy Scout Rule means developers improve any code they work on, gradually reducing debt over time.
In the DA toolkit, which practice directly addresses the accumulation of technical debt by building quality into the development process from the start?