Friday, March 26, 2010

Technical Debt, Non-Technical Managers and Tony Soprano

Yesterday’s Ignite Your Coding webcast featured Dave Laribee speaking about technical debt.  It was very insightful and Dave made several great points that make the technical debt metaphor more powerful.  One point that struck a cord with me was that of “high-interest debt”.  I’ve always found the technical debt to be a very powerful when talking with other developers, however, it seems to lose it’s effectiveness when talking with non-technical managers.

A Short Story

A few years ago I worked on a project that had a lot of technical debt, like mountains of debt.  New development was painfully slow because of all the crappy code that we had to wade through just to make a simple change.  The dev team had all sorts of inside jokes about it and any estimates that were given were always padded with a hefty “tax”.  We all knew that we had loads of technical debt and had to do something about it, but the message always seemed to get lost when communicating this to management.  Looking back now I can’t blame them at all because in their eyes, debt was how you grew the company.  The company had been built with loans from angel investors and venture capitalists and this was considered a good thing, this is how the company was able to grow to the size it had in the short period of time that it had.

High-Interest Debt

What we as a development team failed to communicate was that the technical debt we had incurred was not the technical equivalent of loans from angel investors and venture capitalists.  No, we had borrowed from Tony Soprano and every other loan shark in town, we’d maxed our the credit cards and had 3 mortgages on our homes.  The fact is that in software, the interest rate on technical debt can run much higher than what business people are used to in the financial world.

Metaphors

This is the inherent danger of all metaphors, they only take the concept so far and end up implying meaning that was never intended.  As business person already has preconceived notions about borrowing and debt that they will carry with them when speaking about this metaphor.  From now on, I will make an effort to clarify the “interest rate” when speaking about technical debt to non-technical managers.

Paying Down Technical Debt

I would be remiss if I didn’t touch on strategies for paying down technical debt and the best resource I’ve seen is Dave’s article in MSDN magazine titled “Using Agile Techniques to Pay Back Technical Debt”.  Go check it out so that you can start to pay down your debt and get Tony off your back so you won’t end up swimming with the fishes!

No comments: