If you have ever been involved in the development of something as simple as a Microsoft Excel macro, as normal as a public-facing website or portal, or been a part of a full-blown enterprise software application, you are most-probably guilty of ringing up “technical debt” which must be serviced. While national and state spending, deficits, and debts are the first things we hear about when we rise and shine, your technical debt may be accruing in quiet solitude.
It is the extra effort technical people will need to make in the future in order to pay for quick-and-dirty design choices of the past.
Remember the hot-shot programmer’s code that your team is constantly going back to fix? Remember the programming from the low-cost, overseas shop who didn’t code to your company standards, language or dialect? Remember the boss that “needed the project no matter what” who made you cut corners and who promised you could go back later and “do it right?”
In this metaphor, “interest payments” are the countless fixes made and support calls taken to service the debt of a production system. With a large technical debt there is so much time spent “supporting and fixing” that there is no time for adding new features. If you think this frustrating, try getting approval from your client or boss for budget money or time to “go back” and improve the design by paying down some of the interest or principle. Be sure to explain that there will be no real difference the customer or user sees .
One could argue that, in business, you might incur some debt to get to the market quickly, race to a trade show, or beat some deadline in order to grow your business. If you agree with this, you have to agree that very debt will someday come due. The same is true with technical debt – it will come due, with interest.
With any problem, the first thing you need to do is acknowledge you have one:
Second, you need to include time and money in your budget for paying it down. How much depends upon how deep in debt you are. Third, set debt ceilings on future projects by committing to standards, procedures, and the absolute best people you can find. Lastly, manage your debt with periodic reviews logging them into a “debt backlog” and use a “debt snowball” to pay them down with any item over 90-days treated as “critical.”
You would not believe some of the projects we have been asked to fix for clients. To protect the guilty, we will not name names. We will however, give you a 30-minute, remote assessment of your technical debt and identify short and long-term risks. Why not schedule at 30-minute discussion with me, Calvin to see how we can help you? You can book me using this booking link. Or, give us a call at +1 225 384 5549.
For more discussions on Technical Debt see these authors:
Jeff Attwood http://www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html
Steve McConnell http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
Ward Cunningham (the guy that coined the phrase, “Technical Debt”)
Brian Rigsby, “Project Estimates, The Silent Killer” http://envoc.com/think/late-technical-debt-interest-payment