Reduce technical debt
Thoughts on reducing technical debt
In some ways, technical debt is like financial debt.
When you carry too much, it can be overwhelming and prevents you from accomplishing much else. In an ideal world, the best way to handle financial or technical debt is to minimize or avoid it altogether. A more pragmatic approach is to have some strategies in your toolkit:
Have an emergency fund
Build contingency resources (time, people, funding) into every product or project.
You can debate the amount (e.g., 10%, 30%, or TBD), but having some cushion is not negotiable.
Keep track
Keep an updated inventory of technologies, frameworks, and dependencies. Include your release versions, current release versions, published update schedules, and other relevant information.
Document your upgrade policy and goals.
Automate upgrades where possible.
Stay on top of your debt by using reminders, e.g., put release, decommission and end-of-support dates in your organizational calendar.
Schedule upgrades well before end of life.
Review the inventory with your teams and leadership regularly.
Communicate, communicate, communicate. No surprises.
Pay more than the minimum, pay ahead
Get ahead of upcoming changes by researching; reading release notes, and attending demos and training.
Make time to experiment and evaluate new releases, technologies, and products as soon as they are available so you can make an informed decision about whether and when to upgrade.
Understand the impact of changes. Major changes likely require a project. Get project conversations going early.
Consider and agree upon payoff methods
E.g., avalanche vs snowball
Avalanche: Tackle the most expensive debt first. Everything else is on hold until it’s done. Then, focus on the next highest impact. This method saves on overall costs, but it can be discouraging, and unrealistic or difficult to stick to the plan.
Snowball: Pay off the smallest debt first, as quickly as possible. Then, roll that effort toward the next smallest, working up to the largest. This method builds momentum, but adding or building resources as you move on to larger efforts may be challenging.
Every effort, team, and situation is different. You may use a combination of both approaches or another method entirely.
Photo by Alice Pasqual on Unsplash