Technical debt due to bad code quality is one the problem that every Scrum development team might face in their application. In this blog post, Henrik Kniberg discusses the causes of technical debt and provides some hints on how to manage it.
Technical Debt is defined as the eventual consequences of poor or evolving software architecture and software development within a codebase. Sometimes you have to pay it if you want that you can continue to maintain your application. But sometimes it is better to leave the situation unchanged as Ken Rubin wrote in his book.
Technical debt and legacy code are best dealt with in an agile way: continually and in small bites, focusing on the code being changed due to new requirements or defect fixing, reflecting feedback from the production.
The metaphor of technical debt is widely used in software project management in general and especially Scrum. This article written by Philippe Kruchten, Robert L. Nord and Ipek Ozkaya try to put this concept in perspective, discussing how it has become somewhat diluted lately with its extension to other areas than code or its associations with tools like static code analyzers.
Technical debt a metaphor that refers to the eventual consequences of poor or evolving software architecture and software development within a codebase. The technical debt can be defined of as work that needs to be done to adapt a software to the best practices. In this blog post, Bastian Buch explains the step used in his organisation to reduce technical debt in an Agile way.
When you borrow money you end up having a debt. A loan must be repaid. When you cut corners in your development, you end up with a technical debt. Technical debts also need to be repaid. Avoiding amortizing your technical debt and instead increasing it will result in a code base that rots. A code base that rots is a bad code base and it will slow down development until it finally grinds to a halt. Building up a technical debt isn’t something that happens over a night. It is the sum of all shortcuts made during development.
Technical debt is the consequence of poor or evolving software architecture and software development within a codebase. The debt can be thought of as work that needs to be done before a particular job can be considered complete. In this blog post, Bastian Buch proposes an agile approach to reduce technical debt. He first declares that technical debt hasn’t improve through agile development methods and principles, but only gained some visibility.