Click here to load reader

Dont laugh it's paid for

  • View
    2.482

  • Download
    0

Embed Size (px)

DESCRIPTION

Technical debt is something often mentioned on the software development floor - but what is it? and what is it not? how can we capture it to reduce it?

Text of Dont laugh it's paid for

  • 1. What is technical debt?
  • 2. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 2
  • 3. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 3
  • 4. Shipping first time code is like going into debt.A little debt speeds development, so long as it ispaid back promptly with a rewrite. The dangeroccurs when the debt is not repaid. Everyminute spent on not-quite-right code countsas interest on that debt Ward Cunningham, 19927th April 2011 Dont Laugh Its Paid For - Mike Burns 4
  • 5. 1 Cost of change0.90.80.70.60.50.40.30.20.1 0 Time Loan7th April 2011 Dont Laugh Its Paid For - Mike Burns 5
  • 6. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 6
  • 7. Deliberate Quality softwarehave the leastmust ship of time We dont takes We amount now and deal to develop. If for have code that is simple as time you with design possible, tests that are complete and a design consequences that fits just right, additions and changes happen in the fastest possible way because the Reckless Prudent impact is lowest. Consequently, if you hack something out, the more you hack the slower you go because the cost of Now we knowchange Whats addition or layering? how we should grows with each line of done it have code.7th April 2011 Inadvertent 7
  • 8. Deliberate A bug by itself is not technical ship We must debt. We dont have now and deal time for is more likely poor It with design testing, requirements, design, coding, etc; consequences Something within the development lifecycle, something that we could probably have Reckless Prudent fixed before it became a bug. If bugs continue to appear within the same area, function, feature, this may be a sign of technical debt.7th April 2011 Inadvertent 8
  • 9. Dont we have docs on the file layouts? I thought we had a test for that? If I change X, its going to break Y. I think. Dont touch that code. Last time we did, we spent a week fixing it. We just lost the drive. Where are our backups? Wheres the email about that bug? Just put in a comment with XXX. Well see it later. Just put in a comment with TODO. Well see it later. Just put in a TODO. Right about the XXXs.7th April 2011 Dont Laugh Its Paid For - Mike Burns 9
  • 10. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 11
  • 11. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 12
  • 12. I dont know what happened! I justchanged one line!Its too late in the life cycle toupgrade to the new release of the We cant upgrade.compiler. Well do it next time It will break code.around. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 13
  • 13. Developers? who is building what, when, and why Testers? Project Managers? add business functionality in deliberate, prioritized ways Upper Management? Everyone in the organization7th April 2011 Dont Laugh Its Paid For - Mike Burns 14
  • 14. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 15
  • 15. Documentation Writing tests Attending to TODO comments Tackling compiler warnings Static code analysis warnings Technical Debt wiki can capture: Knowledge that isnt shared around the organization Code that is too confusing to be modified easily Prudent, deliberate design decisions that incur technical debt Potential messes (or messes that we know already exist!) 7th April 2011 Dont Laugh Its Paid For - Mike Burns 16
  • 16. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 17
  • 17. Even the best teams will have debt to deal with as a project goes on - even more reason not to recklessly overload it with crummy code.7th April 2011 Dont Laugh Its Paid For - Mike Burns 18
  • 18. 7th April 2011 Dont Laugh Its Paid For - Mike Burns 19