I recently published an article “Technical Debt a Perspective for Managers”. On another forum I got the suggestion that the team should take a break every couple of months and spend a week paying down their technical debt. From personal experience this sounds a like a great idea but it ends poorly. Here’s what I see happen in this case:
- Management (and others) expect miracles to be performed every time you have a technical debt week. They expect the team to make the code perfect. Of course we never get done quite as much as we hoped.
- Developers delay making the smallest changes and improvements saying we have to put it off to technical debt week. The net result you have way more stuff to fix than you have capacity during debt week.
Like a mortgage (or credit card debt), you’re best off paying it down on continual basis. I encourage teams I coach to acknowledge that 10-15% of their time will be spent on an ongoing basis paying down their debt. That’s for greenfield apps, older apps will have to spend more. When you pay off your home mortgage you make payments as soon as you have the money from your paycheque. Delays just add interest charges, lump sum payments are a nice addition to regular paydown but not a replacement. Technical debt is the same way.