Introduction to Agile Methods

Preview:

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 Govindarajsiddharta@silverstripesoftware.com

Recommended