The Agile Primer: Agile Best Practices, Tips and Methods

27
The Agile Primer [email protected] [email protected] July 2008 © ThoughtWorks 2008

description

Agile Best Practices, Tips and Methods

Transcript of The Agile Primer: Agile Best Practices, Tips and Methods

Page 1: The Agile Primer: Agile Best Practices, Tips and Methods

The Agile Primer

[email protected]@thoughtworks.com

July 2008

© ThoughtWorks 2008

Page 2: The Agile Primer: Agile Best Practices, Tips and Methods

Hopes and Concerns

© ThoughtWorks 2008

Page 3: The Agile Primer: Agile Best Practices, Tips and Methods

Our Roadmap

Agile MethodsAgile

Values & Principles

© ThoughtWorks 2008

SoftwareEngineering

Agile MethodsValues & Principles

AgilePractices

Page 4: The Agile Primer: Agile Best Practices, Tips and Methods

Our Roadmap

Agile MethodsAgile

Values & Principles

© ThoughtWorks 2008

SoftwareEngineering

Agile MethodsValues & Principles

AgilePractices

Page 5: The Agile Primer: Agile Best Practices, Tips and Methods

The Start

© ThoughtWorks 2008© ThoughtWorks 2008

Page 6: The Agile Primer: Agile Best Practices, Tips and Methods

We started with Software Engineering

© ThoughtWorks 2008

Page 7: The Agile Primer: Agile Best Practices, Tips and Methods

© ThoughtWorks 2008

Page 8: The Agile Primer: Agile Best Practices, Tips and Methods

© ThoughtWorks 2008

Page 9: The Agile Primer: Agile Best Practices, Tips and Methods

NASA’s Defect Density

Pretty good, right?

© ThoughtWorks 2008

Page 10: The Agile Primer: Agile Best Practices, Tips and Methods

NASA’s Defect Density (another data point)

© ThoughtWorks 2008

Page 11: The Agile Primer: Agile Best Practices, Tips and Methods

Other Heavy Weight Methodologies

SEI/IEEE Project Standards and Definitions

Waterfall

Project Management Project Management Body of Knowledge

(PMBOK)

Requirements Engineering

Sometimes, heavy weight methodologies work, but there are extensive costs, and the risk in using

them in dynamic environments is high.

© ThoughtWorks 2008

Page 12: The Agile Primer: Agile Best Practices, Tips and Methods

Our Roadmap

Agile MethodsAgile

Values & Principles

© ThoughtWorks 2008

SoftwareEngineering

Agile MethodsValues & Principles

AgilePractices

Page 13: The Agile Primer: Agile Best Practices, Tips and Methods

Agile

XPLean Software

DevelopmentDSDM

Iterative and

Incremental

Development (1930)

© ThoughtWorks 2008

Scrum

Crystal Family

FDD

ASDRUP CMMI

2 Pass Development

(1970)

Mercury Space Program

(Iterative) (1957)

Page 14: The Agile Primer: Agile Best Practices, Tips and Methods

Our Roadmap

Agile MethodsAgile

Values & Principles

© ThoughtWorks 2008

SoftwareEngineering

Agile MethodsValues & Principles

AgilePractices

Page 15: The Agile Primer: Agile Best Practices, Tips and Methods

Agile Manifesto

OVER Processes and ToolsIndividuals and

Interactions

Comprehensive

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

© ThoughtWorks 2008

OVERComprehensive

DocumentationWorking Software

OVER Contract NegotiationCustomer

Collaboration

OVER Following a PlanResponding to

Change

That is, while there is value on the right, we value the items on the left more.

Page 16: The Agile Primer: Agile Best Practices, Tips and Methods

12 Principles

Our highest priority is to satisfy the customer through early and continuous delivery of

valuable software.

Welcome changing requirements, even late indevelopment. Agile processes harness change

for the customer's competitive advantage.

Deliver working software frequently, from acouple of weeks to a couple of months, with a

preference to the shorter timescale.

Working software is the primary measure of progress.

Agile processes promote sustainable development.The sponsors, developers, and users should be able

to maintain a constant pace indefinitely.

