Presentation is loading. Please wait.

Presentation is loading. Please wait.

Michael Hall Three Beacons 214.783.3936 Managing Technical Debt Using Agile.

Similar presentations

Presentation on theme: "Michael Hall Three Beacons 214.783.3936 Managing Technical Debt Using Agile."— Presentation transcript:

1 Michael Hall Three Beacons 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.”

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

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)

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

6 Technical Debt 6 T or F: all technical debt is bad and should be avoided at all costs. © Three Beacons LLC, 2011

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

8 Types of Technical Debt 8 © Three Beacons LLC, 2011

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.” *

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”.

11 Cost of Technical Debt © Three Beacons LLC, 2011 11

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, Programming and Human © Three Beacons LLC, 2011 CASE STUDY

13 Person Team Business Technical Debt – impacts 13 © Three Beacons LLC, 2011 1990 - 2000 2000 - 2010 CASE STUDY

14 Techniques for PREVENTING Technical Debt © Three Beacons LLC, 2011 14

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” *

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

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

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

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

20 Techniques for Managing NEW Technical Debt © Three Beacons LLC, 2011 20

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!

22 Debt Backlog - example 22 © Three Beacons LLC, 2011

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.

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

25 Makeup Stories - example 25 © Three Beacons LLC, 2011

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

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!

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

29 Techniques for Managing LEGACY Technical Debt © Three Beacons LLC, 2011 29

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”

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

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

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

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

35 Conclusion © Three Beacons LLC, 2011 35

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.

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

38 Good References 38 © Three Beacons LLC, 2011

39 Questions? Hemant Elhence, 469.322.0349 Agile Software Product Development Partner 39 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, 214.783.3936 © 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 © Three Beacons LLC, 2011

41 Confidential Synerzip Clients © Three Beacons LLC, 2011

42 Thank You! Michael Hall 214.783.3936 Hemant Elhence 469.322.0349 Agile Software Product Development Partner Call Us for a Free Consultation! 42 © Three Beacons LLC, 2011

Download ppt "Michael Hall Three Beacons 214.783.3936 Managing Technical Debt Using Agile."

Similar presentations

Ads by Google