Articles,

How to reduce Tech Debt: A Practical Experience Guide

6 m read
QArea Team
QArea Team Marketing Manager
October 11, 2017
Share on
Reading Time: 6 minutes

So now we are going to talk about what technical debt really is and how we can reduce it. Everything you wanted to know is here – actual practical steps.

Let’s say, you want to outwork your competition and add features before competitors, the release date is pressing on you, and your client wants the new stuff right here right now. What do you do then?

Well, you might start working quickly and dirty – some examples:

  • You “forget” to upgrade to the new release of the compiler.
  • You don’t follow UI guidelines.
  • You promised to add many features to client in a short period of time and now you are short in time.

As a result, you add something new and everything looks fine… until it is not. After the product release you start getting feedbacks from unsatisfied users: they found bugs and the client does not understand what is going on.

Congratulations, you have technical debt!

Technical debt is a metaphor which explains the situation when you have two choices of adding functionality: a long-term good solution which needs lots of time or a quick one but messy and unpredictable. When you choose an easy solution, you have tech debt which results in code problems, bugs and difficulties with the delivery of the future features.

Why does it happen?

In the study of the Software Engineering Institute,1318 qualified IT-developers defined the reasons for technical debt in Scrum. You can see the results in the diagram below or go to the original link.

 

 

 

 

 

 

 

 

 

As a company with the solid experience in reducing technical debt of software development, we created a list of the possible problem causes  based on the research above and our practice.

  • Bad qualification of developers: they do not choose short-term solution over a long-term one – they don’t know alternatives;
  • Competition and market pressure: team wants to outrun the competition, surprise users and bring new technologies to the market;
  • Budget and time pressure, client wants everything right now;
  • Ignoring the possible consequences of TD (happens especially with inexperienced developers). If you are not completely sure whether your developers have enough qualification and knowledge on how to calculate technical debt, don’t take a risk – go to experts.

Is the tech debt such a bad thing?

Not all the time. There are different types of technical debt – in some cases it might be actually a good thing.

Firstly, when you are a newcomer to the market, you have to impress users with your features and idea. Sometimes, you have to do it fast – before your competitor does. So spending time on a long-term solution is not the best idea. Remember, the fastest eats the slow – the faster you release something new – the bigger chances to stand out from your competition.

Secondly, sometimes technical debt is a part of your company growth: you release new features and products which help your clients and make your company well-known. If developers spend too much time on fixing insignificant bugs, it can be a straight road to stagnation.

How to manage technical debt using Agile?

We have already gone through main theoretical aspects of TD. So now it feels like time to discuss real practical actions: what you are going to do if you have technical debt?

Here we have some tips which have been proven to work by us and our colleagues.

You have to see your technical debt very clear

Keep a regularly updated Technical Debt List. In order to solve problems, you have to know exactly which problems you are going to solve. At QArea, we practice creating Debt Backlog: it is a comfortable technique which helps estimate the consequences, calculate the debt and track debt by its name.

Debt Backlog – My Natural Healer iPhone App

How to avoid technical debt – our Debt Backlog

SEI Research about Technical Debt showed that most executives, developers and project managers are unaware of their TD (42%), 26% had no opinion and only 10% were managing TD. Many companies are chasing new trends meanwhile forgetting the possible magnitude of its consequences (software can end up upgradeable or being a security risk).

Again, keep your enemies closer – know your technical debt and control it.

Make a schedule

When we talk about financial debt, it is obvious that you have to plan everything: what and when you are going to pay to get rid of the debt. You save money each week or each month and pay it. The same thing works with TD. It is important to have practical experience on how to reduce technical debt: for example, we organize the “clean-up” periods when all the developers work on reducing TD.

Do not let technical debt build up

At QArea, we practice “Boy Scout” rule which is: always leave the code cleaner than it was before. It is impossible to reduce technical debt all at once – do it one code at a time (and don’t forget to update your Technical Debt List in the process).

Recheck your definition of “Done” and “Ready”

You might need some changes. For us, it was helpful to add a “Review” column to our working boards. Also, we practice creating checklists – so developers double- and triple-check everything they work on.

Test your solution

Each developer knows that testing is important yet not everyone is doing it responsible enough. We made it a rule – to test each new solution because this is the most objective way to see each problem clear.

Use tools to manage TD

Research of SEI showed that only a few developers and managers are using tools to measure and track their technical debt. There is a list of tools and metrics of technical debt they listed – check it out yourself.

 

 

 

 

 

 

 

Tools used for managing technical debt according to SEI Research

Talk to your client about TD and its cost

You can show some case studies that we talked about or show your risks calculation. When your client knows about possible TD, he or she is more likely to give you more time on the project.

Ensure stakeholders that architecture growth is akin to any application growth

For any new features that we add to an application, we should have an equal extension in architecture in the initial phases of a sprint. This practice has been well described in the SAFe framework as having an architectural runway that is parallel to the application runway. This can be planned based on the requirements of the application. This way, we’ll reduce technical debt by following proper engineering processes.

Plan and predict your technical debt in your developing process

Write it down, save the information and schedule the reducing date. If you are aware of possible consequences, it is much easier to reduce them (planning will save you plenty of time during your clean-up periods).

Let’s go through the main points one more time

  • Before working on a project, calculate the possibility of having technical debt, analyze your architectural choices, add checklists and “Review” columns to your working boards.
  • Technical debt is not necessarily a bad thing if you have calculated the risks and planned how you are going to reduce it in the process.
  • Communicate with your team and client. If everyone knows about the technical debt in infrastructure, your work will be much more effective.
  • Don’t be afraid to consult professionals. Everything that we described here looks easy at the first glance, but practically everything might be much more complicated. As a company which helps with reducing technical debts, we have seen cases where the project-managers wanted to reduce very complicated TD by their own – and in fact, they only made the situation worst.
  • Don’t let the problems build up – leave the code cleaner than it was before, control bugs and update Technical Debt List.

If you feel like you can reduce your TD by your own, it is great – start doing it. But if there is a need for a consult or an expert advice or you feel like it is better to save your time – you are always welcome at QArea – our experts help reducing tech debt for more than 10 years!

Check out our related articles:

How To Know Your Startup Needs A Tech Boost: 5 Sure Signs

What Tech Resources Are A Must To Be Outsourced

Top 5 Apps For Every Tech Company Ceo

Tags
Share on
Privacy Preference Center
Your Privacy

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.

Strictly Necessary Cookies Always Active

These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.

You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.

Performance Cookies

These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site.

All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.

Cookies used

Google Analytics
Functional Cookies

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.

Cookies used

Test Second Test
Targeting Cookies

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.

More Information

When you visit any web site, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.