Re-structuring Your Technical Debt with Continuous Delivery

Technical debt is unavoidable. As it accumulates, though, it becomes more difficult to predictably and efficiently deliver new products.

What Is Technical Debt?

Technical debt, a term coined by Ward Cunningham, describes the impact decisions made during software development have on your ability to implement change in the future. This can manifest itself in a variety of ways, ranging from code hygiene, age of your framework (e.g. Spring, Hibernate), refactoring a program to make it more efficient or handle edge cases better, having repeatable build, test, deploy process and infrastructure, etc.

Technical debt is unavoidable, it will happen. In the rush to get new products out the door, though, you may be tempted to ignore it. This is understandable. The customer won’t see your technical debt. Ignoring the problem, though, seriously degrades your ability to manage your software development and deployment process. In a worst case scenario, it could cause you to come to a screeching halt.

How Increasing Technical Debt Impedes Change

Your very first release was likely a rush job that was manual and not repeatable. You want to get to market to prove that your product is viable. But now you are smarter. You better understand the underlying factors that guide your product’s use and will use the to improve it in each additional release. And there will be pressure to bring those changes to market quickly.

Can you re-structure (chapter 11))or do you have to liquidate (chapter 7)?  There are situations where there’s too much technical debt and it’s actually better to liquidate the assets and move onto the next thing.  If

Reducing Technical Debt

Tell the readers what continuous delivery is (they may not have read previous pieces)…

More stuff about automation here…

Describe how CD pays down technical debt.