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.

Introduction to Agile Methods


Published on

Slides of my talk given to the NASSCOM Chennai Friday 2.0 forum on 21 August 2009

Published in: Technology

Introduction to Agile Methods

  1. 1. Introduction to Agile Methods
  2. 2. What we do today
  3. 3. Does it work? Lets find out Its time to have a party!
  4. 4. It's Party Time!
  5. 5. Waterfall doesn't work well when - There is a lot of uncertainty - Requirements change midway
  6. 6. Waterfall doesn't work well when - You or the customer are not 100% sure of the market requirements
  7. 7. Waterfall doesn't work well when - New ideas derive from using the software
  8. 8. Two options - Freeze requirements with upfront research and analysis
  9. 9. Two options - Freeze requirements with upfront research and analysis - Make the process adaptable
  10. 10. The market for software is complex and ever changing Agile methods derive from a theory of Complex Adaptive Systems to work in this environment
  11. 11. Traditional Timeline - Wait till the end to use the software - Feedback and bugs discovered late - Poor visibility of progress
  12. 12. Agile Timeline - Possible to incorporate feedback - Bugs found early - Start getting partial benefits early
  13. 13. Agile Timeline - Better visibility of progress - Better management of requirement uncertainty
  14. 14. Agile Timeline - Time is fixed - Scope is a variable - Keep software “releasable”
  15. 15. Frequent Delivery
  16. 16. Frequent Delivery - Allows customers to view progress - Customer can give feedback
  17. 17. Incremental Development Image by Jeff Patton
  18. 18. Incremental Development - Build a system piece by piece - Better idea of development pace - Allow parts of the system to be deployed live - Enable earlier return on investment
  19. 19. Iterative Development Image by Jeff Patton
  20. 20. Iterative Development - Evolve features based on actual usage - Improves usefulness of the product - Enables deploy, test, refine cycle in a live environment
  21. 21. Customer Collaboration
  22. 22. Customer Collaboration - Not just building the product right, but also building the right product - Both parties are invested in a successful outcome - Collaboration vs confrontation
  23. 23. So what is Agile really?
  24. 24. Scrum, Extreme Programming, FDD, Crystal, DSDM, Lean t
  25. 25. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
  26. 26. Benefits - Improved RoI through early deployment of software - Build the right product through incremental improvement
  27. 27. Benefits - Better visibility into progress - Catch problems early when you have time to react
  28. 28. Further Questions - How does Agile work in fixed price projects? - How to handle documentation? - How to handle knowledge sharing?
  29. 29. Further Questions - What happens to design? - What happens to quality? - Wont making many changes affect the codebase?
  30. 30. Some Agile Practices To Explore - Self organization - Inspect & Adapt - Burndown charts - Test Driven Development - Pair Programming - Continuous Integration
  31. 31. Some Agile Practices To Explore - Pull/Kanban - Throughput analysis - Work in progress limits - Iceberg list - Walking skeleton - Information radiators
  32. 32. Some Agile Practices To Explore - Domain object modeling - Feature teams - Parking lot diagrams - Prototyping - MoSCoW prioritisation - Facilitated workshops
  33. 33. Thanks! Siddharta Govindaraj