Using Value Stream Mapping to make the case for Acceptance Test Driven Development
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,929 views

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 ...

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.

Statistics

Views

Total Views
1,929
Views on SlideShare
1,831
Embed Views
98

Actions

Likes
1
Downloads
50
Comments
0

11 Embeds 98

http://winnipegagilist.blogspot.com 65
http://winnipegagilist.blogspot.ca 20
http://winnipegagilist.blogspot.nl 3
http://winnipegagilist.blogspot.in 2
http://winnipegagilist.blogspot.co.uk 2
http://winnipegagilist.blogspot.co.nz 1
http://www.blogger.com 1
http://winnipegagilist.blogspot.com.au 1
http://winnipegagilist.blogspot.se 1
http://winnipegagilist.blogspot.ch 1
http://winnipegagilist.blogspot.de 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Hypothesis Definitions Proof
  • The stuff that QA and the customer does before saying it is done. Functional Testing Acceptance Testing Not Unit Testing We’re not talking about TDD (Test Driven Development) today. Although related, TDD applies more to design, flexible code and unit testing. We’re talking about testing at a higher level – customer, QA, etc.
  • Happy customers Remove frustrations
  • Makes requirements less ambiguous – an example later GWT example shown, but lots of ways to do this – start with your existing test case formats and see what works for you. If you can’t do the rest of ATDD, do this! A great place to start.
  • Catches misunderstandings early so they aren’t duplicated throughout other user stories Improves communication between QA and developers and customers (whole team!) Reduces the time spent writing, reading, understanding, arguing items in a defect tracker When we test, we execute the examples together that we wrote earlier
  • To prove early that the system works as expected and eliminate the waste of rework Requires and investment time up front required to write the tests – pay off is later Regression testing effort disappears (click a button) Come to my presentation tomorrow for more details
  • To prove early that the system works as expected and eliminate the waste of rework Requires and investment time up front required to write the tests – pay off is later Regression testing effort disappears (click a button) Come to my presentation tomorrow for more details
  • example courtesy Allan Shalloway - The Role of Quality Assurance in Lean-Agile
  • An example using FitNesse (again, more tomorrow) We run this test against the code and see it passes!
  • Now with some overtime
  • Now with overtime and holiday hours
  • Show example in FitNesse here. This example is Green, the last example is Red, until we correct it. Add Given When Then to this
  • Putting it all together – this is what your executable requirements document now looks like . Complete traceability Push button testing and regression now exists Can replace all business logic in your requirements document Can replace much of your bug tracking effort
  • - Tell own FitNesse experience here
  • - Tell own experience here…
  • Isn’t Value Stream Mapping the same thing as creating a Swim Lane Process Map Diagram?
  • This looks too complicated
  • This looks too complicated
  • "Intellect - Do we fully utilize the talents of our associates?  Can developers do other tasks? Transportation (data/materials) - Do we re-key the same information into more than one system or database? Over-production - Do we code more features than are actually are used? Motion (people) - If we co-locate our work teams, would we spend less time chasing each other down? Defects - How much time/effort do we spend making changes or correcting errors? Over-processing - How many approval steps / sign offs would our customers be willing to pay for? Waiting - Is any value added to a project while it waits for resources? Inventory - How many different projects do we work on at the same time?"
  • Unrealistic deadlines Communication deficit . Scope changes Resource competition Uncertain dependencies Failure to manage risk Insufficient team skills Lack of accountability Customers and end-users are not engaged during the project. Vision and goals not well-defined
  • Miss Piggy’s definition of value was to sample one piece of cake, surprisingly not the whole cake. This means if the cake could be cut into 10 pieces at the most 9/10’s of a process step may be considered waste (Non Value Add). You’ll notice that it took ten minutes to gather all the requirements of the cake and in fact all of this time could have been value added, although perhaps spending more time upfront may have help improve the quality of the requirements.
  • Miss Piggy’s definition of value was to sample one piece of cake, surprisingly not the whole cake. This means if the cake could be cut into 10 pieces at the most 9/10’s of a process step may be considered waste (Non Value Add). You’ll notice that it took ten minutes to gather all the requirements of the cake and in fact all of this time could have been value added, although perhaps spending more time upfront may have help improve the quality of the requirements.
  • Miss Piggy’s definition of value was to sample one piece of cake, surprisingly not the whole cake. This means if the cake could be cut into 10 pieces at the most 9/10’s of a process step may be considered waste (Non Value Add). You’ll notice that it took ten minutes to gather all the requirements of the cake and in fact all of this time could have been value added, although perhaps spending more time upfront may have help improve the quality of the requirements.
  • Miss Piggy’s definition of value was to sample one piece of cake, surprisingly not the whole cake. This means if the cake could be cut into 10 pieces at the most 9/10’s of a process step may be considered waste (Non Value Add). You’ll notice that it took ten minutes to gather all the requirements of the cake and in fact all of this time could have been value added, although perhaps spending more time upfront may have help improve the quality of the requirements.
  • Unrealistic deadlines Communication deficit . Scope changes Resource competition Uncertain dependencies Failure to manage risk Insufficient team skills Lack of accountability Customers and end-users are not engaged during the project. Vision and goals not well-defined
  • Effective Communication –> Reduce Decision Making Delays Buy in
  • At this point we gather our volunteers and explain the experiment. Explain: First, the teams may not talk from this point forward QA Preferably acted out by a non-QA person (ask who are the testers, and pick a non-tester) Will accept/reject the end product Has a little leeway in accepting – see the ‘test cases’ provided for you. As long as it is pretty close, you can accept it. Aaron and Steve are the customers, so we’ll help you with that. If it isn’t right, please write up the defect on your paper using words or pictures and hand the defect log and the product back to the develop team to fix Ask the QA to person to write good defects – as a dev he/she will know how frustrating an unclear defect is Manufacturing team = Developers There will be a few steps to build the end product These steps are similar to the steps that you create to build software – the classes, database tables, UI, layers, etc. QA won’t test the individual classes and steps, but they will perform functional or acceptance testing on the final product You can pair program if you like, it is up to you to determine the best way to accomplish the task – but again, NO TALKING Team 1 Will not use ATDD – they will test at the end and to simulate this they will not see the ‘test cases’ that QA owns Team 2 Will use ATDD – they will create their test case at the beginning to simulate the effort of automating the tests up front and they will have access to the ‘test cases’ throughout development Both teams Reminder – no talking Reminder – no fighting or blaming – everyone is doing the best they can with what they have been given Don’t copy the other team’s product, the requirements are similar, but the test cases may not be the same Try to be as successful as possible without cheating If you have a defect, don’t throw out the product and start fresh, but fix the defective product We’ll be timing both teams and then examine the results through a value stream before we debrief with questions
  • Once the exercise is done: First: Ask Questions (time box this) Second: Fill out the value stream maps
  • Now show and walk through the two ATDD vs non ATDD value stream maps

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 Presentation Transcript

  • 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
  • A SCIENCE EXPERIMENT
  • To ATDD or HYPOTHESIS: not to ATDD
  • DEFINITIONS: Acceptance Testing Is...
  • What is Acceptance Test Driven Development? Goal: To build the right thing the first time.
  • 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 >
  • TEST AS SOON AS POSSIBLE in collaboration with the developers and customers 2. To do this we:
  • AUTOMATE our acceptance tests To do this we: 3.
  • AN EXAMPLE: Requirement: Bring home something small from Europe What I brought: What she wanted:
  • 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:
  • (40*$20) = $800.00 a standard wage per hour for the first 40 hours worked
  • 1.5 times their wage for each hour after the first 40 hours (40*$20) + (5*$20*1.5) = $950.00
  • 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.5 ) = $1,520.00 *1.5 2 times their wage for each hour worked on Sundays and holidays
  • Executable Specifications Credit: “The Role of Quality Assurance in Lean-Agile” – Allan Shalloway
  • “ 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”
  • Credit – Janet Gregory
  • DEFINITIONS: Value Stream Mapping Is...
  • 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.
  • When Would I Use Value Stream Mapping When you are looking to understand and improve a process.
  • A Question to the Audience By a show of hands Who is familiar with 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.
    Swim Lane Process Mapping
  • A Question to the Audience By a show of hands Who is familiar with Value Stream Maps?
  •  
      • +’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
  •  
  •  
  • This looks complicated…
      • 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
    • 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 Involvement How Do I Create a Simplified Value Stream Map?
    • 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 Involvement How Do I Create a Simplified Value Stream Map?
    • General Principle:
    • Count what really matters
    • Value Added Time vs. Non Value Added Time
    • Throughput delivered to the customer
  • 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.
    • 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?
  • 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.
  • 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.
  • 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.
    • 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
    • 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
  • 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.
  • Let’s Create a Simplified Value Stream Map Step 2a): Count the total time for each step
  • Let’s Create a Simplified Value Stream Map Step 2b): Count Value Added Time and Non Value Added Time
  • Let’s Create a Simplified Value Stream Map
  • 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.
  • 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.
  • THE EXPERIMENT
    • 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!
  • CONCLUSIONS
  • As promised, a value streamed story of marital bliss
    • Write Examples instead of requirements
    • Test ASAP with Team
    • Automate Tests
    TO SUMMARIZE ATDD:
    • Define Value for the stakeholders
    • Keep It Simple: Capture the flow of value
    • Count value add vs non value add
    VSM: http://www.slideshare.net/SteveRogalsky/using-value-stream-mapping-to-make-the-case-for-acceptance-test-driven-development steve.rogalsky@protegra.com @srogalsky winnipegagilist.blogspot.com [email_address]