How do you know if you’re in technical debt? (And how to get out of it)
Do simple changes take a long time to implement? When changes happen, are they delivered with a number of bugs? Does the development team dislike working on the system?
If you have answered yes to any of these questions, it’s likely your organisation has built up a level of technical debt.
Technical debt is common. In fact, most organisations that use software are likely to have some level of technical debt that is impacting on their business. Multiple studies estimate the average organisation spends 23%-42% of its development time on clearing technical debt, which is effectively the re-working of solutions when quick fixes have failed.
In the know
Technical debt is usually accumulated in a business's technology over time. It arises when shortcuts are taken or compromises are made to deliver quick results, without considering long-term implications.
For some companies - particularly those that use software largely as a support function or are more reliant on legacy technology - technical debt is unintentional and has accumulated due to factors beyond the control or awareness of the development team. It typically arises from a lack of knowledge, time pressure, or unforeseen circumstances.
Therefore, the first hint of a technical deficit emerges when the system breaks, which will always put a business on the back foot - wasting unnecessary time, money and opportunities to innovate.
Other examples of unintentional technical debt include rushed development due to tight project deadlines, insufficient documentation, inadequate communication, or unexpected changes in requirements.
This is why it’s prudent for any company, no matter where they are on the technical spectrum, to understand their systems and get wise when it comes to some of the key business impacts of technical debt:
- Longer timelines and more expense - If a company isn’t aware of its accumulated debt, quick and easy system changes will suddenly become time-consuming and expensive.
- Lost opportunity - Technical debt can have an opportunity cost associated with it. The time and resources spent on dealing with technical debt could have been allocated to developing new features, improving user experience, or addressing other business priorities.
- Heightened vulnerabilities - Security vulnerabilities will exist in systems where regular maintenance has not been performed, such as updating old platforms, libraries and operating systems.
On the flip side some companies, such as tech startups, are aware of and are comfortable with their technical debt, and expect to build this up in the early days, with a view to ‘paying it off’ later, as they prioritise getting their product to market. This is often a strategic decision made to prioritise quick delivery or to validate an idea with minimal effort. Examples include bypassing proper code refactoring, not writing comprehensive tests, or delaying architectural improvements. What is critical in this scenario is that the business is in control of its debt - not the other way around.
Paying off debts
To manage to pay off technical debts there are automated tools to figure out where code ‘hot spots’ are. These hot spots are usually complex areas of code that have evolved over a long time. Tools such as SonarCloud and Snyk scan source code and its dependencies to provide an idea of how much debt has been acquired. SonarCloud also provides an estimated time to fix the issues, so technical debt can be measured over time.
Software development usually focuses on adding features to the application. Switching focus for a short time to shore up the system instead of adding more features can put an organisation in a better position relatively quickly.
If code doesn’t have unit tests, add them and refactor the code to confirm that inputs and outputs haven’t changed but the code is cleaner and easier to manage.
Automate the deployment process. This means technical debt changes can be released quicker, without the build-up of a large number of changes to be deployed all at once.
Ask your development team what would they do to improve the system if they had just two weeks to do so. Usually, they would know exactly where to focus to get the most value.
Practical advice on avoiding debt
- Think about where the system might be in six, 12, or 24 months' time and write your code appropriately. It’s not an exact science, but if you write your code to accept changes more easily then it will be simpler to update.
- Ensure you are writing your code in a consistent manner. If multiple developers put their own style in the code it can be hard for a new developer to add value quickly.
- Stick to modern software principles, such as SOLID.
- Ensure a code review process is followed, or practice pair programming from time to time.
- Look to release changes to production as quickly as possible. This will force you to think about continuous improvement to the system.
- Don’t take the quick and dirty option all the time – as this may set you back - take your time to flesh out how the system should work. You will reap the rewards in the long run.
- Establish where your company sits on the technology spectrum - is it ‘technology now’, ‘technology forward’ or ‘technology future’? Knowing this will help you define the right strategy for managing or avoiding technical debt.
Change is the only constant
Standing still not only creates technical debt but also prevents businesses from evolving and growing. For some business decision-makers, technology is daunting, and the possibilities can seem endless. The key to moving forward is understanding and acting on a business’s key tech challenges, the most common being:
- Keeping up with constant change
- Balancing new and existing software
- Making the technology accessible and user-friendly for an entire organisation
Propel Tech works closely with clients across many sectors, from manufacturing and automotive to real estate and retail, to mitigate risk, such as technical debt, and maximise technology’s role in creating value. Download our in-depth white paper, ‘Supercharge Your Technology Value Proposition’, for a detailed expert guidance on making the right investments and company-wide changes to thrive and remain technical debt free.
Discover where your business sits on the ‘technical spectrum’ with our free online assessment. Are you a ‘technology now’, ‘technology forward’ or a ‘technology future’ company?
Your partners in possibilities
As experts across existing and new technologies, we don’t simply solve software problems, we find solutions that help manage change so that your business thrives and grows.
We’re eager to hear about your project goals and turn them into reality. Get a free consultation to make tech possible.Brief us