As you come in, find someone in
the room and discuss what you
know about Technical Debt
HOW TO KEEP YOUR
PRODUCT DEVELOPMENT
TEAMS GOING FAST
Product Camp Austin 11
We’d prefer a fast, steady stream
of new features…
But sometimes it feels more like
this
Long Delivery Times
Mounting Defects
Rising Development Costs
Poor Customer Responsiveness
Late Deliveries
Frustrated and Poor Performing
Teams
Intentional Debt
Temporary
Code
Business Pressure
Delayed
Testing
Other
Conscious
Tradeoffs
Unintentional Debt
Poor Code
or Design
Business Pressure
Poor Practices
Inflexible
Software
Lack of understanding
Poor
design/architecture
Unintended
Complexity
Poor design
A Vicious Cycle
Time
Pressure
Poorly
Implemented
Features
Late Delivery
Continuous Integration
Test (and other) Automation
Refactoring - would you trust
delivery of your products over this
road?
Peer Review
http://jimhighsmith.com/the-financial-implications-of-technical-debt/
Jim Highsmith’s Technical Debt Graph
Rewrite!
Let’s do an exercise to understand
the concept further.
Form into Teams of at least 4
people.
Feature
Cost: 15
Feature
Cost: 10
Feature
Cost: 5
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
Setup your board as follows
Feature
Cost: 15
Feature
Cost: 10
Feature
Cost: 5
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
Add up the total impact of all
technical debt items
-35
0"
10"
20"
30"
40"
50"
60"
70"
Itera/ on"1" Itera/ on"2" Itera/ on"3" Itera/ on"4" Itera/ on"5"
Theori/ cal"Capacity" Technical"Debt"Impact"
-35
25
X
0"
10"
20"
30"
40"
50"
60"
70"
Itera/ on"1" Itera/ on"2" Itera/ on"3" Itera/ on"4" Itera/ on"5"
Theori/ cal"Capacity" Technical"Debt"Impact"
Feature
Cost: 10
Feature
Cost: 15
Feature
Cost: 10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 15
Impact -10
Technical Debt
Cost 10
Impact -5
Technical Debt
Cost 5
Impact -5
Technical Debt
Cost 5
Impact -5
Iteration Card
You have 25 Points to Spend
Select the cards you want to spend your points on.
No partially done work.
Feature
Cost: 5
Feature
Cost: 5
0"
10"
20"
30"
40"
50"
60"
70"
Itera/ on"1" Itera/ on"2" Itera/ on"3" Itera/ on"4" Itera/ on"5"
Theori/ cal"Capacity" Technical"Debt"Impact"
-35
25
10
15
15
X
The goal is to complete as many
feature points at the end of 5
iterations.
Go!
The goal is to complete as many
feature points at the end of 5
iterations.
Stop!
Theoretical Capacity
Technical Debt
Productivity
Time
In order to go fast we need a
focus on Craftsmanship
Capture your debt
Visualize and estimate
Need to invest time, team needs
slack
Agile processes promote sustainable
development. The
sponsors, developers, and users should
be able to maintain a constant pace
indefinitely.
Discuss how you could apply
theses concepts to help your teams
go fast.
How to Keep Going Fast - Agile Velocity - Product Camp Austin

How to Keep Going Fast - Agile Velocity - Product Camp Austin

