Managing Technical Debt - A Practical Approach Using Continuous Integration and Project Management
Schedule today: What is technical debt? Cost of debt from various perspectives Managing your debt Conclusions
What is technical debt?•In 1992 Ward Cunningham published areport at OOPSLA2, which he proposed theconcept of technical debt.•There are many ways and reasons (not allbad) to take on technical debt.•Ward Cunningham has a video talk (recordedat 2009) where he discusses this metaphor hecreated.
What is technical debt?•You have a piece of functionality that youneed to add to your system.•You see two ways to do it, one is quick to dobut is messy - you are sure that it will makefurther changes harder in the future.•The other results in a cleaner design, but willtake longer to put in place.
What is technical debt?•Doing quick and dirty way, we sets up with atechnical debt, that is similar to a financialdebt (increasing interest rates).•It comes in the form ofthe extra effort that wehave to do in futurebecause of the quick anddirty design choice.
What is technical debt? •We can choose to continue paying by refactoring the quick and dirty design into the better design.•Although it costs to pay down the principal,we gain by reduced interest payments in thefuture.
What is technical debt?We have the understanding about whattechnical debt is, but what it is not?
What is technical debt and what it is not? A good example of this was defined by Uncle Bobs: a messy code (produced by ignorant people) who don’t knows about good design practices, shouldnt be a debt.
Cost of Debt from Various Perspectives Technical debt affects everyone, but in different ways. This is part of the problem of managing the debt. Even if you understand it from your perspective, there are other legitimate ways to view it.
Cost of Debt from Various Perspectives• Customers need software thatworks, that they can understand,maintain, extends, support, anduse.•This cannot happen withoutmanaging the technical debt atevery level of SW process.
Cost of Debt from Various Perspectives • Helpdesk suffer from almost every aspect of technical debt: poorly designed interfaces, bad or nonexistent documentation, slow algorithms, etc. •Is the customers’ primary input and often has no direct access to the people who can solve the problem.
Cost of Debt from Various Perspectives• Operations can spend much oftheir time paying for decisions thatother people made withoutconsulting them.•They need to work with developersearly in the cycle to make theproduct reliable, maintainable andwell understood.
Cost of Debt from Various Perspectives • Engineers are the developers who need write, repair, extend, or otherwise maintain the code. •The beginners developers seem to be the major creators of technical debt.
Cost of Debt from Various Perspectives• Marketing are pressured by salesand the customers to provide newfunctionality as quickly aspossible.•When something does not workproperly, they are also on thefiring line.
Cost of Debt from Various Perspectives • Management can be inclined to take on technical debt without understanding the costs and also pays a price. •On the other hand, they have no difficulty for embracing the concept and it can be an advantage.
Cost of Debt from Various PerspectivesWe have the understanding about whattechnical debt is, what it is not and the itscost from various perspectives. Then, how canI manage it?
Conclusions Technical debt can be viewed in many ways and can be caused by all levels of an organization. It can be managed properly only with assistance and understanding at all levels. It helps nontechnical parties understand the costs that can arise from mismanaging that debt.
Conclusions Release cycles can make a considerable difference in the rate of acquisition and disposal of technical debt. If that debt is not paid off promptly, the system can bog down at a truly frightening rate. Customers usually buy features, not long-term maintainability, often they encourage to move on to the next project rather than spending the time with good practices.
Conclusions We exhibit tips to you managing your technical debt : ◦ Establishment a SW process ◦ Comparing your plans ◦ Gathering team productivity ◦ Collecting and managing issues ◦ Plan your payment