65
The 7 Deadly Sins of Almost Being Agile Bob Hartman Richard Lawrence Presentation Copyright © 2009, Agile For All, LLC. and Humanizing Work. All rights reserved. www.agilecooperative.com

The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

The 7 Deadly Sins of Almost Being Agile

Bob HartmanRichard Lawrence

Presentation Copyright © 2009, Agile For All, LLC. and Humanizing Work. All rights reserved.

www.agilecooperative.com

Page 2: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Logistics

• Please turn cell phones, pagers, PDA’s, etc to the “stun yourself” setting (rather than the “annoy everyone else” setting)

• We will take a 30 minute break after 1.5 hours

• Please ask questions when they come up rather than waiting

• Be prepared to participate! This presentation requires a lot of work on your part.

Page 3: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

About us…

www.agilecooperative.com

Page 4: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

About us…

About you…

Page 5: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

About thissession…

Page 6: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Our Fictional Team

Page 7: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Sally the Project Manager

Page 8: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Bill the Business Analyst

Page 9: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Tom the Product Manager

Page 10: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

4 Developers

Page 11: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

2 Testers

Page 12: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

The First Agile Project

6 months

Expected 25 features

Delivered 10 features

3 “most important” cut

Prior release 72 defects

Agile release 70 defects

Customers unhappy

Page 13: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

The Second Agile Project

6 months

Expected 25 features

Delivered 8 features

5 “most important” cut

Prior release 70 defects

This release 79 defects

Customers VERY unhappy

Page 14: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Fixing the W-Agilists

Enter Cindi, director of the company PMO

Page 15: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

The Thinking Process

Page 16: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Example cloud from Clarke Ching

Page 17: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #1 - Lack of Meaningful Feedback Loops

• We are too busy to stop working!

• Daily stand-ups are useless, let’s just use a single weekly status meeting.

• When we ask people for feedback they don’t show up or don’t participate anyway.

• We aren’t really sure why we would want feedback or how we would use it anyway.

Page 18: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

PRACTICE Undesirable Effects

1. Building wrong products

2. Building the product wrong

3. No improvement

4. Lack of visibility

5. Lack of trust

6. Key people out of the loop

What are some of the undesirable effects the W-Agilists would see from the lack of feedback loops in their process?

Page 19: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 20: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #2 - No incremental deliveries of software

0%10%20%30%40%50%60%70%80%90%

100%

Not Started

Started

Needs Integration

Integrated

Page 21: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

PRACTICE Causes

1. Not using iterations at all

2. Building by architecture instead of value

3. Can’t make stories small

4. We’ve always done it that way

5. Takes time we don’t have

6. Sometimes need to integrate with other teams that aren’t agile

What might be some of the main causes of not building software iteratively (remember, this is supposed to be an agile team!)

Page 22: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 23: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Our story continues…

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Iteration 1 Iteration 2 Iteration 3

Not Started

In Progress

Completed

Page 24: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Looking deeper…

0

20

40

60

80

100

120

Day 1-3 Day 4-6 Day 7-10

Developer

Tester

DBA

Page 25: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #3 - Silo’d Teams

1. Deep domain knowledge is best

2. Experts better than generalists

3. Work will be evenly distributed

4. Organizational structure cannot be changed

5. Optimizing specialties optimizes the whole

What assumptions cause many organizations to deliberately use silo’dteams?

Page 26: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 27: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

The Evaporating Cloud

A tool for articulating and breaking conflicts.

Page 28: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Photo by ngould on sxc.hu

Page 29: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Photo by ngould on sxc.hu

resistanceto change?

Page 30: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Photo by ngould on sxc.hu

malice?incompetence?

Page 31: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Photo by ngould on sxc.hu

CONFLICT

Page 32: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do X. Don’t do X.

Spend our

money on Y.

Spend our

money on Z.

Page 33: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do X.

Don’t do X.

Page 34: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Page 35: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Page 36: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

Page 37: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

Page 38: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

P1R1: In order to avoid introducing defects, we must do pair programming because…

Page 39: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

P1R1: In order to avoid introducing defects, we must do pair programming because…

• Pair programming helps avoid introducing defects.•

Page 40: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

P1R1: In order to avoid introducing defects, we must do pair programming because…

• Pair programming helps is the ONLY way to avoid introducing defects.•

Page 41: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

P1R1: In order to avoid introducing defects, we must do pair programming because…

