using value stream mapping to make the case for acceptance test driven development

51
Using Value Stream Mapping to make the case for Acceptance Test Driven Development Brought to you by: Aaron “I value streamed my marriage proposal” Nelson and Steve “I value streamed our laundry process” Rogalsky @srogalsky winnipegagilist.blogspot.com

Upload: steve-rogalsky

Post on 29-Nov-2014

2.107 views

Category:

Technology


1 download

DESCRIPTION

Acceptance Test Driven Development (ATDD) is a movement within agile to improve the quality of and success of our projects by changing how we capture our requirements and by changing how and when we test. Borrowing from the Lean toolbox, we’ll use Value Stream Mapping (VSM) to compare traditional test & fix cycles to ATDD used in an agile context. Participants will be given an introduction to ATDD and VSM and will participate in creating and analyzing two Value Stream Maps. Target audience includes all members of the team including Testers, PMs, Developers and Analysts. Caution: Participants are warned that using VSM to map out your partner’s wasted efforts in completing household chores will not cause the harmony you imagined it would. For more of the tragic details, attend the session.

TRANSCRIPT

Page 1: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Brought to you by:

Aaron “I value streamed my marriage proposal” Nelson and

Steve “I value streamed our laundry process” Rogalsky

@srogalsky winnipegagilist.blogspot.com

Page 2: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

A SCIENCE EXPERIMENT

Page 3: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

To ATDD orHYPOTHESIS:

not to ATDD

Page 4: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

DEFINITIONS:

Acceptance Testing Is...

Page 5: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

What is Acceptance Test Driven Development?

Goal: To build the right thing the first time.

Page 6: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

WRITE EXAMPLES (Acceptance Tests)(up front but not UP FRONT)

instead of requirements

SPECIFICATION BY EXAMPLE

To do this we:

1.Given muppet <Animal> When measuring <Craziness> Then return <10>

Given muppet <Animal> When <Drumming> Then return <Phenomenal Skillz>

Given muppet <Animal> When <talking> Then return <Grunt>

Page 7: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

TEST AS SOON AS POSSIBLE

in collaboration with the developers and customers

2.To do this we:

Page 8: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

AUTOMATE our acceptance tests

To do this we:

3.

Page 9: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

AN EXAMPLE:

Requirement: Bring home something small from Europe

What I brought: What she wanted:

Page 10: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

ANOTHER EXAMPLE

User Story: As an employee I want to receive overtime pay

a standard wage per hour for the first 40 hours worked

1.5 times their wage for each hour after the first 40 hours

2 times their wage for each

hour worked on Sundays and

holidays

For each week, hourly employees are paid:

Page 11: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

(40*$20) = $800.00

(40*$20) = $800.00

a standard wage per hour for the first 40 hours worked

Page 12: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

1.5 times their wage for each hour after the first 40 hours

(40*$20) + (5*$20*1.5) = $950.00

(40*$20) + (5*$20*1.5) = $950.00

Page 13: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

2 times their wage for each

hour worked on Sundays and

holidays

(40*$20) + (8*$20*2) = $1,360.00

(40*$20) + (8*$20*2) = $1,360.00

Page 14: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

(40*$20) + (8*$20*2 *1.5) = $1,520.00

(40*$20) + (8*$20*2 *1.5) = $1,520.00

*1.5

*1.5

2 times their wage for each

hour worked on Sundays and

holidays

Page 15: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Executable Specificatio

ns

Executable Specificatio

ns

Credit: “The Role of Quality Assurance in Lean-Agile” – Allan Shalloway

Page 16: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

“An attempt to avoid this ambiguity by writing everything down often leads to a document of the type Winston Churchill was working on before he was Prime Minister. Mr. Churchill described it as follows: ‘this document, by its very size, ensures that it will never be read.’”

- Allan Shalloway in “The Role of Quality Assurance in Lean-Agile”

Page 17: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Credit – Janet Gregory

Page 18: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

DEFINITIONS:

Value Stream Mapping Is...

Page 19: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

What is Value Stream Mapping?

Value Stream Mapping is a tool, originating from lean manufacturing used to visually analyze the flow of materials and information currently required to bring a product or service to a consumer.

Page 20: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

When Would I Use Value Stream Mapping

When you are looking to understand and improve a process.

Page 21: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

A Question to the Audience

By a show of handsWho is familiar with Swim Lane Process

Maps?

Page 22: Using Value Stream Mapping to make the case for Acceptance Test Driven Development
Page 23: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

