“If you don’t have time to do it right, when will you have time to do it over?”
— John Wooden, American basketball player and coach, 1910 – 2010
The metaphorical concept of ‘technical debt’ (also known as ‘design’ or ‘code debt’) is a term coined by Ward Cunningham (best known for developing the first wiki) way back in 1992 and it continues to pervade the software industry.
“Technical debt is a metaphor that equates software development to financial debt. Imagine that you have a project that has two potential options. One is quick and easy but will require modification in the future. The other has a better design, but will take more time to implement. In development, releasing code as a quick and easy approach is like incurring debt – it comes with the obligation of interest, which, for technical debt, comes in the form of extra work in the future.”
— Techopedia Dictionary
Essentially, it’s an invisible liability that isn’t measured and reported on a company’s balance sheet. It can eventually cripple the company’s future profitability and possible long-term survival. Production teams reach a point where they have to stop working on new features to pay down some technical debt and just about every other project or feature grinds to a halt.
This concept doesn’t just apply to the software industry, it pervades almost every small business where people are juggling priorities. People take shortcuts, it’s what happens in real life. Especially when they face tight deadlines or remain disconnected from the consequence of a quick and easy solution. It’s one of the main reasons why fostering a culture of “Do it once, do it right” is so important, especially as your team begins to grow. It’s not an easy balance between meeting customer demands and allowing the time to set up good business processes that everyone can follow now and in the future. Be aware that your company’s entire knowledge base cannot safely be stored in people’s heads, including your own.
In reality the screaming client gets priority because without them your business doesn’t exist. That’s just the nature of small business unless you and everyone you work with is an efficiency god, which is highly unlikely. Most people simply don’t have the right amount of time to do every job well and to document every process along the way.
But as you race towards meeting your next deadline, be aware of the invisible liabilities lurking in your company. It’s more than likely they will come back to bite you, just when it hurts most.