• Pair programming helps is the ONLY way to avoid introducing defects.• Pair programming is better at avoiding defects than any other technique we know.• Pair programming does othergood things for us.•

Page 42: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

P2R2: In order to maximize productivity, we must not do pair programming because…

• Pair programming ALWAYS reduces productivity.• etc. •

Page 43: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Earn moneyEat

Assumptions:•Buying food with money is the ONLY way to eat. •The ONLY way to get money is to earn it.

How else could we eat without earning money?

Page 44: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

How else could we avoid introducing defects without doing pair programming?

How else could we maximize productivityand do pair programming?

How could we do and not do pair programming?

Page 45: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Back to Our Fictional Team

Page 46: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Digging deeper in an iteration…

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Day 1-3 Day 4-6 Day 7-10

Not Started

In Progress

Completed

Page 47: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #4 - Too much work in process

Work on one thing at a time

vs.

Work on many things

in parallel.

Using the evaporating cloud from the Thinking Process, let’s solve this conflict together.

Page 48: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Work on one thing at a

time.

Work on many things in parallel.

Ensure we deliver max

value.

Get everything

done.

Make stakeholder

happy.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

Page 49: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 50: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Presenting an Evaporating Cloud

Page 51: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

First, build the whole cloudAssumptions:• Lorem ipsum dolor sit amet, consectetur adipiscing elit.• Integer id libero vitae dolor ornare condimentum pellentesque ut mauris.• Duis iaculis metus ut arcu tempor lobortis.• Integer interdum pellentesque orci, sit amet sollicitudin lectus vehicula nec.

Assumptions:• Nunc elementum est a nunc luctuseuismod.

Assumptions:• Aenean vehicula lacinia lacus, sed hendrerit erat imperdiet quis.• Fusce at tortor in orci convallis porttitor sit amet non magna.• Aenean sit amet lacus nec justo consequat auctor.

Assumptions:• Duis pulvinar orci at eros pharetra at cursusnulla ultrices.• Pellentesque et eros at quam porttitor tempus id et leo.

Assumptions:• Aliquam vitae sem id metus imperdiet commodo non nec arcu.

INJECTION #1

INJECTION #2

INJECTION #3

Page 52: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Do pair programming.

Don’t do pair programming.

Avoid introducing

defects.

Maximize productivity.

Deliver fast.

PREREQUISITE #1

PREREQUISITE #2

REQUIREMENT #1

REQUIREMENT #2

OBJECTIVE

Then, redo the assumptions and injections together

Assumptions:•

Assumptions:•

Assumptions:•

Assumptions:•

Assumptions:•

Page 53: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #5 - Lack of customer voice

Page 54: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Discuss

What are the

effects of lack

of customer

voice?

Page 55: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

PRACTICE Lack of customer voice

Engage the customer

vs.

Don’t engage the customer

Create an evaporating cloud in your group

Page 56: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 57: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #6 - Unrealistic deadlines

Page 58: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Discuss

What are the

effects of lack

of unrealistic

deadlines?

Page 59: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 60: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

DEADLY SIN #7 - Manual testing taking too long

Sprint 1 Sprint 2 Sprint 3 Sprint 4

New feature testing

Sprint 5

Testing that doesn’t happen,

but shouldRegression testing

Testing capacity

Page 61: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Automate and get regression tests for (nearly) free .

Sprint 1 Sprint 2 Sprint 3 Sprint 4

New feature testing

Sprint 5

Automated tests that are now

regression tests

Testing capacity

Page 62: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Phrase to remember

Page 63: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

PRACTICE Unrealistic Deadlines OR Adopting Automated Testing

Adopt automated testing vs. Don’t adopt…

or

Say “yes” to all customer demands vs. Say “no” to some…

Create an evaporating cloud in your group.

Page 64: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Recap of the 7 Deadly Sins

1. Missing feedback loops

2. Not building in iterations – large scale integrations

3. Silo’d teams

4. Too much work-in-progress (WIP)

5. Lack of customer voice

6. Unrealistic deadlines

7. Over-reliance on manual testing

Page 65: The 7 Deadly Sins of Almost Being Agile · Recap of the 7 Deadly Sins 1. Missing feedback loops 2. Not building in iterations –large scale integrations 3. Silo’dteams 4. Too much

Questions?

www.richardlawrence.info

[email protected]

303-895-7688

www.agilebob.com

[email protected]

303-766-0917