in Development

Technical Debt is Different

Technical debt is great metaphor to describe what happens to your code base if you don’t continually keep it clean and tidy.

Any Software team accrues technical debt  either intentionally to satisfy a short term win, or unintentionally as the design and requirements of a system drift over time. It’s a subject that has been written about extensively and I particularly liked NRG’s attempts to track it as part of their weekly metrics (you’ll want slide 9).

Why is technical debt so different?

The thing I’ve noticed about servicing technical debt is that it is very different from other work a team might undertake and that it requires an alternative approach to manage it. The principal differences that I see are:-

  • It has no immediate business value
  • Requires an enlightened company to acknowledge its importance
  • Often occurs ‘under the radar’
  • Almost always proposed by the development team
  • Since the dev team own it, specific work items will be prioritised through a different process to standard feature requests.
  • The dev team may be more emotionally tied to the work
  • Since there are  no behavioural changes, definition of done is less clear

I am fortunate to work for a company with strong engineering leadership that acknowledges and makes provision for the servicing of technical debt. However, even if the argument for technical debt has been won, deciding how best to tackle debt can be highly contentious and in some cases destructive.

So what’s the problem?

The biggest problem is that of prioritisation. In many agile teams you would hope to have a single product owner who can make prioritisation decisions for product features, in practice this can be hard for an organisation to provide but the key point is that it’s important to minimise the number of final decision makers.

In the case of technical debt it is the dev team that decides, which means thrashing out the priorities across the entire team. Each developer will have a different, often very strong view, on what is important and arriving at a conclusion can be a long and painful journey. Additionally, existing project prioritisation tools such as MoSCoW do not lend themselves to technical debt prioritisation.

A trusted means to prioritise tasks makes it possible to identify a team wide strategy. Without a clear strategy there  is the temptation for individuals to ‘go it alone’, this means that over time the overall impact is reduced. Firstly, larger items that are too big for one person are ignored and secondly, if it is not possible to decide on what is important, then collaboration becomes difficult. This means that the impact of smaller items is also diminished since they will feed into the individual developer’s strategic vision rather than that of the team’s overall vision. This in itself can become toxic as it breaks down trust within the team and further hampers collaboration. Rachel Davies has a great post describing the effects of self orientation on team trust.

The fact that technical debt is being tackled at all is a good thing, but it would be nice to do this in an efficient a way as possible. My team and I already spend a significant amount energy on improving our ability to deliver valuable software in a consistent fashion and our approach to managing technical debt should be no less disciplined. The only difference is that this time around, we are our own customer.

The solution

It’s clear that some form of prioritisation method is necessary, but committees are generally not a good way to make decisions. One approach is to assign a final decision maker, perhaps a tech lead or senior member of the team, but I really want a system where the entire team buys into the process. If the process is right then it should be rare for someone to have to say ‘this is how it is’.

Over the past year I’ve been working on a system to better manage my team’s technical debt, in my next post I’ll go on to explain the approach.

Write a Comment

Comment

  1. Indeed, technical debt is some of the most difficult work to get prioritized and implemented along with all the business driven new features and functionality. I wrote a similar set of articles on ways to get technical debt reduced in a typical business driven work prioritization model. Part 2 of 2 linked here: http://bit.ly/ZsozZ

  2. @jfbauer
    Thanks for the link. One of the things I want to talk about in the follow up post is that simply by identifying the items the team would like to work on, it becomes easier to identify opportunities as part of other business driven projects. As you suggest this needn’t necessarily increase the project delivery time at all, it just highlights an alternative and generally preferable approach.

  3. @Tristan
    An initial draft of this post actually included that quote. I totally agree, as a metaphor technical debt works well for me, but has the potential to send completely the wrong message in another context.

Webmentions

  • levné kamagra recepty January 8, 2011

    kamagra uk kde koupit pouze

    americké lékárny pro kamagra bez rx

  • get xifaxan american express January 8, 2011

    ordering xifaxan generic xifaxans

    get xifaxan canada purchase

  • order rifaximin price in us January 8, 2011

    buying rifaximin generic equivalent buy

    online order rifaximin purchase in australia

  • buy cheap avodart cheap to buy online January 8, 2011

    buy cheap avodart canadian discount pharmacy

    cheapest buy avodart generic in usa

  • online order staxyn uk buy online January 8, 2011

    buy staxyn generic uae

    order staxyn with no prescription

  • itraconazole australia legal import January 8, 2011

    cheap itraconazole cheap europe

    Generic itraconazole

  • online order gabapentin australia to buy January 8, 2011

    order gabapentin australia buy online

    ordering gabapentin buy from canada

  • fildena no prescription January 8, 2011

    cheapest buy fildena buy adelaide

    cheap fildena generic prices

  • cheap dutasteride non prescription January 8, 2011

    discount dutasteride cheap online no prescription

    how to order dutasteride uk cheap purchase buy

  • get flexeril cyclobenzaprine canada shipping January 8, 2011

    buy cheap flexeril cyclobenzaprine purchase discount

    how to buy flexeril cyclobenzaprine overnight no rx

  • ordering androxal using mastercard January 8, 2011

    androxal online canada compare price

    cheapest buy androxal purchase in canada

  • enclomiphene discount online January 8, 2011

    get enclomiphene cheap prescription

    how to order enclomiphene canada fast shipping

  • pas cher sans ordonnance kamagra January 8, 2011

    pharmacie canadienne kamagra

    achat kamagra acheter bon marche

  • Technical Debt is Different January 8, 2011

    […] debt either intentionally to satisfy a short term win, or unintentionally as the design and… [full post] neilj fragile developmentmoscowtechnical debt 0 0 0 0 […]