15
Agenda The Agile Alliance Technical Debt Initiative Introduction to the Technical Debt Concept The Dice of Debt Game

The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

Agenda

• The Agile Alliance Technical Debt Initiative

• Introduction to the Technical Debt Concept

• The Dice of Debt Game

Page 2: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

The Agile Alliance initiative

• The Agile Alliance• Founded by the signatories of the Manifesto• Over 23,000 members• New website that draws more than 50,000 users per month• The Agile Conference: 2,500 attendees• Becoming more global (Agile Europe in Poland last Week)

• A volunteer project supported by the Agile Alliance• Started in July 2015• Six team members: Declan Whelan, Jean-Pierre Fayolle,

Tom Grant, Dan Sturtevant, Thierry Coq, Jean-Louis Letouzey

Page 3: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

The Agile Alliance initiative: Current outputs

• White Paper and Video• Introduction to the technical debt concept

• A2DAM (Agile Alliance Debt Analysis Model)• Assess the sources and burden of technical debt

• Project Management Guide• Take steps proven to be effective

• Dice Of Debt game• Educate people about the importance of dealing with technical debt

3

https://www.agilealliance.org/resources/initiatives/technical-debt/

Page 4: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

A2DAM

• A ground level of source code good practices

• All practices are • Implementable within automated analyzers

• Reviewed by experts from 10 tool companies

• Characterized with impact level, remediation model…

A2DAM

Page 5: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

A textbook definition

• What is technical debt?• The increased difficulty in writing new code, or maintaining code,

that is the natural result of…• Shortcuts

• Bad coding practices

• Hacks

• Other times when you wish, in hindsight, you had coded more carefully

5

Page 6: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

A practical definition

• The feeling that, over time, writing or maintaining code is like running through mud

6

Page 7: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

7

You now Future you

I’M GETTING TONS OF CODING DONE!

WHEEEEEE!

everything

about the code

is too hard

Page 8: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

How do you create it?

• Very easily, and here are a few common examples• “I didn’t have the time to write a simpler class…”• “No time to re-think the design of the class,

just keep adding new stuff to it!”• No time to think about how

someone else will fix or extend the code

• No code review leads to culture of sloppiness

• Didn’t think of the impact of generic error handling

• Many other sources

9

Page 9: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

You will always face some Technical Debt

• Some amount is to be expected• EX: Unintentional TD

• The amount of TD will never be zero• But it has to be manageable

• There can be situations in which you want to take on TD• EX: Architectural experiment, don’t want to take

the time to “do it right” if it doesn’t work out

• …As long as you clean it up• Of course, the problem is, people usually don’t

10

Page 10: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

80%

69%

20KLOC

per

year

8KLOC

per

year

Percent time

on features

Developer

productivityWell written code

Code with excessive technical debt

Time wasted

debugging

20%

Percent time

on features

Developer

productivity

Time wasted

debugging

31%

Developers

understand

the code

Development team

confused and

frustrated

Page 11: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

Address the individual sources: the code

12

Name Good practice Affects Rationale Remediation

Tested-CCOVA file has an acceptable level of code coverage.

ReliabilityUnit tests verify that the code performs as expected without errors.

Write tests in order to cover uncovered lines. Test variable values.

Clear-INVLA "for" loop iterator is not modified in the body of the loop.

ReliabilityModifying the loop iterator inside the loop may lead to unreliable behavior. Code is also more difficult to understand.

Restructure the code.

Clear-DESTAll "if"/"for"/"while" structures are delimited by curly braces.

ChangeabilityUsing curly braces for control structures helps to better understand the code.

Enclose the core of the structure with curly braces.

Clear-CLDOPublic classes and public methods are documented.

MaintainabilityCode is easier to understand

Identify public classes and public methods without documentation.Write additional meaningful comments.

Assess your TD with the Agile Alliance Debt Analysis Model (A2DAM)

Page 12: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

Address the individual sources: the team

• Many project management-level measures, such as…• Follow the Boy Scout Rule

• Make code review part of the done criteria

• Dedicate some percentage of each sprint to TD reduction and prevention

• Do static code analysis at some interval

• Dedicate slack to refactoring

• …

13

Get advice from Project Management and Technical Debt document from the TD AA initiative

Page 13: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

The conclusion should be obvious

14

Short-term

investment in

technical debt

reduction and

prevention allows

for increased

productivity in the

future

Technical debt

just keeps

accumulating.

Our productivity

plummets.

Page 14: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

Questions?

Page 15: The Agile Alliance Technical Debt Initiative …files.meetup.com/1842621/AA TD Initiative-Madrid meetup...The Agile Alliance initiative: Current outputs •White Paper and Video •Introduction

Dice of Debt Game