What I Learned Adopting Agile Practices <ul><li>Vijay Narayanan </li></ul><ul><li>http:// artofsoftwarereuse.com / </li></ul>
Essence of Agility… <ul><li>Embracing change </li></ul><ul><li>Collaboration and exploration </li></ul><ul><li>Delivering ...
Start With Stories <ul><li>Stories place the user’s needs in front </li></ul><ul><li>Establish shared meaning </li></ul><u...
Take Small Bites <ul><li>Focus on the iteration instead of the entire project </li></ul><ul><li>Gives the team a chance to...
Quality more important than Quantity <ul><li>Fewer Features does not equal loss in user productivity! </li></ul><ul><li>He...
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>
Listen <ul><li>For feedback from developers and business partners </li></ul><ul><li>For conflict and indecision </li></ul>
Be Visual <ul><li>Track trends – defects opened, fixed, stories implemented </li></ul><ul><li>Make priorities and tasks cl...
Iterate to Innovate <ul><li>“ Speed of Iteration over Pursuit of Perfection” – Charles Boyd </li></ul><ul><li>Your underst...
Travel Light <ul><li>Implement fewer stories  </li></ul><ul><li>Write readable code </li></ul><ul><li>Keep Stand up Meetin...
Be Ruthless With Repetition <ul><li>Automate manual tasks – setting up developer machines, unit testing, release and deplo...
Collaborate <ul><li>With sponsors to meet business objectives and deliver working software </li></ul><ul><li>With users to...
Trust but Verify <ul><li>Mentor junior developers </li></ul><ul><li>Write tests and do code reviews  </li></ul><ul><li>Lea...
Mistake Proofing is Super-Useful <ul><li>Make it easy to get things right – setting up environment, fixing defects, follow...
Expect the Unexpected <ul><li>Agile practices will introduce awkwardness in interactions and behavior </li></ul><ul><li>Ex...
Release Early, Even if you need to fake it! <ul><li>If you cannot release to real users – release into a test environment ...
Practice <ul><li>Roles and responsibilities </li></ul><ul><li>Coaching developers  </li></ul><ul><li>Acting on feedback </...
The Japanese Lunchbox <ul><li>Agile helps the team see the interconnectedness between:  features, quality, and delivery </...
Celebrate <ul><li>Shared code ownership </li></ul><ul><li>Every iteration! </li></ul><ul><li>Infinite learning opportuniti...
Have a “Beginner’s Mind” <ul><li>Open to change, uncertainty, and learning… </li></ul><ul><li>Keep the child-like curiosit...
Upcoming SlideShare
Loading in …5
×

What i learned adopting agile practices

1,125 views
1,115 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,125
On SlideShare
0
From Embeds
0
Number of Embeds
385
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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>

×