34
Introduction to Agile Methods

Introduction to Agile Methods

  • Upload
    siddhi

  • View
    3.933

  • Download
    0

Embed Size (px)

DESCRIPTION

Slides of my talk given to the NASSCOM Chennai Friday 2.0 forum on 21 August 2009

Citation preview

Page 1: Introduction to Agile Methods

Introduction to Agile Methods

Page 2: Introduction to Agile Methods

What we do today

Page 3: Introduction to Agile Methods

Does it work?

Lets find out

Its time to have a party!

Page 4: Introduction to Agile Methods

It's Party Time!

Page 5: Introduction to Agile Methods

Waterfall doesn't work well when

- There is a lot of uncertainty

- Requirements change midway

Page 6: Introduction to Agile Methods

Waterfall doesn't work well when

- You or the customer are not 100% sure of the market requirements

Page 7: Introduction to Agile Methods

Waterfall doesn't work well when

- New ideas derive from using the software

Page 8: Introduction to Agile Methods

Two options

- Freeze requirements with upfront research and analysis

Page 9: Introduction to Agile Methods

Two options

- Freeze requirements with upfront research and analysis

- Make the process adaptable

Page 10: Introduction to Agile Methods

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
Page 12: Introduction to Agile Methods

- 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

- Possible to incorporate feedback- Bugs found early- Start getting partial benefits early

Agile Timeline

Page 14: Introduction to Agile Methods

- Better visibility of progress- Better management of requirement uncertainty

Agile Timeline

Page 15: Introduction to Agile Methods

- Time is fixed- Scope is a variable- Keep software “releasable”

Agile Timeline

Page 16: Introduction to Agile Methods

Frequent Delivery

Page 17: Introduction to Agile Methods

Frequent Delivery

- Allows customers to view progress- Customer can give feedback

Page 18: Introduction to Agile Methods

Incremental Development

Image by Jeff Patton

Page 19: Introduction to Agile Methods

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

Iterative Development

Image by Jeff Patton

Page 21: Introduction to Agile Methods

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

Customer Collaboration

Page 23: Introduction to Agile Methods

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

So what is Agile really?

Page 25: Introduction to Agile Methods

t

Scrum, Extreme Programming, FDD,Crystal, DSDM, Lean

Page 26: Introduction to Agile Methods

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

Benefits

- Improved RoI through early deployment of software

- Build the right product through incremental improvement

Page 28: Introduction to Agile Methods

Benefits

- Better visibility into progress

- Catch problems early when you have time to react

Page 29: Introduction to Agile Methods

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

Further Questions

- What happens to design?

- What happens to quality?

- Wont making many changes affect the codebase?

Page 31: Introduction to Agile Methods

Some Agile Practices To Explore

- Self organization - Inspect & Adapt - Burndown charts - Test Driven Development - Pair Programming - Continuous Integration

Page 32: Introduction to Agile Methods

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

Some Agile Practices To Explore

- Domain object modeling - Feature teams - Parking lot diagrams - Prototyping - MoSCoW prioritisation - Facilitated workshops

Page 34: Introduction to Agile Methods

Thanks!

Siddharta [email protected]