50
Dan Nicola | Maxcode Florin Cardasim | Endava

Technical Debt (Dan Nicola, Florin Cardasim)

  • Upload
    itcamp

  • View
    82

  • Download
    2

Embed Size (px)

DESCRIPTION

Technical Debt is usually referred to as something Bad. Most articles and books on the subject are about how to get rid of technical debt. But is debt always bad? When can it be good? In this session we will see how to use technical debt as tool, and distinguish between good and bad debt. We will discuss about several types of technical debt we can have in our code, what are the acceptable levels of debt and ways to handle it effectively without having to pay a lot of interest.

Citation preview

Page 1: Technical Debt (Dan Nicola, Florin Cardasim)

Dan Nicola | Maxcode Florin Cardasim | Endava

Page 2: Technical Debt (Dan Nicola, Florin Cardasim)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Huge thanks to our sponsors & partners!

Page 3: Technical Debt (Dan Nicola, Florin Cardasim)
Page 4: Technical Debt (Dan Nicola, Florin Cardasim)
Page 5: Technical Debt (Dan Nicola, Florin Cardasim)
Page 6: Technical Debt (Dan Nicola, Florin Cardasim)

Code Debt

Architectural Debt

Test Debt

Knowledge Debt

Technological Debt

Page 7: Technical Debt (Dan Nicola, Florin Cardasim)
Page 8: Technical Debt (Dan Nicola, Florin Cardasim)
Page 9: Technical Debt (Dan Nicola, Florin Cardasim)
Page 10: Technical Debt (Dan Nicola, Florin Cardasim)
Page 11: Technical Debt (Dan Nicola, Florin Cardasim)
Page 12: Technical Debt (Dan Nicola, Florin Cardasim)
Page 13: Technical Debt (Dan Nicola, Florin Cardasim)

Customers are annoyed by bugs or

missing features due to low productivity.

Page 14: Technical Debt (Dan Nicola, Florin Cardasim)

This leads to additional costs for the helpdesk,

which annoys the people there, too.

Page 15: Technical Debt (Dan Nicola, Florin Cardasim)

Increased development time and quality

issues are also a problem for marketing.

Page 16: Technical Debt (Dan Nicola, Florin Cardasim)

Bugs lead to frequent patches,

which annoys the operations team.

Page 17: Technical Debt (Dan Nicola, Florin Cardasim)

Many annoyed parties definitely

don’t make the management happy.

Page 18: Technical Debt (Dan Nicola, Florin Cardasim)

Last but not least also the developers

are suffering. No one wants to deliver

bad work.

Page 19: Technical Debt (Dan Nicola, Florin Cardasim)
Page 20: Technical Debt (Dan Nicola, Florin Cardasim)

“the only one who can ever change this code is Claudiu”

“let’s just copy & paste this code”

“it’s ok for now but we’ll refactor it later!”

“if I touch that code everything will break”

“ToDo/FixMe: this should be fixed before release”

“let’s finish the testing in the next release”

Page 21: Technical Debt (Dan Nicola, Florin Cardasim)
Page 22: Technical Debt (Dan Nicola, Florin Cardasim)
Page 23: Technical Debt (Dan Nicola, Florin Cardasim)
Page 24: Technical Debt (Dan Nicola, Florin Cardasim)
Page 25: Technical Debt (Dan Nicola, Florin Cardasim)
Page 26: Technical Debt (Dan Nicola, Florin Cardasim)
Page 27: Technical Debt (Dan Nicola, Florin Cardasim)
Page 28: Technical Debt (Dan Nicola, Florin Cardasim)
Page 29: Technical Debt (Dan Nicola, Florin Cardasim)
Page 30: Technical Debt (Dan Nicola, Florin Cardasim)
Page 31: Technical Debt (Dan Nicola, Florin Cardasim)
Page 32: Technical Debt (Dan Nicola, Florin Cardasim)
Page 33: Technical Debt (Dan Nicola, Florin Cardasim)
Page 34: Technical Debt (Dan Nicola, Florin Cardasim)
Page 35: Technical Debt (Dan Nicola, Florin Cardasim)
Page 36: Technical Debt (Dan Nicola, Florin Cardasim)

Cover it with tests and then modify it

Making it extensible and then extend it

Make it modular and then rewrite it

Page 37: Technical Debt (Dan Nicola, Florin Cardasim)
Page 38: Technical Debt (Dan Nicola, Florin Cardasim)
Page 39: Technical Debt (Dan Nicola, Florin Cardasim)
Page 40: Technical Debt (Dan Nicola, Florin Cardasim)
Page 41: Technical Debt (Dan Nicola, Florin Cardasim)
Page 42: Technical Debt (Dan Nicola, Florin Cardasim)
Page 43: Technical Debt (Dan Nicola, Florin Cardasim)

e.g. 10% of the available time

Page 44: Technical Debt (Dan Nicola, Florin Cardasim)

Some teams do a purely technical release to improve the codebase from time to time

This approach is only useful if a list with the really necessary refactoring already exists

Page 45: Technical Debt (Dan Nicola, Florin Cardasim)
Page 46: Technical Debt (Dan Nicola, Florin Cardasim)

Established best practice to define purely technical work packages

Technical change to be made

Why this technical change is important for the project

In which part of the code the technical change has to be performed

Page 47: Technical Debt (Dan Nicola, Florin Cardasim)
Page 48: Technical Debt (Dan Nicola, Florin Cardasim)

Debt repayment

Debt conversion

Just pay the interest

Page 49: Technical Debt (Dan Nicola, Florin Cardasim)

Technical Debt is unavoidable

Technical Debt is not always bad, no need to be (fully) repaid in

every case

We’ve got tools (Sonar, inCode, many others)

Technical Debt is often a cultural issue, not a technical one

Page 50: Technical Debt (Dan Nicola, Florin Cardasim)

Please fill in the evaluation forms