How to Keep Product Development Teams Going Fast

488 views
448 views

Published on

Session from ProductCamp 11 in Austin (July 2013)

Features often get delivered quickly on new software projects, but the pace gets exponentially slower over time. Why does this happen and what can you do about it? In this session, we'll introduce the hidden drag of technical debt and explain how it works. Through a combination of presentation, discussion and exercises Product Managers will learn how to recognize the symptoms and work with your team to eliminate it, so you can keep going fast.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
488
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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/
  • 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
  • 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:http://commons.wikimedia.org/wiki/File:Duct-tape.jpg
  • 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 improvementPhoto by 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
  • http://commons.wikimedia.org/wiki/User:Roger_McLassushttp://commons.wikimedia.org/wiki/File:2006-02-04_Metal_spiral.jpg
  • Pair Share – someone you haven’t met yet
  • How to Keep Product Development Teams Going Fast

    1. 1. HOW TO KEEP YOUR PRODUCT DEVELOPMENT TEAMS GOING FAST Product Camp Austin 11
    2. 2. As you come in, find someone in the room and discuss what you know about Technical Debt
    3. 3. We’d prefer a fast, steady stream of new features…
    4. 4. But sometimes it feels more like this
    5. 5. Long Delivery Times Mounting Defects Rising Development Costs Poor Customer Responsiveness Late Deliveries Frustrated and Poor Performing Teams
    6. 6. Intentional Debt Temporary Code Business Pressure Delayed Testing Other Conscious Tradeoffs
    7. 7. Unintentional Debt Poor Code or Design Business Pressure Poor Practices Inflexible Software Lack of understanding Poor design/architecture Unintended Complexity Poor design
    8. 8. A Vicious Cycle Time Pressure Poorly Implemented Features Late Delivery
    9. 9. Continuous Integration
    10. 10. Test (and other) Automation
    11. 11. Refactoring - would you trust delivery of your products over this road?
    12. 12. Peer Review
    13. 13. http://jimhighsmith.com/the-financial-implications-of-technical-debt/ Jim Highsmith’s Technical Debt Graph Rewrite!
    14. 14. Let’s do an exercise to understand the concept further. Form into Teams of at least 4 people.
    15. 15. 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
    16. 16. 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
    17. 17. 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
    18. 18. 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"
    19. 19. 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
    20. 20. 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
    21. 21. The goal is to complete as many feature points at the end of 5 iterations. Go!
    22. 22. The goal is to complete as many feature points at the end of 5 iterations. Stop!
    23. 23. Theoretical Capacity Technical Debt Productivity Time
    24. 24. In order to go fast we need a focus on Craftsmanship
    25. 25. Capture your debt
    26. 26. Visualize and estimate
    27. 27. Need to invest time, team needs slack
    28. 28. Discuss how you could apply these concepts to help your teams go fast.

    ×