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.
How can we remove technical debt?
The first thing that needs to be done is to recognize that we have a problem. We will never solve a problem that we don’t know of. Realizing that we have technical debt is something your manager won’t do; he doesn’t look at the code base. You will have to find it and start to amortize it. Amortizing your technical debt means refactoring your bad code to clean code.
I will show a way to start paying the technical debt by doing many small refactoring steps. This is similar to cleaning your kitchen after preparing each meal to avoid building up a giant mess. It will reduce the technical debt. Given long time, the technical debt will be completely removed.
I will also introduce an idea of how a large refactoring can be done while minimizing the risk for failure. The method is to visualize all problems with a dependency graph that contains all the things that need to be fixed. The leaves in the graph are the starting points and you remove them one at a time. Each leaf is a small step and therefore a small risk. The large refactoring is done when all leafs are removed.
Video Producer: Agile Central Europe Conference