Monday 28 April 2008

Technical Debt

As engineers we tend to look at technical debt as a uniformly bad thing.  True, in an ideal world we wouldn't have any at all - but we live in the real world and sometimes it's the right thing to do.  Incurring some debt can get something to market quicker when time is really of the essence.  That's not inherently bad, the mistakes we make are choosing the wrong tradeoffs (things that are too difficult to refactor later) and, more importantly, not paying it back.

We need to change how our entire organisations look at technical debt and we're going to have to lead the way on it.

Paring it right down to basics, let's have a look at the definition of the word debt.  That hallowed source of organic knowledge, Wikipedia, says "debt is that which is owed; usually referencing assets owed, but the term can cover other obligations.  In the case of assets, debt is a means of using future purchasing power in the present before a summation has been earned."

So, technical debt is a facility that allows us to bring forward the realisation of a piece of technology before it would otherwise have been ready.  A temporary injection of something intended to be paid back at a later time.

How about engineering's role in creating this facility?  Well since we've made this loan I'd say that makes us the creditor.  Let's see what Wikipedia says about that "a debt is created when a creditor [that's us] agrees to lend a sum of assets [technology in advance] to a debtor [the business].  In modern society, debt is usually granted with expected repayment [refactoring]; in many cases, plus interest."

Plus interest - now there's an idea, but let's win this one step at a time...

Think about your position in technical debt; you are actually in control!  You are the creditor here and as such you are free to impose terms, terms like making sure it gets paid back!  You are lending technology to the business ahead of where it would naturally be created and you need to demand payback on a sensible timescale.

If you stand up for the right solutions, make the right tradeoffs and then ensure it's repaid then technical debt doesn't have to be a bad thing at all.  For this to really work you have to have senior management commitment; but whether you've got it or not don't let that stop you trying - today.

No comments: