Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What i learned adopting agile practices

1,349 views

Published on

Published in: Technology
  • Be the first to comment

What i learned adopting agile practices

  1. 1. What I Learned Adopting Agile Practices <ul><li>Vijay Narayanan </li></ul><ul><li>http:// artofsoftwarereuse.com / </li></ul>
  2. 2. Essence of Agility… <ul><li>Embracing change </li></ul><ul><li>Collaboration and exploration </li></ul><ul><li>Delivering working software </li></ul>
  3. 3. Start With Stories <ul><li>Stories place the user’s needs in front </li></ul><ul><li>Establish shared meaning </li></ul><ul><li>Help Channelize Passion </li></ul>
  4. 4. Take Small Bites <ul><li>Focus on the iteration instead of the entire project </li></ul><ul><li>Gives the team a chance to experiment and adapt practices </li></ul>
  5. 5. Quality more important than Quantity <ul><li>Fewer Features does not equal loss in user productivity! </li></ul><ul><li>Health of codebase as important as any other metric </li></ul>
  6. 6. Empty Your Cup <ul><li>Practice “I don’t Know” </li></ul><ul><li>What did I and the team learn in this iteration? </li></ul>
  7. 7. Listen <ul><li>For feedback from developers and business partners </li></ul><ul><li>For conflict and indecision </li></ul>
  8. 8. Be Visual <ul><li>Track trends – defects opened, fixed, stories implemented </li></ul><ul><li>Make priorities and tasks clearly visible </li></ul><ul><li>Don’t design over email, grab a whiteboard </li></ul>
  9. 9. Iterate to Innovate <ul><li>“ Speed of Iteration over Pursuit of Perfection” – Charles Boyd </li></ul><ul><li>Your understanding may be partial and/or incorrect </li></ul>
  10. 10. Travel Light <ul><li>Implement fewer stories </li></ul><ul><li>Write readable code </li></ul><ul><li>Keep Stand up Meetings short, very short </li></ul>
  11. 11. Be Ruthless With Repetition <ul><li>Automate manual tasks – setting up developer machines, unit testing, release and deployment, smoke testing – list is endless! </li></ul><ul><li>Refactor duplicate code </li></ul>
  12. 12. Collaborate <ul><li>With sponsors to meet business objectives and deliver working software </li></ul><ul><li>With users to observe and understand their true needs </li></ul><ul><li>With developers to brainstorm design alternatives </li></ul>
  13. 13. Trust but Verify <ul><li>Mentor junior developers </li></ul><ul><li>Write tests and do code reviews </li></ul><ul><li>Lead by example – don’t preach quality but demonstrate in action </li></ul>
  14. 14. Mistake Proofing is Super-Useful <ul><li>Make it easy to get things right – setting up environment, fixing defects, following conventions consistently </li></ul><ul><li>When mistakes do happen – go after the root cause! </li></ul>
  15. 15. Expect the Unexpected <ul><li>Agile practices will introduce awkwardness in interactions and behavior </li></ul><ul><li>Expect a big backlog of unfinished work – specially when you start! </li></ul>
  16. 16. Release Early, Even if you need to fake it! <ul><li>If you cannot release to real users – release into a test environment </li></ul><ul><li>Focusing on early and continuous releases will help with every other agile practice </li></ul>
  17. 17. Practice <ul><li>Roles and responsibilities </li></ul><ul><li>Coaching developers </li></ul><ul><li>Acting on feedback </li></ul>
  18. 18. The Japanese Lunchbox <ul><li>Agile helps the team see the interconnectedness between: features, quality, and delivery </li></ul>
  19. 19. Celebrate <ul><li>Shared code ownership </li></ul><ul><li>Every iteration! </li></ul><ul><li>Infinite learning opportunities </li></ul>
  20. 20. Have a “Beginner’s Mind” <ul><li>Open to change, uncertainty, and learning… </li></ul><ul><li>Keep the child-like curiosity! </li></ul>

×