+’s- Describes actors in the process and what steps they

perform- Visually shows hand-offs. Hand offs could be cues for

wastes (Excess transportation, motion, defects)- Minimal symbols to learn makes it easier for anyone to

reproduce/standardize.

-’s- Does not quantify other wastes (inventory) or quantify the

level of value added per step; overall.- Can have a tendency to put focus or blame on area’s or

specific people. This can create resistance and reluctance to fully divulge information.

Swim Lane Process Mapping

Page 24: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

A Question to the Audience

By a show of handsWho is familiar with Value Stream Maps?

Page 25: Using Value Stream Mapping to make the case for Acceptance Test Driven Development
Page 26: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

+’s- Put focus on process problem, not people or area’s. This can create

better buy-in and input to unite a team to solve the problem. This will often lead to improved chances of sustaining changes to the process.

- Easier to start, middle, end of process. Mapping is presented more sequential for the audience to follow.

- Quantifies and pinpoints areas of waste in the process, however, type of waste may have to be determined.

- Quantifies the level of value added per step; and overall.

-’s- May not describe actors in the process and what steps they perform- May not visually shows hand-offs. Hand offs could be cues for wastes

(Excess transportation, motion, defects)- Increased number of symbols to learn makes it difficult and confusing for

anyone to reproduce/standardize or comprehend.- Belief they are only applicable to manufacturing industry

Value Stream Maps

Page 27: Using Value Stream Mapping to make the case for Acceptance Test Driven Development
Page 28: Using Value Stream Mapping to make the case for Acceptance Test Driven Development
Page 29: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

This looks complicated…

Page 30: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Value Stream Maps+’s•Put focus on the process problem, not people or area’s. This can create better buy-in and input to unite a team to solve the problem. This will often lead to improved chances of sustaining changes to the process.•Easier to see the start, middle, end of process. Mapping is presented more sequential for the audience to follow.•Quantifies and pinpoints areas of waste in the process, however, type of waste may have to be determined.•Quantifies the level of value added per step; and overall.

-’s•May not describe actors in the process and what steps they perform•May not visually shows hand-offs. Hand offs could be cues for wastes (Excess transportation, motion, defects)•Increased number of symbols to learn makes it difficult and confusing for anyone to reproduce/standardize or comprehend.

Swim Lane Process Maps+’s•Describes actors in the process and what steps they perform•Visually shows hand-offs. Hand offs could be cues for wastes (Excess transportation, motion, defects)•Minimal symbols to learn makes it easier for anyone to reproduce/standardize.

-’s•Does not quantify other wastes (inventory) or quantify the level of value added per step; overall.•Can have a tendency to put focus or blame on area’s or specific people. This can create resistance and reluctance to fully divulge information.

The Solution: Simplified Value Stream Mapping - Picking the best of both approaches

Page 31: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

• Define the Process- Stakeholders- Value/Success Criteria- Input and Output

• Map the Process Steps and Count what is important

• Identify Wastes/Opportunities for Improvement

Continuous Stakeholder Involvemen

t

Continuous Stakeholder Involvemen

t

How Do I Create a Simplified Value Stream Map?

Page 32: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

• Define the Process- Stakeholders- Value/Success Criteria- Input and Output

• Map the Process Steps and Count what is important

• Identify Wastes/Opportunities for Improvement

Continuous Stakeholder Involvemen

t

Continuous Stakeholder Involvemen

t

How Do I Create a Simplified Value Stream Map?

Page 33: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

General Principle:

Count what really matters

•Value Added Time vs. Non Value Added

Time

•Throughput delivered to

the customer

Page 34: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Count… Ahahah…The total amount of time, then determine what time is Value Added vs. Not Added in every step

• Determine what value is in the eyes of the stakeholder.• Value is determine by the customer: Give me what I

want, when I want it, at a price I am willing to pay for.

Page 35: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

• Answer the question: Would the customer be willing to pay for this time?

• Waste can take on many shapes. See if you can identify wastes in…- Intellect- Transportation (data/materials) - Over-production - Motion (people) - Defects - Over-processing - Waiting - Inventory

How do I know when there is non value add time?

Page 36: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Count…Ahahah…The Throughput

• How quickly can one quality unit be produced which can be immediately consumed by the customer?

• Question: If you have produced 10 units but can only have requirements for 5, are the 5 additional units waiting to be consumed adding value?

• Answer: No, you have tied up cash that could be used elsewhere to produce more value.

Page 37: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Review: Key Points to Remember

• Define the stakeholders and their definition of value

