Features often get delivered quickly on new software projects and slow to an exponentially slower pace over time. Teams are usually on their own to discover, implement, and even get buy-in for improving the technical capability to deliver. In this session we'll discuss how technical debt accrues and impacts the flow of features over time as well as how Product Owners can encourage and support teams to improve. We will run a simulation of a software project that demonstrates the impact of employing technical practices and addressing other technical debt.
We’re used to seeing and investing in Features and Bugs, but there are other investments needed too.http://pkruchten.wordpress.com/
Sometimes due to process, etc. but very often due to technical issues. We have a way of describing this called Technical Debt, which is based on a financial metaphor.Simpler or delayed design and implementation choices are like borrowing money. (I like "writing code" better than "skipping design" here -- JimLittle)Refactoring, implementing practices, or otherwise “doing it right” is like repaying principalSlower development due to complexity is like paying interest[a later addition] When the whole project caves in under the mess, is that like when the big guys come round and slam your hands in the car door for not paying up?
Photo by Jessica Spenglerhttp://www.flickr.com/photos/wordridden/6357610039/
http://eightvo.files.wordpress.com/2011/11/koelewijnwerk02.jpgContinuous Integration:DefinitionWithout it:Team finds issues late, rushes to fix, prone to cut cornersRisk of some work getting stale and needing to be abandonedAttribution: http://www.archersafetysigns.co.uk/prod.php?prod=7402
http://www.flickr.com/photos/jurvetson/6219463656/sizes/o/in/photolist-atAnS1-dhZrKM-atHJJo-9mvMsP-bs52Uo-bvcbis-bEWnc2-chEjh3-asg29e-biGH9K-7NJQbS-7NESvF-awbMMT-9ANyUd-9mqRC4-aXuibg-9M2QU4-7zxwmK-bdbY5i-dPuGGx/Photo by Steve JurvetsonThe photo is a Tesla – it’s not slow ;-)Automated TestingDefinitionWithout it:Defects found late, potentially not during the development processTeam less confident in making changes that introduce unintended behaviorMay push back or sandbag unnecessarilyRequires more manual testing effort to changeHigher level of bugs, reworkImplementation less testable, and often poorly designedAttribution: http://commons.wikimedia.org/wiki/File:Advanced_Automation_for_Space_Missions_figure_5-29.gif
http://www.flickr.com/photos/jollyuk/4143795151
Photo by Alex Hunghttp://www.flickr.com/photos/40077210@N00/3667199868
Phase 1: Lower cost for new featuresPhase 2: Accumlating Debt
Features backlogTech debt has accrued and the technical team has identified it and estimated the work and estimated the business impact
DebriefWhat did you learn?Technical Debt GrowsShare results (explain interesting ones)
Debrief- What did you learn
Stop digging the holeDon’t add new problemsDon’t make existing problems worseBoy Scout RuleLeave it cleaner than you found itIncremental improvementPhotoby AbhisekSardahttp://www.flickr.com/photos/reallynuts/4385681932/sizes/o/in/photolist-7FxLrJ-aL2Ngz-aN2VCP-7HYeMi-cpF5YC-7HYjKK-9k5K4T-cEcaKU-cEciJu-cEc9E3-cEc8Bf-cEceiG-cEcdbA-cEcfwm-cEcgDN-7yFDdK-ctkvPm-8vEXcj-8vBWhi-e6co5M-87q3Uk-86XQkY-ancyYm-7JDYGF-8itvxq-7H6R6f-8itvBU-7H6QTw-7H6QZj-7An2T3-7Fpg6m-8nkuqi/
Visualize your debt, make it explicitPhoto by Oliver Hammondhttp://www.flickr.com/photos/olivander/58499153/
Photo by Kristi Johnsonhttp://www.flickr.com/photos/46142663@N03/4451325321