+ All Categories
Home > Technology > Improving your Agile Process

Improving your Agile Process

Date post: 06-Jul-2015
Category:
Upload: david-copeland
View: 1,992 times
Download: 1 times
Share this document with a friend
Description:
Slides from my lightning talk at DevDays DC on how to improve your agile process by gathering small amounts of data and using it to make decisions.
Popular Tags:
78
Improving your Agile Process
Transcript
Page 1: Improving your Agile Process

Improving your Agile Process

Page 2: Improving your Agile Process

First...who are we?

Page 3: Improving your Agile Process
Page 4: Improving your Agile Process

We reduce home energy use

Page 5: Improving your Agile Process

We reduce home energy useby showing people how much they use

Page 6: Improving your Agile Process

We reduce home energy useby showing people how much they useand then they actually use less!

Page 7: Improving your Agile Process
Page 8: Improving your Agile Process
Page 9: Improving your Agile Process

Agile means:

Page 10: Improving your Agile Process

Agile means:short iterations

Page 11: Improving your Agile Process

Agile means:short iterations

a metric sh*t-ton of practices chosen from a salad bar

Page 12: Improving your Agile Process

TDD, Pair Programming, Scrum, Kanban Cards, BDD, Continuous Integration, MDD,

Sprints, Stand-ups, Continuous Deployment, The Planning Game, User

Stories, Planning Poker, Sustainable Pace, Collective Code Ownership...

Page 13: Improving your Agile Process

Adopting agile?

Page 14: Improving your Agile Process

Adopting agile?Which practices?

Page 15: Improving your Agile Process

Already agile-ish?

Page 16: Improving your Agile Process

Already agile-ish?Which practices will help us and

why?

Page 17: Improving your Agile Process

Pick what feels good?

Page 18: Improving your Agile Process

Pick what feels good? Study your process and target

problem areas.

Page 19: Improving your Agile Process

Scientific Method!

Page 20: Improving your Agile Process

1. Gather Data 2. Form Hypothesis 3. Perform Experiment 4. Analyze Results

Page 21: Improving your Agile Process

1. Gather Data

Page 22: Improving your Agile Process

Quantify:good things (to increase)

Page 23: Improving your Agile Process

Quantify:good things (to increase)bad things (to decrease)

Page 24: Improving your Agile Process

The Big Bad: Bugs

Page 25: Improving your Agile Process

The Big Bad: Bugs(you are using a bug tracker, right?)

Page 26: Improving your Agile Process

“We wrote less bugs than the previous iteration. We

rule!” (Right?)

Page 27: Improving your Agile Process

V2.2 V2.3

# of Bugs 25 23

Page 28: Improving your Agile Process

V2.2 V2.3

# of Bugs 25 23

Team Size 8 5

Flu took out half the team!

Wait...What?

Page 29: Improving your Agile Process

Raw measurements must be put in context

Page 30: Improving your Agile Process

What is the “size” of an iteration?

Page 31: Improving your Agile Process

LOC?

Page 32: Improving your Agile Process

LOC?Doesn’t fit with agile

Hard to measure

Page 33: Improving your Agile Process

Hours/Days?

Page 34: Improving your Agile Process

Hours/Days?Fixed iterations

Hard to measure

Page 35: Improving your Agile Process

We use “Story Points”

Page 36: Improving your Agile Process

We use “Story Points”1, 2, 4, 8 per user story

Page 37: Improving your Agile Process

“Story Points” could be anything that:

Page 38: Improving your Agile Process

“Story Points” could be anything that:

changes w/ amount of work

Page 39: Improving your Agile Process

“Story Points” could be anything that:

changes w/ amount of workdetermined consistently

Page 40: Improving your Agile Process

“Story Points” could be anything that:

changes w/ amount of workdetermined consistently

easy to capture

Page 41: Improving your Agile Process

Bugs ÷ Size ==Defect Density

Page 42: Improving your Agile Process

V2.2 V2.3

Bugs 25 23

Story Points 14 10

Density 1.79 2.3

Page 43: Improving your Agile Process

Simple

Page 44: Improving your Agile Process

SimplePaints Broad Strokes:

Increase == Bad

Page 45: Improving your Agile Process

SimplePaints Broad Strokes:

Increase == BadAlmost enough to draw

conclusions

Page 46: Improving your Agile Process

With a small amount of additional meta-data...

Page 47: Improving your Agile Process

With a small amount of additional meta-data...

...you can gain incredible insights

Page 48: Improving your Agile Process

•Severity•Priority•Where Introduced: ‣bad requirements

‣bad programming

‣configuration/deployment

Page 49: Improving your Agile Process

1.0

1.3

1.6

1.9

2.2

V2.3 V2.4 V2.5

Defect Density: unclear requirementsDefect Density: Programming Errors

Page 50: Improving your Agile Process

1.000

1.375

1.750

2.125

2.500

V2.3 V2.4 V2.5

Defect Density - all types

Page 51: Improving your Agile Process

1.000

1.375

1.750

2.125

2.500

V2.3 V2.4 V2.5

Defect Density - all typesDefect Density - Blockers

Page 52: Improving your Agile Process

2. Form Hypothesis

Page 53: Improving your Agile Process

Metrics give us insightto focus on problem areas

Page 54: Improving your Agile Process

Form a hypothesis about problem areas and potential

solutions

Page 55: Improving your Agile Process

Agile practices are a goldmine

Page 56: Improving your Agile Process

Agile practices are a goldmine...if used sensibly in the context

of your process

Page 57: Improving your Agile Process

Example:“Increasing test coverage will

reduce our defect density”

Page 58: Improving your Agile Process

Example:“Pair Programming will reduce

‘bad programmer’ bugs”

Page 59: Improving your Agile Process

Example:“BDD will help clarify

requirements so we implement the right thing”

Page 60: Improving your Agile Process

3. Perform Experiment

Page 61: Improving your Agile Process

On the next iteration, test your hypothesis

Page 62: Improving your Agile Process

Start slowly;implement one change, chosen

for maximum impact

Page 63: Improving your Agile Process

4. Analyze Results

Page 64: Improving your Agile Process

The next iteration’s metrics should prove/disprove your

hypothesis

Page 65: Improving your Agile Process

Repeat until profit!

Page 66: Improving your Agile Process

This improvement method isn’t perfect

Page 67: Improving your Agile Process

This improvement method isn’t perfect

but it’s a GREAT start

Page 68: Improving your Agile Process

How has this helped OPOWER?

Page 69: Improving your Agile Process
Page 70: Improving your Agile Process

Iteration 1Half of the user stories not

being tracked :(

Page 71: Improving your Agile Process

Iteration 2Parts of the team using different

scale for story points :(

Page 72: Improving your Agile Process

Iteration 3Data looked good, baseline

established.

Page 73: Improving your Agile Process

Iteration 4Lots of deploy/config errorsOther numbers same/better

Page 74: Improving your Agile Process

Iteration 5Automated deployment »

deploy errors down.But: Defect Density was up

Page 75: Improving your Agile Process

Iteration 6Lowered velocity

Set up test coverage tracking(final results not in yet!)

Page 76: Improving your Agile Process

Scientific Method

Page 77: Improving your Agile Process

MeasureHypothesizeExperiment

Analyze


Recommended