pay now or pay more every day
play

"Pay Now or Pay More Every Day: Reduce Technical Debt Now - PDF document

AW2 Concurrent Session 11/7/2012 10:15 AM "Pay Now or Pay More Every Day: Reduce Technical Debt Now !" Presented by: Fadi Stephan Excella Consulting Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888 268


  1. AW2 Concurrent Session 11/7/2012 10:15 AM "Pay Now or Pay More Every Day: Reduce Technical Debt Now !" Presented by: Fadi Stephan Excella Consulting Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888 ‐ 268 ‐ 8770 ∙ 904 ‐ 278 ‐ 0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com

  2. Fadi Stephan Excella Consulting Fadi Stephan is an agile coach, trainer, and consultant with Washington DC-based Excella Consulting. Fadi has more than twelve years of professional experience as a product manager, project manager, software developer, and consultant in businesses ranging from start-ups to Fortune 500 companies. Since 2006, his focus has been on agile adoption and on transitioning, coaching, and mentoring organizations and teams in agile practices. Fadi is a certified Project Management Professional (PMP) and a Certified Scrum Professional (CSP), founder of the DC Software Craftsmanship user group, and organizer of the DC Scrum user group. .

  3. 9/17/2012 Managing Technical Debt Pay Now or Pay More Every Day – Reduce Technical Debt Now! Managing Technical Debt Fadi.Stephan@excella.com @FadiStephan AgileJourneyman.com/2012/05/managing-technical-debt.html 1

  4. 9/17/2012 About Fadi Stephan • 15+ years of experience in software development • Focused on Agile since 2006 • Consultant with Excella • Founder of the DC Software Craftsmanship User Group • Organizer of the DC Scrum User Group What’s Going On? 45 40 35 30 25 Velocity 20 15 10 5 0 1 2 3 4 5 6 7 8 9 10 11 12 2

  5. 9/17/2012 3

  6. 9/17/2012 4

  7. 9/17/2012 Rigidity 5

  8. 9/17/2012 6

  9. 9/17/2012 Immobility Viscosity 7

  10. 9/17/2012 Deadline Broken Window 8

  11. 9/17/2012 9

  12. 9/17/2012 Over Architecting Bad Design 10

  13. 9/17/2012 Poor Skills Technical Debt “Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite... The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt.” - Ward Cunningham 11

  14. 9/17/2012 Technical Debt Metaphor “Neglecting the design is like borrowing money” “Developing slower because of this debt is like paying interest on the loan” “Refactoring , it's like paying off the principal debt” “Every minute spent on not-quite-right code counts as interest on that debt” Quick and dirty design results in Principal Interest Technical Debt 12

  15. 9/17/2012 13

  16. 9/17/2012 Trading for Quality Design Stamina Hypothesis martinfowler.com/bliki/DesignStaminaHypothesis.html 14

  17. 9/17/2012 Which one will you choose? 1. Quick and Dirty 2. Clean Home or car loan 15

  18. 9/17/2012 Technical Debt Quadrant martinfowler.com/bliki/TechnicalDebtQuadrant.html Types of Debt • Unintentional • Intentional – Short term & focused – Short term & unfocused – Long term • Only short term focused debt & long term debt are “good” debt forums.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx 16

  19. 9/17/2012 17

  20. 9/17/2012 theagileexecutive.com/category/technical-debt 18

  21. 9/17/2012 Technical Debt Management Plan Register the Debt 19

  22. 9/17/2012 Estimate: 3 Date: 2/10/2012 As I prudent developer, I am deliberately taking on technical debt by … … so that… Impact: M Estimate: 8 As I prudent developer, I want to refactor …. … … so that I can repay the technical debt 20

  23. 9/17/2012 Technical Debt Backlog Story Dirty Clean On Date Estimate Estimate Going Impact … 3 8 H 2/5/2012 … 1 5 M 2/10/2012 … 3 13 L 2/11/2012 Evaluate Code Base Complexity Code Coverage Duplication Rule Violations Design 21

  24. 9/17/2012 Monetize the Debt Technical Debt = #items * #hours/item * $/hr 22

  25. 9/17/2012 Technical Debt Plugin Debt(in man days) = cost_to_fix_duplications + cost_to_fix_violations + cost_to_comment_public_API + cost_to_fix_uncovered_complexity + cost_to_bring_complexity_below_threshold + cost_to_cut_cycles_at_package_level SQALE Changeability Maintainability Security Reliability Testability Efficiency Portability 23

  26. 9/17/2012 sqale.org/wp-content/uploads/2012/04/SQALE-3RD-WS-on-MTD.pdf 24

  27. 9/17/2012 Sample Remediation Functions Requirement Remediation Details Remediation Function No commented out Remove 1 min/occurrence blocks At least 70% code Write tests 20 min/per coverage uncovered line Code overrides both Write code and tests 1 hr/occurrence equals and hashcode sqale.org/wp-content/uploads/2012/04/SQALE-3RD-WS-on-MTD.pdf SQALE Pyramid sqale.org/wp-content/uploads/2012/04/SQALE-3RD-WS-on-MTD.pdf 25

  28. 9/17/2012 History Cost = 2,000,000 Profit=10,000,000 Debt =3,000,000 ROI = (10M – 2M)/ 2M = 400% theagileexecutive.com/category/technical-debt / 26

  29. 9/17/2012 theagileexecutive.com/tag/the-agile-triangle/ 10,000,000 3,000,000 2,000,000 ROI = (10M – (2M + 3M))/ 5M = 100% theagileexecutive.com/tag/the-agile-triangle/ 27

  30. 9/17/2012 How much debt is too much debt? Metaphor • Think of 3 more examples of ways to use the technical debt metaphor – Analogy 1: – Analogy 2: – Analogy 3: • Do you think the technical debt metaphor works well? • If not, why? 28

  31. 9/17/2012 Paying Down The Debt Pay debt with high interest rate 1 st 29

  32. 9/17/2012 Approach • Have a technical debt reduction sprint immediately after a release • Have a technical debt reduction sprint once we reach a certain limit • Rotate dedicated members to work on reducing technical debt • Dedicate 10% of each sprint to reducing technical debt • Reduce technical debt by story 30

  33. 9/17/2012 Summary Managing technical debt requires that we make prudent and deliberate decision on design & quality Summary Provide transparency by 1. Registering any new debt 2. Assessing existing debt 31

  34. 9/17/2012 Summary Inspect by 1. Monetizing the debt 2. Establishing a debt limit 3. Monitor trends Summary Adapt by 1. Paying down the debt focusing on high interest rate 1 st. 2. Starting with what you know. Train for the rest 3. Continuously monitor the debt 32

  35. 9/17/2012 AgileJourneyman.com @FadiStephan Acknowledgement Robert Martin Steve McConnell Martin Fowler Israel Gat 33

  36. 9/17/2012 References • Design Principles and Design Patterns - Robert Martin • Design Stamina Hypothesis - martinfowler.com/bliki/DesignStaminaHypothesis.html • Technical Debt Quadrant - martinfowler.com/bliki/TechnicalDebtQuadrant.html • The Agile Triangle – theagileexecutive.com/tag/the-agile-triangle/ • Technical Debt Assessment and Reduction – theagileexecutive.com/category/technical-debt / • Technical Debt, Cutter IT Journal October 2010 - www.cutter.com References • Technical Debt A Perspective for Manager – www.infoq.com/articles/technical-debt-levison • Managing Technical Debt - blogs.versionone.com/agile_management/2011/07/11/managing-technical-debt/ • What Testers Can Do About Technical Debt - www.stickyminds.com/sitewide.asp?ObjectId=3629 • Climb Out of Technical Debt – www.ayeconference.com/climboutoftechnicaldebt/ • Don't Live with Broken Windows – www.artima.com/intv/fixit.html 34

  37. 9/17/2012 References • Technical Debt - forums.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt- 2.aspx • Sonar – http://www.sonarsource.org/evaluate-your-technical-debt-with-sonar/ • Pay Down your Technical Debt – www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html • SQALE Method For Evaluating Technical Debt – http://www.sqale.org/wp-content/uploads/2012/04/SQALE-3RD-WS-on-MTD.pdf Pictures • http://www.flickr.com/photos/49531720@N00/247730111/ • http://www.flickr.com/photos/89306448@N00/2247180420/ • http://www.flickr.com/photos/71962092@N00/2874328851 • http://www.flickr.com/photos/16857236@N03/2429136239 • http://www.flickr.com/photos/tpapi/2765541278/ • http://www.flickr.com/photos/97041449@N00/5261698908/ • http://www.flickr.com/photos/7389424@N05/2351559480/ • http://www.flickr.com/photos/24293932@N00/1144691293/ • http://www.flickr.com/photos/17454738@N00/2245445147/ 35

  38. 9/17/2012 Pictures • http://www.flickr.com/photos/25196025@N00/381877979/ • http://www.flickr.com/photos/25507200@N07/3120849218/ • http://www.flickr.com/photos/39516732@N08/4666623572/ • http://www.flickr.com/photos/64211362@N02/6338814898/ • http://www.flickr.com/photos/66622362@N00/3353570653/ • http://www.flickr.com/photos/23327787@N08/3027534098/ • http://www.flickr.com/photos/37815348@N00/5398908333/ • http://www.flickr.com/photos/51035555243@N01/155589939/ 36

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend