Download presentation
Presentation is loading. Please wait.
Published byNicholas Roach Modified over 9 years ago
1
Michael Hall Three Beacons mike@threebeacons.com 214.783.3936 Managing Technical Debt Using Agile
2
Premise 2 © Three Beacons LLC, 2011 “All known compound objects decay and become more complex with the passage of time. Software is no exception.” www.synerzip.com
3
What is Technical Debt? 3 © Three Beacons LLC, 2011 “Technical Debt” term coined by Ward Cunningham in 1992 Also called “design debt” Choosing a design or construction approach that is expedient But increases complexity and is costlier in the long term www.synerzip.com
4
The Debt Metaphor 4 © Three Beacons LLC, 2011 Use a credit card to obtain something now Pay for it later - financial debt Plus interest (short term) (future payment due) (the cost of being able to do this) www.synerzip.com
5
Technical Debt 5 The consequences of: slapdash architecture poor design hasty coding (versus rapid) lack of quality focus others? The danger occurs when the debt is not repaid quickly. Every minute spent on not-quite-right code results in interest on that debt.interest © Three Beacons LLC, 2011 www.synerzip.com
6
Technical Debt 6 T or F: all technical debt is bad and should be avoided at all costs. © Three Beacons LLC, 2011 www.synerzip.com
7
Types of Technical Debt 7 © Three Beacons LLC, 2011 An outline to use when discussing technical debt 1.Unintentional 2.Intentional A.Short-term B.Long-term www.synerzip.com
8
Types of Technical Debt 8 © Three Beacons LLC, 2011 www.synerzip.com
9
Technical debt quadrant 9 © Three Beacons LLC, 2011 INTENTIONAL UNINTENTIONAL RECKLESS PRUDENT “We don’t have time to mess with coding standards.” “There is a standard way of doing this?” “We will ship on time and revise the quick fix as our top priority in the next release.” “We now know what to avoid.” * www.synerzip.com
10
Technical debt quadrant 10 © Three Beacons LLC, 2011 * Short-term: Only if the commitment is there to schedule, prioritize, and fix soon (e.g. in the next sprint). Long-term: Only if the commitment is there to sponsor projects to resolve the debt. If you must take on technical debt for valid reasons, then “respect the asterisk”. www.synerzip.com
11
Cost of Technical Debt © Three Beacons LLC, 2011 11 www.synerzip.com
12
Technical Debt - impact 12 “The all too common problem is that development organizations let their debt get out of control and spend most of their future development effort paying crippling interest payments.” - Jeff Atwood, www.codinghorror.com Programming and Human Factorswww.codinghorror.com © Three Beacons LLC, 2011 CASE STUDY www.synerzip.com
13
Person Team Business Technical Debt – impacts 13 © Three Beacons LLC, 2011 1990 - 2000 2000 - 2010 CASE STUDY www.synerzip.com
14
Techniques for PREVENTING Technical Debt © Three Beacons LLC, 2011 14 www.synerzip.com
15
1. Draw the Line 15 © Three Beacons LLC, 2011 Culture shift: From this day forward … We no longer allow technical debt! Only exception: tactical or strategic business justification Even then, we “respect the asterisk” * www.synerzip.com
16
2. Strong “Definition of Done” Things to consider: Coding standards adherence Code reviews Static analysis Dynamic purification Complexity analysis Written unit tests 0 known bugs 100% test cases pass Test cases automated Etc. Visible for User Story Sprint Release © Three Beacons LLC, 2011 16 www.synerzip.com
17
3. Test-Driven Development TDD: write test, fail the test, then write code to pass the test. Refactor when needed. Develop higher quality streamlined code! © Three Beacons LLC, 2011 17 www.synerzip.com
18
4. Collaborative Designs Whiteboard sessions on design topics Leverage collective experience of the team Wisdom of the crowd User Design Studio Less reliance on subject-matter experts Etc. Increase the chance of an optimal design! © Three Beacons LLC, 2011 18 www.synerzip.com
19
Recap Draw the line! Strong definition of done TDD Collaborative designs © Three Beacons LLC, 2011 19 Use these agile techniques to help prevent technical debt www.synerzip.com
20
Techniques for Managing NEW Technical Debt © Three Beacons LLC, 2011 20 www.synerzip.com
21
1. Debt Backlog 21 © Three Beacons LLC, 2011 Used when technical debt is business justified Tracks debt by name Lists work tasks associated with each debt Includes an estimate Tracks the commitment to fix schedule Form: product backlog entries, separate Excel spreadsheet, special designation in defect DB, tool entry, sticky notes, etc. Helps to keep the debt service level visible! Track the debt as you go! www.synerzip.com
22
Debt Backlog - example 22 © Three Beacons LLC, 2011 www.synerzip.com
23
2. Automatic Payment Plan 23 © Three Beacons LLC, 2011 Pay as you go Slow team’s velocity down to service the debt as it is incurred Include technical debt items in upcoming sprints As quickly as feasible In line with fulfilling commitment made when debt was justified Service the debt as you go! Keep it as close to $0 as possible. www.synerzip.com
24
3. Makeup Stories 24 “Makeup”: a story that apologizes to the code base And promises to fix it! Placeholder indicating non-user story work For when you incur technical debt For any reason you circumvented quality Use a different color card (red or pink is good) Add it to the product backlog Prioritize into next sprint (if possible) Good way to track technical debt. © Three Beacons LLC, 2011 www.synerzip.com
25
Makeup Stories - example 25 © Three Beacons LLC, 2011 www.synerzip.com
26
4. Adopt a Debt! 26 User Story Makeup Story © Three Beacons LLC, 2011 Good way to insure that makeup stories get worked. “Adopt” approach If a user story leverages the debt area, “adopt” the debt card as part of the user story effort Add the makeup story estimate into the user story www.synerzip.com
27
5. Dedicated Sprint to Service Debt 27 © Three Beacons LLC, 2011 Similar to a “bugfix sprint” Do this only if really needed Preponderance of business debt occurring during project Team concerned about debt growth Upcoming features rely on code that has debt Or, combine for a bugfix/debt sprint Periodically pay down your debt throughout the project! www.synerzip.com
28
Recap Debt backlog Service the debt commitment Makeup stories Adoption Dedicated debt sprint © Three Beacons LLC, 2011 28 Use these agile techniques to manage new technical debt www.synerzip.com
29
Techniques for Managing LEGACY Technical Debt © Three Beacons LLC, 2011 29 www.synerzip.com
30
1. Re-Do Project 30 © Three Beacons LLC, 2011 Business decides on a total re-design and re-write Happens rarely, hard to justify Hard for execs to see the value Often timed with new technology introduction How to insure that the new system is really better? Rigorous quality plan Strong Definition of Done Iterative development Feedback loops Inspect & adapt Watchful eyes Not an answer: “better people” www.synerzip.com
31
2. “Small Chunks” Approach Smaller chunks of effort In conjunction with normal dev flow Can work well across an API abstraction Often requires an architectural assessment Can require code changes to other parts of legacy base (risky) Happens more often than Re-Do projects Must insure end result is worth the effort! © Three Beacons LLC, 2011 31 www.synerzip.com
32
3. 70/30 Rule 32 70% - new user stories 30% - paying down the debt of a legacy system Rule can also be used to manage new technical debt Helps to have a PO with history of the legacy system Socialize that legacy improvements are part of this project! Ask for commitment Ask to be held accountable Do your part Ask others to continue the tradition 70 30 © Three Beacons LLC, 2011 www.synerzip.com
33
4. “While There” Rule While adding a new feature Any legacy function modified for the feature must be rewritten according to quality plan Variable names Coding guidelines Braces alignment Etc. Works well for support team also (while fixing bugs) CAUTION: may introduce bugs Final thought on case study: We improved almost 50% of the 4M LOC Significant drop in critical defects reported from customers But, we introduced at least 10 new bugs on existing functionality Each time – required additional justification to continue the effort © Three Beacons LLC, 2011 33 www.synerzip.com
34
Recap Re-Do project Small chunks approach 70/30 rule “While there” rule © Three Beacons LLC, 2011 34 Use these agile techniques to manage legacy technical debt www.synerzip.com
35
Conclusion © Three Beacons LLC, 2011 35 www.synerzip.com
36
36 © Three Beacons LLC, 2011 “Developers know their code has technical debt, but they feel powerless to stop adding to it.” – David Rooney, “Technical Debt: Challenging the Metaphor” A Sobering Thought There is hope – using Agile. www.synerzip.com
37
37 © Three Beacons LLC, 2011 “Take my advice: go well, not fast. Care about your code. Take the time to do things right. In software, slow and steady wins the race; and speed kills. – Robert C. Martin (Uncle Bob), president of Object Mentor and agile methods author Managing Technical Debt - conclusion www.synerzip.com
38
Good References 38 © Three Beacons LLC, 2011 www.synerzip.com
39
Questions? www.synerzip.com Hemant Elhence, hemant@synerzip.com 469.322.0349 Agile Software Product Development Partner 39 www.threebeacons.com Short/Long term Agile coaching Facilitated improvement Agile Methods training: Scrum Team Training Agile / Scrum User Stories – Requirements w/ Agility Product Owner Role ScrumMaster Role Etc. All courses can be delivered onsite at your location Michael Hall, mike@threebeacons.com 214.783.3936 www.synerzip.com © Three Beacons LLC, 2011
40
Confidential Synerzip in a Nut-shell 1. Software product development partner for small/mid- sized technology companies Exclusive focus on small/mid-sized technology companies, typically venture-backed companies in growth phase By definition, all Synerzip work is the IP of its respective clients Deep experience in full SDLC – design, dev, QA/testing, deployment 2. Dedicated team of high caliber software professionals for each client Seamlessly extends client’s local team, offering full transparency Stable teams with very low turn-over NOT just “staff augmentation”, but provide full mgmt support 3. Actually reduces risk of development/delivery Experienced team - uses appropriate level of engineering discipline Practices Agile development – responsive, yet disciplined 4. Reduces cost – dual-shore team, 50% cost advantage 5. Offers long term flexibility – allows (facilitates) taking offshore team captive – aka “BOT” option www.synerzip.com © Three Beacons LLC, 2011
41
Confidential Synerzip Clients www.synerzip.com © Three Beacons LLC, 2011
42
Thank You! www.threebeacons.com Michael Hall mike@threebeacons.com 214.783.3936 www.synerzip.com Hemant Elhence hemant@synerzip.com 469.322.0349 Agile Software Product Development Partner Call Us for a Free Consultation! 42 www.synerzip.com © Three Beacons LLC, 2011
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.