Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Agenda
• The Agile Alliance Technical Debt Initiative
• Introduction to the Technical Debt Concept
• The Dice of Debt Game
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
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/
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
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
A practical definition
• The feeling that, over time, writing or maintaining code is like running through mud
6
7
You now Future you
I’M GETTING TONS OF CODING DONE!
WHEEEEEE!
everything
about the code
is too hard
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
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
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
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)
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
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.
Questions?
Dice of Debt Game