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
Traditional Timeline




- Wait till the end to use the software
- Feedback and bugs discovered late
- Poor visibility of progress
Agile 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”
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?
Scrum, Extreme Programming, FDD,
       Crystal, DSDM, Lean


               t
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 Govindaraj
siddharta@silverstripesoftware.com

Introduction to Agile Methods