follow JDD_Krakow at

  • polski
  • english

Thomas Sundberg

Topic: Technical Debt

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.

Thomas Sundberg

About the speaker:
Thomas Sundberg is a consultant, mentor and software developer based in Stockholm. He has been working as a professional Java developer the last ten years. Thomas has a master’s degree in Computer Science from The Royal Institute of Technology, KTH, in Stockholm. Thomas has been working as a teacher at KTH teaching computer science. He has setup and maintained continuous integration at different companies since 2004. Thomas has a passion for automation and always strives to automate where it will add a value. Thomas speaking experiences includes XP 2009, Agila Sverige 2009, Öredev 2009, Turku Agile Day 2010, Agile Central Europe 2010, GeeCON 2010.