Continuous attention to technical excellenceand good design enhances agility.

12 Principles

© ThoughtWorks 2008

Business people and developers must worktogether daily throughout the project.

Build projects around motivated individuals.Give them the environment and support they

need, and trust them to get the job done.

The most efficient and effective method ofconveying information to and within a

development team is face-to-face conversation.

Simplicity--the art of maximizing the amountof work not done--is essential.

The best architectures, requirements, and designsemerge from self-organizing teams.

At regular intervals, the team reflects on howto become more effective, then tunes and adjusts

its behavior accordingly.

Page 17: The Agile Primer: Agile Best Practices, Tips and Methods

Our Roadmap

Agile MethodsAgile

Values & Principles

© ThoughtWorks 2008

SoftwareEngineering

Agile MethodsValues & Principles

AgilePractices

Page 18: The Agile Primer: Agile Best Practices, Tips and Methods

Waterfall Methodology

EffortEffortEffortEffort

© ThoughtWorks 2008

TimeTimeTimeTime

Page 19: The Agile Primer: Agile Best Practices, Tips and Methods

Agile Methodology

© ThoughtWorks 2008

Page 20: The Agile Primer: Agile Best Practices, Tips and Methods

Common Agile Practices

Release

Iterations

© ThoughtWorks 2008

UserStories

UserStories

UserStories

UserStories

UserStories

UserStories

UserStories

UserStories

Iterations Iterations

Page 21: The Agile Primer: Agile Best Practices, Tips and Methods

Iteration PlanningRetrospective

Story writing (future)

Development (current iteration)

Testing (current iteration)

Start of Iteration Co located teams

What an iteration might look like

Daily stand up

Showcase

Code reviews

© ThoughtWorks 2008

Page 22: The Agile Primer: Agile Best Practices, Tips and Methods

Iteration Planning

Story writing (future)

Development (current iteration)

Testing (current iteration)

Start of Iteration

A specific practice…

Daily stand up

© ThoughtWorks 2008

Page 23: The Agile Primer: Agile Best Practices, Tips and Methods

The daily stand up…

Yesterday, I tried working on

that invoice report but

couldn’t because our test

environment wasn’t up

Let’s go see Dylan’s

team after this to try

and resolve it

I worked on the billing agent

yesterday and refactored out a

common utility for the printout

of the bill

No worriesSure

I guess so

I spoke to the

infrastructure team

yesterday and we won’t

get a build environment

until next week. Can we

make do with what we

have for now?

Hey, that’s great. I’ll need

that when I get to the

overdue bill story later this

week. Can you show me

that after stand up?

Today, we’ve got the

customer showcase for

the last iteration. I’m sure

we can get some useful

feedback and would be

good if everyone heard it

firsthand.

I’ll be there

Me too

© ThoughtWorks 2008

Page 24: The Agile Primer: Agile Best Practices, Tips and Methods

Iteration Planning

Start of Iteration

A specific practice…

Co located teams

Story writing (future)

Development (current iteration)

Testing (current iteration)

Daily stand up

Code reviews

© ThoughtWorks 2008

Page 25: The Agile Primer: Agile Best Practices, Tips and Methods

Co-located team + Code reviews

This is turning

out harder than

I thought.

Maybe I should

for help.

Hey Ava, Can I

get you to look

at this?

Sure

I’m currently in the

middle of … and keep

seeing … What do you

reckon I should do?

So it’s a bit like …

and a bit like …

I’m not sure if I really

understand the

problem. Let’s white

board this

Maybe we can

try … or …

Right! That’s

great.

Hang on! We can do this

and it’d be much simpler

Hey Connor. I heard you

talk about adding in …

When we talked about

that story, you remember

that the user would be

happy with just … instead

of that?

Really? That

makes it really

simple then!

Ok, so first … and

then … right?

type type type...

Yup!

type type type...

© ThoughtWorks 2008

Page 26: The Agile Primer: Agile Best Practices, Tips and Methods

Back to…

Hopes and ConcernsHopes and Concerns

© ThoughtWorks 2008

Page 27: The Agile Primer: Agile Best Practices, Tips and Methods

Questions?

© ThoughtWorks 2008