Editor's Notes

  • #6 Attribution: http://www.flickr.com/photos/usfwshq/8426146245/in/photolist-dQAcHx-f8wNoo-cSUakj-f8wNhN-cD8Fhm-cyRqpf-bjfV3x-7HHtaY-aRr156-8aupg4-7LK1as-7LRCsG-abNnzs-951W8W-7LRB1J-cZaxJj-8juseK-cpe6EJ-aCy8xe-du4Qh6-bDSxTn-9tsUQP-azwePa-a1oo6r-dCoxvW-c1KAqW-8h18Ri-bxVC3z-ePXdaS-7Xr9rh-cNWatS-ds9QJu-ds9FpF-ds9R55-ds9Qq3-ds9RHj-ds9GSV-a98QGU-bdEkpe-aeyxri-eZ6vag-7UAhNN-8RjCKM-bmXXkL-cmPWC7-c5eSqQ-7GPcZu-7LMFkF-cMLTYo-8ejG7H-cmPWQq/lightbox/
  • #7 SymptomsImage attributions:http://www.flickr.com/photos/14511253@N04/4411497087/in/photolist-7HQ5oB-9qa4rb-7CHWy4-9q6Whp-8QjLj7-b7LaSn-9PUHMi-9oQ3qw-8iu4HN-9qxd3u-auQz9Z-a7Fctt-7ziiDq-9itKnt-dGN5VZ-8VV7NP-bBu2vW-bgDwNk-b4KooT-b4Kor8-b4Kota-b4KnT4-9qc58h-9q9okR-9q6gKK-9q7GDX-9q9uFw-7REcDB-amVpjf-aU2khT-bx9EXX-bjWDaT-9VryJk-7XZRgj-7XZQmu-7XWzb8-7PqVf7-avb9xS-avhS6v-9iL2JU-8kErPW-8wqZJZ-9q4aZp-9qgydX-9CbvHx-bkeVkw-aDb1kG-9bQLa4-9qfftM-7FK373-bB2cMehttp://www.flickr.com/photos/98193606@N00/3466024918/in/photolist-6hhhsj-6hHv9z-6hJQ94-6kPYqY-6mCk9G-6zKJLm-6zXfNr-6FUTot-6Qk2Sx-6TkkWU-6VyFqc-6X65A7-6YdYmY-6YyCNJ-7enMRy-7kD9oV-7w9FHt-9zYUbN-7HQ5oB-7QWatV-bPLUhn-bvH8Dv-7WepXX-eETBiA-9zrNro-8hvJXJ-9y23Bn-7NGfDb-9BhUgv-9SUSTr-ccfa4q-ccfcoy-ccfaDG-bUSTZH-bUSXFx-bUSVMc-ccfcFN-bUSUFV-bUSWkR-ccfcvC-ccfaiS-ccfaJh-bUSUKZ-bUSWbt-ccfb7Y-bUSWuv-ccf9R5-ccfd8Y-bUSV9p-ccf8ru-ccf9BAhttp://www.flickr.com/photos/43088195@N03/4536619509/in/photolist-7UTmVK-8a9Ani-dsT1wn-7Tg2ay-e6QgRx-e6VUVU-e6QgV6-e6VUTs-e6VUYC-e6Qh78-dEPDR7-dEJgeB-8a9ATi-e5piNA-bSPPHi-cLQR4Y-7H1ohN-9cs4T6-8mazGL-8xD2HP-8mazfW-bDcUqf-bWJ7TK-9qPqp4-dgjFYo-e9LFvq-bUCP3e-8rYusH-effxjm-bos1RP-8pr8hQ-a43cdw-8zGsCp-bJBaf6-81kp1V-9PoYnz-bXcg7w-efty5g-ef9Jmx-8CFmHB-98nU74-dTPBLJ-ef9NEe-a9chF3-91Pp6J-drhmrN-dr6e6D-c3FT4W-83wM3S-dp1PwW-atS3cshttp://www.flickr.com/photos/49503102897@N01/54389823/in/photolist-5NLcz-675rs-8zm7x-cJ3W6-n2cdj-p3S1H-r8fLX-rafFi-tpGed-tWtcr-yxxin-BHaEq-Cqe2K-Et2EX-J2cVe-ZYxen-2as17k-2cNeb2-2M4o2x-397sho-3eu4QL-3ftfgM-3nrv1i-3nR78L-3UbB1x-4kHKK1-4oDUyJ-4p3Eoa-4pDQzB-4A1f2M-4BidvL-4Ckoht-4LcGYe-4ThTPe-4XsfGQ-5nnZJL-5vAYu2-5xxLb9-5zbvKS-5B9ixa-5CiuF3-5G4WGv-5PXSRw-5RDD3C-5RE3QD-5RSP6E-5TaFQ8-5XCkjK-5YscQw-5YMBcR-61vEoa
  • #8 We’re used to seeing and investing in Features and Bugs, but there are other investments needed too.http://pkruchten.wordpress.com/
  • #9 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?
  • #11 Photo:http://commons.wikimedia.org/wiki/File:Duct-tape.jpg
  • #12 Photo by Jessica Spenglerhttp://www.flickr.com/photos/wordridden/6357610039/
  • #14 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
  • #15 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
  • #16 http://www.flickr.com/photos/jollyuk/4143795151
  • #17 Photo by Alex Hunghttp://www.flickr.com/photos/40077210@N00/3667199868
  • #18 Phase 1: Lower cost for new featuresPhase 2: Accumlating Debt
  • #20 Features backlogTech debt has accrued and the technical team has identified it and estimated the work and estimated the business impact
  • #27 DebriefWhat did you learn?Technical Debt GrowsShare results (explain interesting ones)
  • #28 Debrief- What did you learn
  • #29 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/
  • #30 Visualize your debt, make it explicitPhoto by Oliver Hammondhttp://www.flickr.com/photos/olivander/58499153/
  • #31 Photo by Kristi Johnsonhttp://www.flickr.com/photos/46142663@N03/4451325321
  • #32 http://commons.wikimedia.org/wiki/User:Roger_McLassushttp://commons.wikimedia.org/wiki/File:2006-02-04_Metal_spiral.jpg
  • #34 Pair Share – someone you haven’t met yet