Date post: | 11-May-2015 |
Category: |
Technology |
Upload: | siddhi |
View: | 3,925 times |
Download: | 0 times |
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