• Make the flow easy to follow with your eyes and easy to comprehend for all individuals.

• Count The Total Time then Determine what is Value Added Time and Non Value Added Time

• Count Throughput, but remember high throughput is only of value if all of it can be consumed by a customer.

Page 38: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

An Example

• Miss Piggy is requiring a wedding cake for her upcoming wedding and is presently looking for the right bakery to fulfill her needs.

Page 39: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

• When Miss Piggy arrives at the Swedish Chef’s door, he immediately states he can fulfill her needs and asks what she desires in a cake

Page 40: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

• After a quick discussion to determine what Miss Piggy desires, the Swedish Chef goes out to the market, buys all the ingredients, whips up the recipe, bakes the cake in the oven, ices the cake, and then serves it to Miss Piggy.

• When Miss Piggy takes the cake she has one bite and says the cake is perfect, places an order, then leaves the bakery.

• The Chef puts the cake in his window with the hopes he can sell all the additional slices but nobody purchases a slice

• Let’s Review What Happened

Page 41: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Let’s Create a Simplified Value Stream Map

Step 1: Make the flow easy to follow with your eyes and easy to comprehend for all individuals.

Page 42: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Let’s Create a Simplified Value Stream Map

Step 2a): Count the total time for each step

Gather Ingredients

Gather Requirements

Mix Ingredients Bake

CakeApply Icing Scrap

Excess Cake

Total Time: 10 mins Total Time: 10 mins Total Time: 10 mins Total Time: 60 mins Total Time: 10 mins

Eat Cake

Total Time: 5 mins

Total Time: 105 mins

Page 43: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Let’s Create a Simplified Value Stream Map

Step 2b): Count Value Added Time and Non Value Added Time

Gather Ingredients

Gather Requirements

Mix Ingredients Bake

CakeApply Icing Scrap

Excess CakeTotal Time: 10 mins

VA: 10NVA: 0

Total Time: 10 minsVA: 1

NVA: 9

Total Time: 10 minsVA: 6

NVA: 4

Total Time: 60 minsVA: 50

NVA: 10

Total Time: 10 minsVA: 1

NVA: 9

Eat Cake

Total Time: 5 minsVA: 5

NVA: 0

Total Time: 105 mins

Page 44: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Let’s Create a Simplified Value Stream Map

Gather Ingredients

Gather Requirements

Mix Ingredients Bake

CakeApply Icing Scrap

Excess CakeTotal Time: 10 mins

VA: 10NVA: 0

Total Time: 10 minsVA: 1

NVA: 9

Total Time: 10 minsVA: 6

NVA: 4

Total Time: 60 minsVA: 50

NVA: 10

Total Time: 10 minsVA: 1

NVA: 9

Eat Cake

Total Time: 105 minsVA: 73 69%NVA: 32 31%

Total Time: 5 minsVA: 5

NVA: 0

Page 45: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Key Points to Remember

• Define the stakeholders and their definition of value

• Make the flow easy to follow with your eyes and easy to comprehend for all individuals.

• Count The Total Time then Determine what is Value Added Time and Non Value Added Time

• High throughput is only of value if all of it can be consumed by a customer.

Page 46: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Other Key Points and Benefits Not Highlighted in the Exercise

• Go see the process with your own eyes, walk through it.• Involve the people who do the work to help you map the

process.

Page 47: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

THE EXPERIMENT

Page 48: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

Steps:• Fold the paper in half• Open the folded paper up and make two triangle folds for the ‘nose’ of the plane• Re-fold the plane in half and fold two wings (one on each side…)• Finally, fold two wing flaps

Airplane Factory!

Page 49: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

CONCLUSIONS

Page 50: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

As promised, a value streamed story of marital bliss

Page 51: Using Value Stream Mapping to make the case for Acceptance Test Driven Development

1. Write Examples instead of requirements

2. Test ASAP with Team

3. Automate Tests

1. Write Examples instead of requirements

2. Test ASAP with Team

3. Automate Tests

TO SUMMARIZE

ATDD:ATDD:1. Define Value for

the stakeholders2. Keep It Simple:

Capture the flow of value

3. Count value add vs non value add

1. Define Value for the stakeholders

2. Keep It Simple: Capture the flow of value

3. Count value add vs non value add

VSM:VSM:

http://www.slideshare.net/SteveRogalsky/using-value-stream-mapping-to-make-the-case-for-acceptance-test-driven-development

[email protected] @srogalsky winnipegagilist.blogspot.com

[email protected]