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