Introduction to Agile Methodologies

26
Introduction to Agile Methodologies Siddharta Govindaraj Silver Stripe Software Pvt Ltd [email protected] http://www.silverstripesoftware.com/blog/

description

An introduction to agile methodologies. Most slides require the audio narration to make sense though.

Transcript of Introduction to Agile Methodologies

Page 1: Introduction to Agile Methodologies

Introduction to Agile Methodologies

Siddharta GovindarajSilver Stripe Software Pvt Ltd

[email protected]://www.silverstripesoftware.com/blog/

Page 2: Introduction to Agile Methodologies

1. Time to market and quality are more important than ever before

2. Requirements stability is a thing of the past

Page 3: Introduction to Agile Methodologies

Program Managers want to improve software delivery in this ever changing environment

Page 4: Introduction to Agile Methodologies

Traditional processes are too rigid to address these concerns

US Army Photo, NASA logo from website

Page 5: Introduction to Agile Methodologies

Agile software development is creating new ways of developing and delivering software

Photos by Simon Baker

Page 6: Introduction to Agile Methodologies

ScrumExtreme ProgrammingFeature Driven DevelopmentLean Software DevelopmentDSDMCrystal

Image by Mary R Vogt

Page 7: Introduction to Agile Methodologies

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 8: Introduction to Agile Methodologies

Lets compare traditional and agile approaches to software development

1. Requirements 2. Scheduling 3. Quality

Page 9: Introduction to Agile Methodologies

1. Requirements 2. Scheduling 3. Quality

Do you really know that you are building the right software?

Page 10: Introduction to Agile Methodologies

1. Requirements 2. Scheduling 3. Quality

Page 11: Introduction to Agile Methodologies

1. Requirements change midway or can be unclear

2. There is only one person who has any clue what the software should do (and it's usually not you)

1. Requirements 2. Scheduling 3. Quality

Page 12: Introduction to Agile Methodologies

Traditional Processes...Try to restrict changeTry to create predictive plans

Agile Processes...Try to embrace changeTry to be adaptive

1. Requirements 2. Scheduling 3. Quality

Page 13: Introduction to Agile Methodologies

How well do you know the current state of the project?

1. Requirements 2. Scheduling 3. Quality

Page 14: Introduction to Agile Methodologies

Traditional processes are structured in phases

Requirements

Design

Coding

Test

Deploy

1. Requirements 2. Scheduling 3. Quality

Page 15: Introduction to Agile Methodologies

Agile processes are structured by feature

R D C T D

1. Requirements 2. Scheduling 3. Quality

Page 16: Introduction to Agile Methodologies

Traditional Processes...Harder to measure progress

Agile Processes...Easier to measure progress

1. Requirements 2. Scheduling 3. Quality

Page 17: Introduction to Agile Methodologies

What is the quality level of your project?

1. Requirements 2. Scheduling 3. Quality

Page 18: Introduction to Agile Methodologies

Traditional processes do testing at the end of the project (it's too late!)

1. Requirements 2. Scheduling 3. Quality

Page 19: Introduction to Agile Methodologies

Agile processes embrace continuous testing, integration and reviews

1. Requirements 2. Scheduling 3. Quality

Page 20: Introduction to Agile Methodologies

Practices like pair programming, unit testing, continuous integration and automated tests keep quality level high

1. Requirements 2. Scheduling 3. Quality

Page 21: Introduction to Agile Methodologies

Can companies adapt to the new market?

Page 22: Introduction to Agile Methodologies

New requirements present new opportunities

Page 23: Introduction to Agile Methodologies

Agile software development enables companies to take advantage of these opportunities

Page 24: Introduction to Agile Methodologies

Epilogue

Being agile is a mindset that you have, not a set of practices that you do

Page 25: Introduction to Agile Methodologies

. Timeboxed iterations

. Frequent releases

. Retrospective

. Regular feedback

. Pair programming

. Appropriate documentation

. Refactoring

. Truck factor

. Burndown charts

. Daily standup meeting

. Agile (velocity) estimation

. T-shirt estimation

. Delphi estimation

. Planning poker

Some Practices To Discuss. Co-located teams. Team focus. Small teams. Cross functional teams. On-site customer/expert. Open workspace. Self organising teams

. User stories

. Feature prioritization

. MoSCoW prioritization

. Adaptive scope

. Test driven development

. Automated testing

. One click build

. Continuous integration

Page 26: Introduction to Agile Methodologies

That's It! Thank You!

Siddharta GovindarajSilver Stripe Software Pvt Ltd

[email protected]://www.silverstripesoftware.com/blog/