Wednesday, January 20, 2010

Paying Down Technical Debt

I put together this short bulleted list of things to bear in mind when working with applications that have a high amount of technical debt.

The Facts:

• Every application has some amount of technical debt…even Brink's CF systems
• Ignoring such technical debt is NOT an option
• We cannot just work on technical debt and not provide additional product enhancements

How do we address it?
• Identify the debt and how it's negatively impacting the application and organization
• Build a slam-dunk case for medium-to-large scale deficits…not "just because"
• Be creative and find a way to inject debt payment into an already desired product request
• Fix the debt. Avoid building any sort of temporary solution(s). Do it right.

Deficit Payment Tactics
• Provide constructive criticism to your peers, but don't beat each other up. Code Review.
• Consider refactoring over rewriting
• All code should have tests associated with it
• Measure before and after the change and identify improvement
• We'll work to improve collective ownership
• Review the debt backlog after each new release…ongoing refactoring is inevitable
• Learn from both yours and others mistakes
• Remind yourselves of what's helped make us successful….TEAMWORK

No comments: