introduction to agile methods
DESCRIPTION
Slides of my talk given to the NASSCOM Chennai Friday 2.0 forum on 21 August 2009TRANSCRIPT
![Page 1: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/1.jpg)
Introduction to Agile Methods
![Page 2: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/2.jpg)
What we do today
![Page 3: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/3.jpg)
Does it work?
Lets find out
Its time to have a party!
![Page 4: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/4.jpg)
It's Party Time!
![Page 5: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/5.jpg)
Waterfall doesn't work well when
- There is a lot of uncertainty
- Requirements change midway
![Page 6: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/6.jpg)
Waterfall doesn't work well when
- You or the customer are not 100% sure of the market requirements
![Page 7: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/7.jpg)
Waterfall doesn't work well when
- New ideas derive from using the software
![Page 8: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/8.jpg)
Two options
- Freeze requirements with upfront research and analysis
![Page 9: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/9.jpg)
Two options
- Freeze requirements with upfront research and analysis
- Make the process adaptable
![Page 10: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/10.jpg)
The market for software is complex and ever changing
Agile methods derive from a theory of Complex Adaptive Systems to work in this environment
![Page 11: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/11.jpg)
![Page 12: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/12.jpg)
- Wait till the end to use the software- Feedback and bugs discovered late- Poor visibility of progress
Traditional Timeline
![Page 13: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/13.jpg)
- Possible to incorporate feedback- Bugs found early- Start getting partial benefits early
Agile Timeline
![Page 14: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/14.jpg)
- Better visibility of progress- Better management of requirement uncertainty
Agile Timeline
![Page 15: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/15.jpg)
- Time is fixed- Scope is a variable- Keep software “releasable”
Agile Timeline
![Page 16: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/16.jpg)
Frequent Delivery
![Page 17: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/17.jpg)
Frequent Delivery
- Allows customers to view progress- Customer can give feedback
![Page 18: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/18.jpg)
Incremental Development
Image by Jeff Patton
![Page 19: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/19.jpg)
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
![Page 20: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/20.jpg)
Iterative Development
Image by Jeff Patton
![Page 21: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/21.jpg)
Iterative Development
- Evolve features based on actual usage- Improves usefulness of the product- Enables deploy, test, refine cycle in a live environment
![Page 22: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/22.jpg)
Customer Collaboration
![Page 23: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/23.jpg)
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
![Page 24: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/24.jpg)
So what is Agile really?
![Page 25: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/25.jpg)
t
Scrum, Extreme Programming, FDD,Crystal, DSDM, Lean
![Page 26: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/26.jpg)
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.
![Page 27: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/27.jpg)
Benefits
- Improved RoI through early deployment of software
- Build the right product through incremental improvement
![Page 28: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/28.jpg)
Benefits
- Better visibility into progress
- Catch problems early when you have time to react
![Page 29: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/29.jpg)
Further Questions
- How does Agile work in fixed price projects?
- How to handle documentation?
- How to handle knowledge sharing?
![Page 30: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/30.jpg)
Further Questions
- What happens to design?
- What happens to quality?
- Wont making many changes affect the codebase?
![Page 31: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/31.jpg)
Some Agile Practices To Explore
- Self organization - Inspect & Adapt - Burndown charts - Test Driven Development - Pair Programming - Continuous Integration
![Page 32: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/32.jpg)
Some Agile Practices To Explore
- Pull/Kanban - Throughput analysis - Work in progress limits - Iceberg list - Walking skeleton - Information radiators
![Page 33: Introduction to Agile Methods](https://reader034.vdocument.in/reader034/viewer/2022052307/554f9245b4c905d25b8b5279/html5/thumbnails/33.jpg)
Some Agile Practices To Explore
- Domain object modeling - Feature teams - Parking lot diagrams - Prototyping - MoSCoW prioritisation - Facilitated workshops