Successfully reported this slideshow.

Adopting Scrum and Agile


Published on

Lessons learned from the use of the Scrum methodology at our Calgary office over the years. Presented to the rest of the company during a push for agile adoption by all our software groups.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Adopting Scrum and Agile

  1. 1. Adopting Agile Lessons Learned Guy Davis Technical Team Lead Petris - Calgary Office October 6, 2009
  2. 2. Why did we adopt Scrum? <ul><li>Where were we a few years ago? </li></ul><ul><ul><li>Long time between releases (many months). </li></ul></ul><ul><ul><li>Frequent priority changes (sometimes daily). </li></ul></ul><ul><ul><li>Testing was an after-thought (often cut). </li></ul></ul><ul><ul><li>No time-boxing allowed complex designs to arise. </li></ul></ul><ul><ul><li>Little feedback from users and rest of company. </li></ul></ul><ul><li>Summary of DataVera Development Team: </li></ul><ul><ul><li>One product owner </li></ul></ul><ul><ul><li>One dedicated tester (QA) </li></ul></ul><ul><ul><li>One handling client support and documentation </li></ul></ul><ul><ul><li>Three programmers </li></ul></ul>
  3. 3. Problem: Infrequent Releases <ul><li>Symptoms: </li></ul><ul><ul><li>Feature-driven releases, but kept adding features. </li></ul></ul><ul><ul><ul><li>Developers frustrated as goal post kept moving. </li></ul></ul></ul><ul><ul><li>Frequent interruptions and priority changes. </li></ul></ul><ul><ul><ul><li>Users couldn't wait a year so everything was a rush. </li></ul></ul></ul><ul><li>  </li></ul>
  4. 4. Problem: Infrequent Releases <ul><li>Our Solution: </li></ul><ul><ul><li>Time-box to release every 2 weeks. </li></ul></ul><ul><ul><ul><li>Initially held one month iterations to ease transition. </li></ul></ul></ul><ul><li>  </li></ul><ul><li>Result: </li></ul><ul><ul><li>More feedback on our work, more often. </li></ul></ul><ul><ul><li>Developers felt sense of accomplishment. </li></ul></ul><ul><ul><li>Interruptions eased as users could wait two weeks. </li></ul></ul><ul><li>  </li></ul>
  5. 5. Challenge: Story/Task Breakdown <ul><li>Symptom: </li></ul><ul><ul><li>Estimate on an epic feature is bigger than iteration. </li></ul></ul><ul><li>  </li></ul><ul><li>Our Solution: </li></ul><ul><ul><li>Break down requirement to get simplest design. </li></ul></ul><ul><ul><li>Don't gold-plate new feature.  Can improve later. </li></ul></ul><ul><ul><li>Hold design meetings prior to planning meeting. </li></ul></ul><ul><ul><ul><li>Discussion reveals if story is ready for planning. </li></ul></ul></ul><ul><ul><li>Practice over many iterations.  It becomes easier. </li></ul></ul>
  6. 6. Challenge: Story/Task Breakdown <ul><li>Results: </li></ul><ul><ul><li>Better able to respond to inevitable change. </li></ul></ul><ul><ul><li>We stopped building shiny framework code. </li></ul></ul><ul><ul><ul><li>Focused on shipping features the user wanted. </li></ul></ul></ul><ul><ul><li>We now involve the entire team in design and planning. </li></ul></ul><ul><ul><li>  </li></ul></ul>
  7. 7. Challenge: Gathering Feedback <ul><li>Symptom: </li></ul><ul><ul><li>Stakeholders felt out of loop on direction of product. </li></ul></ul><ul><ul><li>Poor knowledge transfer to client support of changes. </li></ul></ul><ul><li>  </li></ul><ul><li>Our Solution: </li></ul><ul><ul><li>Demo meeting at end of every iteration. </li></ul></ul><ul><ul><ul><li>Everyone in our office invited to attend and comment. </li></ul></ul></ul><ul><ul><li>  Added automatic error reporting to our application. </li></ul></ul>
  8. 8. Challenge: Gathering Feedback <ul><li>Results: </li></ul><ul><ul><li>Our reputation is on the line. Failed demos are lame. </li></ul></ul><ul><ul><li>Regularly got feedback on new features. </li></ul></ul><ul><ul><li>Gathered many good ideas from participants. </li></ul></ul><ul><ul><li>Knowledge shared between dev and support teams. </li></ul></ul><ul><ul><li>More detailed error reports meant faster fixes. </li></ul></ul>
  9. 9. Problem: Low Quality of Product <ul><li>Symptom: </li></ul><ul><ul><li>Users complained of errors and broken features. </li></ul></ul><ul><li>Our Solution: </li></ul><ul><ul><li>Better requirements analysis to find true needs. </li></ul></ul><ul><ul><li>We strove for simplicity in our designs. </li></ul></ul><ul><ul><li>Hire good QA for acceptance and regression testing </li></ul></ul><ul><ul><li>Improve unit test suite and monitor code coverage. </li></ul></ul><ul><ul><li>Implement daily code review among developers. </li></ul></ul><ul><ul><li>Adopt automated functional testing tool (IBM FT). </li></ul></ul><ul><ul><li>Be patient.  More use led to more maturity in our app. </li></ul></ul>
  10. 10. Problem: Low Quality of Product <ul><li>Results: </li></ul><ul><ul><li>Fewer serious issues reported by users. </li></ul></ul><ul><ul><li>They have more confidence in product. </li></ul></ul><ul><li>  </li></ul><ul><ul><li>Failed to implement automated testing as test scripts didn't keep pace with product changes. </li></ul></ul><ul><li>  </li></ul>
  11. 11. Problem: No Shared Goal for Team <ul><li>Symptom: </li></ul><ul><ul><li>Individuals care about finishing their own tasks only. </li></ul></ul><ul><ul><li>Complaints fester, solutions not offered or enacted. </li></ul></ul><ul><ul><li>People abdicate responsibility and blame others. </li></ul></ul>
  12. 12. Problem: No Shared Goal for Team <ul><li>Our Solution: </li></ul><ul><ul><li>Team estimates, then accepts iteration workload. </li></ul></ul><ul><ul><li>Entire team is responsible for shipping quality product. </li></ul></ul><ul><ul><li>Retrospective team meeting at end of iteration: </li></ul></ul><ul><ul><ul><li>Raise concerns: How can we improve for next time? </li></ul></ul></ul><ul><ul><ul><li>Kudos for good work: Praise extra effort and success. </li></ul></ul></ul><ul><ul><ul><li>Think about work practices, don't just do them blindly. </li></ul></ul></ul><ul><li>Results: </li></ul><ul><ul><li>Team is constantly improving and adapting. </li></ul></ul><ul><ul><li>Better team cohesion and a feeling of progress. </li></ul></ul><ul><li>  </li></ul>
  13. 13. Always room for improvement... <ul><li>We still sometimes: </li></ul><ul><ul><li>Take too long between major releases. </li></ul></ul><ul><ul><li>Fail to adequately breakdown/understand stories. </li></ul></ul><ul><ul><li>Find serious errors in deployed versions. </li></ul></ul><ul><li>We wish we had: </li></ul><ul><ul><li>Had a flexible automated GUI test suite. </li></ul></ul><ul><ul><li>Not tracked hours worked; it's an irrelevant metric. </li></ul></ul><ul><ul><ul><li>Was built-into XPlanner and understandable at start of Agile adoption, but only shippable features matter . </li></ul></ul></ul><ul><ul><li>Users who would upgrade more often.  Less legacy support. </li></ul></ul>
  14. 14. Critical Factors for Success <ul><ul><li>Empower the entire team: </li></ul></ul><ul><ul><ul><li>Let them determine their own processes. </li></ul></ul></ul><ul><ul><ul><li>Set their own estimates; accept own workload. </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Hold the team responsible: </li></ul></ul><ul><ul><ul><li>Measure by potentially shippable features. </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Improve communication: </li></ul></ul><ul><ul><ul><li>Both within the team and with external stakeholders. </li></ul></ul></ul><ul><li>  </li></ul><ul><ul><li>Have the courage to fail: </li></ul></ul><ul><ul><ul><li>Learn from the experience, do better next time. </li></ul></ul></ul><ul><ul><ul><li>Always inspect and adapt -> constant improvement. </li></ul></ul></ul>
  15. 15. Further Resources <ul><li>Continue the discussion: </li></ul><ul><ul><li>Agile @ Petris thread on Yammer </li></ul></ul><ul><li>  </li></ul><ul><li>Articles: </li></ul><ul><ul><li>Making Scrum Stick: Overcoming Fear and Anxiety </li></ul></ul><ul><ul><li>Ten Keys to Successful Scrum Adoption </li></ul></ul><ul><li>  </li></ul><ul><li>Videos: </li></ul><ul><ul><li>Succeeding with Agile: A Guide to Transitioning </li></ul></ul><ul><ul><li>Agile by the Numbers: What People are Really Doing </li></ul></ul><ul><ul><li>Scaling Agile into the Enterprise </li></ul></ul>