"Credit", I remember reading many decades ago, "is a nice new word for the nasty old situation we used to call Debt".

I've always liked that, and I can't remember its origin. I probably read it about the time that credit cards were first becoming popular, and it's stayed with me ever since!

In the world of IT, there's a thing called 'Technical Debt'. If you spend all of your software development budget creating quick shiny new features, and never maintain, update and improve your existing software architecture, then it will eventually come back to bite you, in much the same way as if you spend all your money on cleaning your car and neglect the basic maintenance of your engine, tyres and brakes. It often takes senior management to recognise this and overrule the demands of the sales and marketing department.

I was particularly impressed, back in 2009, when Apple released the latest version of their operating system and named it 'Snow Leopard'. It was two years after the previous release, 'Leopard', and they marketed it as having "zero new features"... focusing instead on performance and bug fixes: it was just a better version of Leopard. And this was back in the day when your OS upgrades came on a DVD and you had to pay for them (albeit only $29 for this one). If only more companies had the honesty and discipline to do this more often.

Mind you, we can't blame all technical debt on marketing departments. Generally it's more fun for developers, too, to create new code than to tidy up old code. They are more aware of the need for ongoing maintenance, but it can also be a tedious job. One of the most important benefits of AI coding assistants, I believe, is that they can make the tedious tasks less tedious. This gets less attention than the "we can create new stuff really fast" stories, but I've found real value in asking Claude to look at old code and say "I need to upgrade this software to be based on SomePlatform version 8.5 rather than version 5.6. What issues will I need to resolve?" It won't always find everything, but it will almost certainly do a better job than you will when it comes to looking at all the Release Notes of every version of SomePlatform between 5.6 and 8.5 and working out how each change might affect your software.

AI development comes with its own, new kind of debt, though, when you're creating new features: Cognitive Debt. This is where you describe what you want the AI system to build, and it creates it for you, and it all seems to work fine, but no human has actually taken the time to understand what it's doing 'under the hood'. And this requires a new kind of discipline, but now at the time of creation. At Telemarq I would try, though not always successfully, to ensure that the basic operation of any of our systems was understood by at least two people, so there was less disruption when somebody left or moved onto other projects. Now, it has become ridiculously easy for a single, junior developer to create vast amounts of code that not even they understand, and that can just as easily come back to bite you somewhere down the line. Are you really happy to ship software to customers when nobody in your organisation actually knows how it works? That's what today's senior software management people will need to appreciate when setting priorities.

Meanwhile, in my retirement, I have become painfully aware of the quantity of Office-Tidying Debt that I have built up over the years. I really will get down to fixing that soon. Really.