Technical debt, product debt and urban decay

I’ve been thinking a lot recently about how technical debt builds in products and the decision-making processes we have around it.

Technical debt is the inevitable cost of maintaining an increasingly complex system and is the price we pay for doing things quickly over “correctly”. It can be minimised but is almost unavoidable unless we spend more effort driving the debt down than discovering worthwhile product features. Much has been written about it so I don’t need to discuss what it is or is not.

I think of technical debt as the equivalent of maintaining the inefficient parts of a city’s infrastructure. Rail routes cost money to maintain. If they’re not maintained, they become unreliable and people gradually stop using them. If they’re in the wrong place, few people will want to use them anyway. But now that they’re built it’s tempting to keep maintaining them as the marginal costs are low relative to building completely new infrastructure.

Whatever you do, once you start building, you are creating cost centres.

A city needs roads and perhaps even a rail system to function. Get the design right and the flow of goods and people is optimised to give the maximum economic benefit for the least cost. Or at least until the economic hubs in the city start to move around.

Urban decay

Sometimes rail routes are abandoned, but the cost doesn’t go away. Take Charleroi as an example with it’s abandoned metro, now an obscure tourist curiosity and a magnet for graffiti and decay. Even abandoned urban areas have costs. Social costs from drug abuse and homelessness, pricing costs to maintain local order and economic costs as the surroundings become less desirable.

The smaller marginal costs of maintaining the status quo are sometimes politically and fiscally more palatable than the significant costs of decontaminating an area and returning it to nature. There are however several good examples of cities successfully investing in re-greening areas. New York has its High Line, London has its Parkland Walk, a former rail line, which is now its longest nature reserve.

Renewal

I see returning urban decay to nature as the equivalent of deleting your redundant code and eradicating those unloved and unused features. It gives space to breathe and encourages renewal in the surrounding environment.

Politics can mean that poor policy or design decisions are kept as leaders fall victim to self-justification in a bid to rewire history to maintain their apparent decision making prowess.

The importance of not being right

I don’t care who is right or wrong, but I do care about things being designed well and things being put right. And this is where the process is more important than any leader’s moments of divine inspiration.

Take a road for example. One approach could be to say “let’s just build a road here”. We can do the same with technology too. We can just decide to build a particular feature in a product, but we often end up with redundant features that are costly to build and even more costly to maintain. Removing them doesn’t come for free either, but it does at least kill off the ongoing costs.

There is a simpler way. We can just see where people travel, find the tracks they make in the dirt and then pave over it. Paving the Cow path is a term used at Facebook to describe how they observe where users go and then just make it easier for them to follow those routes.

Experiment, see what works, then build it. At least if we work on the technical debt, we will be making the right thing right. But if we build the right thing we will be making the right thing right which is even better.

So, it’s not a travesty to realise you got it wrong and to get rid of what doesn’t work, let nature take over and create space to breathe again.