Technical Debt is quite a complicated subject to describe. For a simple explanation, read this great blog by Martin Fowler.
Any software solution more than a year old is guaranteed to have some level of Technical Debt because, within that timeframe, someone will have taken a short-cut or made a tactical decision that will make further changes harder in the future. Working closely with our customers, we are seeing systems that have been in place for years and are, therefore, likely to have higher levels of Technical Debt.
In understanding our customers' needs, we are seeing that they are struggling to respond quickly enough to their customer and portfolio demands, making them vulnerable to new market entrants or at risk of losing market share.
As we work with our customers to understand their business needs better and ensure we continue to provide the right products and services to them, we are increasingly seeing that the root cause of many of their issues often comes down to an excess of Technical Debt. Short-term or low-cost decisions have built up over time, compounding the problems and eventually significantly slowing-down their ability to deliver new offerings to their markets and customers.
When assessing how 'painful' your Technical Debt is, or 'how much interest you are paying', we can identify certain contributing factors:
In essence, it is the contributing factors that represent the total cost of ownership of supporting, changing or integrating with the piece of software. This cost affects the business not only in terms of actual operational cost, but also in terms of customer perception and opportunity costs.
Picture your company and your Technical Debt as a flooded basement. It would be good to know that everyone knows there's a flooded basement, from the Board downwards. It would also be good to see that there are some people in the basement with buckets, who've formed a line out into the driveway and are pouring the water away down the drain…
However, as you look at this picture, can you see if anyone has actually turned the tap off?
Are you still creating more debt every day? And if so, shouldn't you be turning the tap off first?
To stop continuing to create Technical debt, it's all about the quality of the decisions the company makes collectively and the quality of the code created. Getting the company to change how it makes product decisions is a multi-faceted, context-sensitive answer requiring stakeholder engagement, communication and change. This can take a while.
So, while you start work on educating your peers, employees and bosses about the fact the basement is flooded and the need to change their decision-making, you can achieve some easy wins to help fix the leak.
Some things you can do for relatively little pain are:
'Turning the tap off' has no immediate or short-term visible impact for your customers. Depending on the size of the organisation, the debt and the capacity you have for change, the impact of these simple changes could have a feedback loop measured in months, or even years, as far as your customers are concerned.
Everyone knows it's the right thing to do, but often companies do not deal collectively with the problem, favouring shorter-term gains. Then the Technical Debt builds up over time until the crisis of being slow to market becomes the primary strategic priority for the entire company.
The 'Ultimate' strategy is not to create Technical Debt in the first place, by investing in quality software production capabilities, making sustainable decisions, and continuously refactoring the landscape.
More information on some practical ideas of identifying, prioritising and working through the removal of Technical Debt is available at: