What Is Technical Debt?
Technical debt is a reality for all IT teams, and anything IT related that affects productivity can incur technical debt.
Some people would argue that there are many types of technical debt; defects are quality debt; poor or misaligned processes are process debt; missing features are feature debt, and so on, yet using different terms only adds unnecessary complexity to the issue.
Overall, it’s simply important to understand whether you have incurred any technical debt, and if so, where it is coming from. This way, measures to reduce the debt can be implemented.
Have I Incurred any Technical Debt?
In today’s fast-paced business world, all organisations have (and arguably should have) some technical debt.
Technical debt caused by developing a Minimum Viable Product (MVP) so that you can gain feedback from the users early on, is a perfectly valid and certainly cheaper and quicker solution, compared to building the technically ‘perfect’ system only for the users to say it doesn’t do what they want it to do; or to find it doesn’t sell as well as expected.
Over-compensating and living debt free will likely result in a less agile organisation which in turn causes its own problems. Agility is vital to all businesses these days and it’s important not to lose sight of that.
6 Ways to Manage Technical Debt…
Whether drowning in technical debt or 100% debt free, all businesses should try to comprehend how to manage technical debt to prevent it from spiralling out of control. To help, we’ve compiled a list of ways to manage technical debt, and recommend you follow our 6 easy steps:
1. Document your Technical Debt
Write each individual debt item down in a central repository and in the case of bugs be sure to document the steps to reproduce the issue, including screenshots too wherever possible.
Out of sight, out of mind makes it all too easy to pretend they don’t exist so try not hide them away in a separate list from your planned new features.
2. Update Third-Party Libraries
Almost all software is built upon a foundation of third-party frameworks and libraries. Whilst not updating to the latest and greatest version on the day of release can protect your systems against bugs in those libraries, it’s important not to leave it too long as some will contain security fixes.
3. Quantify Each Issue
Much like the APR varies with different financial products, the impact of each of your debt tasks will vary, so be sure to assess them individually. For instance, that end-of-month reporting process is likely to be less important than the bug that happens ten times a day.
Also, be sure to familiarise yourself with the business’s plans, as spending a week fixing bugs in a piece of the system that’s due to be rewritten in the coming months, is simply a waste of time.
4. Prioritise Technical Debt Tasks when Planning your Next Release
You may have too many technical debt tasks to tackle them all at once and new features can’t take a back seat for too long. But always set some time aside to work on the more urgent debt tasks, and when you do, be sure to resolve more with each new release than you generally uncover during the same period. This way you will be making progress and paying back the principal rather than just the interest.
5. Review your Business Processes
If your system is for managing internal processes, be sure to check the processes and the software are still aligned. The goal is for the whole company to be more efficient so a few days’ investment in IT to update a process could save weeks elsewhere in the company. If your system is customer facing, then speak with customers regularly to ensure you’re still delivering the best service to them.
6. Avoid Being a Perfectionist
Seeking perfection impels us to keep trying to better our work but it’s entirely subjective. As a rule, at the point where further improvements reach the law of diminishing returns, stop, and move onto the next task. A system where the entirety is 90% ‘perfect’ will deliver much better business benefits than one that’s 100% across half of it and barely functional across the rest.
Are you managing your Technical Debt Effectively?
Managing technical debt is not an exact science. The specifics vary from company to company and sometimes even system to system within the same company. Simply recognising that the debt exists, and it needs to be paid back goes an enormous way to dealing with the issue.
The rest is largely making that cultural shift in thinking to ensure the appropriate amount of focus is given to resolving technical debt, being aware of when it is being created and taking note of how much is being borrowed against the future.