We wrote a while back about how a website, web app, or any other kind of software is best thought of as an investment in your business. Because it’s an investment, it’s best not to think in terms of simply driving the cost down to zero — as you would if it were simply a cost center for your business — but in terms of the positive business opportunities that your money, if invested wisely, might be able to generate for other parts of your business.
But the analogy of finance has further applications for software. One of the more potent analogies for me, or anyone who’s ever had to fight against legacy software infrastructure, is that of debt. Almost all software implementations impose a specific cost on the future of a project. Most likely, unless your original software was all written by a far-seeing certifiable genius, it contains some trade-offs between the best solution to a given problem, and the most immediately available solution.
That’s technical debt. It’s the idea that your existing software contains trade-off made in the past that impose costs on future changes that you’ll want to make as your business needs change. Unlike real debt, if your website or software implementation never needs to change, but serves its current business need, you can keep running a “negative balance” indefinitely. So long as your software doesn’t change, it doesn’t matter how many bad choices, quick patches, and other bad traits it contains. This is part of the reason that much running software in business is used for decades and is rarely changed.
But the second you want to make any change, you’re forced to face down that debt. One of the hallmarks of technical-debt-laden infrastructure is that time estimates from programmers are regularly orders of magnitude off. They’ll think they need to make a small change to one small part of an application, but it turns out that changes has about 40 other parts of the software running through it for hard-to-determine reasons. What should take an hour to change suddenly takes five, and can lead to some weird new, seemingly-unrelated, bugs getting reported a few weeks later to boot.
There’s loads more we can say about the topic, but much of it is said better in this video I recently caught of Elizabeth Naramore’s talk about technical debt at the Atlanta PHP User Group from last year (have no fear, technical debt is an evergreen topic).
The post What’s Technical Debt? appeared first on Press Up.