Technical debt doesn’t discriminate in impact. How companies handle it with their stakeholders- all of them-is becoming more of an issue. Like a lot of terms, “technical debt” means different things to different people in different situations. I read a wall street journal article this morning on the topic. The writer meant it to mean that a lot of sell side banks are running on legacy code to the extreme- think COBOL and Fortran. Others will generally label it as the complexity that develops in your code over time. And many developers will say it is what happens when you knee jerk prioritize getting new features out over keeping your code base relatively “clean.”
As I’ve said to a few friends. I think that AI co-pilots may make the problem worse because the pressure to release won’t go away. I don’t know for a fact, but friends that work at places such as AWS and other large tech lament the increasing complexity they are building into their system with the recurring theme that our big tech platforms are increasingly houses of cards. Automattic is at least public that it targets 15-20% of each release being a refactoring or rewriting of code.
The worst is if the very purpose of the platform has changed or been extended. Our own change resistance can stop us from recognizing for too long that we need to go back and re-architect the system. Doing nothing is always easier than doing something different.
On the customer side, I notice an old habit in capital markets that doesn’t help anyone. This is where service level agreements and customer demands remain unreconciled to create a partnership in any reasonable manner. Business people on both sides push for new functionality without adequate discussion.
Institutions especially sell side banks in capital markets over use revenue penalties in SLA’s as a stick, unintentionally defeating the purpose of an SLA. When a vendor goes down, the calls come streaming in for credits, return payments etc. at a rate I don’t see in other industries. If all that happens is punishment, the customer- provider framework gets less and not more stable.
What might help prevent that from happening is dialogue around technical debt, the level its at, how to resolve it and some operating agreements in the SLA around intentionally managing it and talking before taking more on. After all, you are partners in providing solutions to shared customers.