Five Key Numbers to Gauge your Agile Engineering Efforts


Published on

Talk given at Agile Tech DC, May 14, 2011

Published in: Technology
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Speed up feedback loops, know whether you’re building the right thing, whether it’s going to make you money, know if you understood the requirements, be more responsive to your customers, change direction quickly
  • What if you could engineering things in such a way so that you could produce a constant stream of new features at a steady rate, regardless of the age and/or size of the system?
  • OBJECTIVES Understand how various agile engineering practices help to flatten the cost of change curve See why lowering transaction costs is a key theme of agile engineering practices Be exposed to some ways to evaluate the maturity of their own agile engineering effortsHave ideas about how to improve their implementation of agile engineering practices
  • This exposes the limit of how quickly you can work within your team context.
  • Collective code ownershipSimple designGroup designTransparency in version controlReduce the WTH’s per minute in a code reviewPAIRING
  • You need a shared contextBuild trust through interactionIf you aren’t working regularly side-by-side with your teammates, the team knowledge and cohesion is going to fracture
  • Five Key Numbers to Gauge your Agile Engineering Efforts

    1. Five Key Numbers to Gauge your Agile Engineering Efforts<br />Jeff<br />Agile Tech DC<br />May 14, 2011<br />
    2. There are many benefits to working incrementally in short cycles . . .<br />
    3. . . . if you can pull it off<br />
    4. Agile engineering practices are supposed to enable a flattened cost-of-change curve<br />TDD<br />refactoring<br />continuous integration<br />pair programming<br />coding standard<br />automated builds<br />automated tests<br />. . .<br />Craig Davidson,<br />
    5. But it’s not sufficient simply to do the practices(They’re not binary)<br />
    6. How do we knowhow effectivewe are atflattening the curve?<br />
    7. Five key numbers . . .Not intended to be comprehensive or even very scientific<br />
    8. Seconds<br />20<br />#1How long until you see feedback from a test after writing or changing a line of code?<br />16<br />12<br />8<br />4<br />0<br />
    9. #2How many one-line changes can you commitand push to testin an hour?Following the team’s practices, of course<br />20<br />16<br />12<br />8<br />4<br />0<br />Commits<br />
    10. The speed of the feedback affects the speed at which you can work<br />
    11. 5<br />4<br />3<br />2<br />1<br />0<br />#3How many people on your team can explain the details of any particular section of code?<br />
    12. 100%<br />#4What percentage of your team members did you pair with in the last two days?<br />80%<br />60%<br />40%<br />20%<br />0%<br />
    13. “Promiscuous” pairing speeds up communication and builds trust<br />
    14. #5How many manual steps does it take to get a build into production?<br />15<br />12<br />9<br />6<br />3<br />0<br />Steps<br />
    15. Higher transaction costs drive longer cycles and bigger batches<br />
    16. To lower the cost-of-change curve, we must lower the transaction costs associated with adding features<br />
    17. Make it cheaper to<br />Change code <br />Check in code<br />Understand the code<br />Communicate with your teammates<br />Push code to production<br />
    18. If we can make changes cheaply enough . . . <br />. . . the cost savings from quicker feedback and increased learning outweighthe costs of overhead and rework.<br />
    19. 120<br />96<br />72<br />48<br />24<br />0<br />BONUS<br />What’s theaverage typing speed of the programmers on your team?<br />