Slide 1

Slide 1 text

How to do example mapping with learning from real-examples Yuya Kazama (@nihonbuson)

Slide 2

Slide 2 text

What is Example Mapping

Slide 3

Slide 3 text

Example Mapping Techniques for clarifying understanding of rules ● Red sticky notes (Questions) is many ○ Still have a lot to learn ● Blue sticky notes (Rules) is many ○ Story is big and complicated ○ We should divide the story ● One rule has many green sticky notes ○ The rules are too complicated ○ Should be divided into multiple blue sticky notes (rules) Japanese version: https://nihonbuson.hatenadiary.jp/entry/ExampleMapping https://cucumber.io/blog/bdd/example-mapping-introduction/

Slide 4

Slide 4 text

Participant in example mapping session

Slide 5

Slide 5 text

Three Amigos People from three standpoints gather and collaborate to confirm requirements People vector created by stories - www.freepik.com QA(Tester) Dev PO

Slide 6

Slide 6 text

Describe how to make an example mapping using real examples

Slide 7

Slide 7 text

● It's not important to use the practice of example mapping! ● It is important to have a conversation with stories, rules, examples, and questions separately, and record them separately! ● This time, we will also introduce the conversation that is the process of creating the example mapping. What I want to convey through real examples

Slide 8

Slide 8 text

Theme and Participants PO QA Display the number of people graph in a good way Dev

Slide 9

Slide 9 text

Add scale rule I want to display the graph of the number of people in a good way I don't understand what "good way" is. So, I'll ask you a lot of questions. The scale of the vertical axis changes with a good way based on the maximum value Change the scale based on the maximum value Display the number of people graph in a good way PO QA

Slide 10

Slide 10 text

Case of 1000 people For example, what happens if there are 1000 people in max value? Display the number of people graph in a good way QA

Slide 11

Slide 11 text

Case of 1000 people Since there are 4 scales, the scales are 250, 500, 750, 1000. For example, what happens if there are 1000 people in max value? Display the number of people graph in a good way QA PO

Slide 12

Slide 12 text

Add example 1000 Display the number of people graph in a good way Change the scale based on the maximum value For example, what happens if there are 1000 people in max value?

Slide 13

Slide 13 text

Add example 1000 -> 250,500 750,1000 Change the scale based on the maximum value Display the number of people graph in a good way For example, what happens if there are 1000 people in max value? Since there are 4 scales, the scales are 250, 500, 750, 1000.

Slide 14

Slide 14 text

Add another scale rule There are 4 scales Change the scale based on the maximum value Display the number of people graph in a good way For example, what happens if there are 1000 people in max value? Since there are 4 scales, the scales are 250, 500, 750, 1000. 1000 -> 250,500 750,1000

Slide 15

Slide 15 text

Case of 800 people Ah, what happens if there are 800 people in max value? Display the number of people graph in a good way

Slide 16

Slide 16 text

Add example There are 4 scales 1000 -> 250,500 750,1000 800 Change the scale based on the maximum value Ah, what happens if there are 800 people in max value? Display the number of people graph in a good way

Slide 17

Slide 17 text

Add example Ah, what happens if there are 800 people in max value? Again the scale is the same as for 1000 people case. Display the number of people graph in a good way There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Change the scale based on the maximum value

Slide 18

Slide 18 text

Case of 1500 people So is it the same result for 1500 people case? Display the number of people graph in a good way

Slide 19

Slide 19 text

Case of 1500 people So is it the same result for 1500 people case? In this case, the scale will be adjusted to 400,800,1200,1600. Display the number of people graph in a good way

Slide 20

Slide 20 text

Case of 1500 people So is it the same result for 1500 people case? 1500 Display the number of people graph in a good way There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Change the scale based on the maximum value

Slide 21

Slide 21 text

Add example In this case, the scale will be adjusted to 400,800,1200,1600. So is it the same result for 1500 people case? 1500 -> 400,800 1200,1600 Display the number of people graph in a good way There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Change the scale based on the maximum value

Slide 22

Slide 22 text

Add rule that not to exceed scale Why would it change in the case of 1500 people case? 1500 -> 400,800 1200,1600 Display the number of people graph in a good way There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Change the scale based on the maximum value

Slide 23

Slide 23 text

Add rule that not to exceed scale If the max scale is 1000, the data will go through on grath. Do not exceed the top mark Display the number of people graph in a good way There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Change the scale based on the maximum value 1500 -> 400,800 1200,1600 Why would it change in the case of 1500 people case?

Slide 24

Slide 24 text

Case of 1050 people Then, what happen 1050 people case? This is over 1000 people. Display the number of people graph in a good way

Slide 25

Slide 25 text

Add example Display the number of people graph in a good way 1500 -> 400,800 1200,1600 Change the scale based on the maximum value There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Do not exceed the top mark 1050 Then, what happen 1050 people case? This is over 1000 people.

Slide 26

Slide 26 text

Add example In that case, the max scale remains at 1000 because the data does not protrude outside the graph. Then, what happen 1050 people case? This is over 1000 people. Display the number of people graph in a good way 1500 -> 400,800 1200,1600 Change the scale based on the maximum value There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Do not exceed the top mark 1050 -> 250,500 750,1000

Slide 27

Slide 27 text

Change the rule Then, what happen 1050 people case? This is over 1000 people. In that case, the max scale remains at 1000 because the data does not protrude outside the graph. I found that it is important that the graph does not go out of the area. Display the number of people graph in a good way 1500 -> 400,800 1200,1600 Change the scale based on the maximum value There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 Do not exceed the top mark 1050 -> 250,500 750,1000

Slide 28

Slide 28 text

Change the rule In that case, the max scale remains at 1000 because the data does not protrude outside the graph. I found that it is important that the graph does not go out of the area. Then, what happen 1050 people case? This is over 1000 people. Display the number of people graph in a good way 1500 -> 400,800 1200,1600 Change the scale based on the maximum value There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 data does not go out of graph area 1050 -> 250,500 750,1000

Slide 29

Slide 29 text

Case of 600 people Now, consider a smaller value. What happen 600 people case? Display the number of people graph in a good way

Slide 30

Slide 30 text

Add example Change the scale based on the maximum value 600 Now, consider a smaller value. What happen 600 people case? Display the number of people graph in a good way

Slide 31

Slide 31 text

Add example 600 -> 200,400 600,800 250, 500, 750, 1000 scale makes the plot is smaller. So 200, 400, 600, 800 scale makes. Now, consider a smaller value. What happen 600 people case? Display the number of people graph in a good way Change the scale based on the maximum value

Slide 32

Slide 32 text

Case of 150 people Next, consider a more smaller value. What happen 150 people case? Display the number of people graph in a good way

Slide 33

Slide 33 text

Add example 600 -> 200,400 600,800 150 Display the number of people graph in a good way Change the scale based on the maximum value Next, consider a more smaller value. What happen 150 people case?

Slide 34

Slide 34 text

Add example 150 -> 40,80 120,160 Ah, 40,80,120,160 is just right. Display the number of people graph in a good way Change the scale based on the maximum value 600 -> 200,400 600,800 Next, consider a more smaller value. What happen 150 people case?

Slide 35

Slide 35 text

Discover the new rule Oh, yes. that's true. I see. Based on the examples, is the maximum value adjusted so that it is larger than the second from the top of the scale? Display the number of people graph in a good way

Slide 36

Slide 36 text

Discover the new rule Oh, yes. that's true. I see. Based on the examples, is the maximum value adjusted so that it is larger than the second from the top of the scale? Display the number of people graph in a good way Change the scale based on the maximum value 600 -> 200,400 600,800 150 -> 40,80 120,160

Slide 37

Slide 37 text

600 -> 200,400 600,800 Discover the new rule The largest data is plotted larger than the second from the top of the scale. Display the number of people graph in a good way 150 -> 40,80 120,160 I see. Based on the examples, is the maximum value adjusted so that it is larger than the second from the top of the scale? Oh, yes. that's true.

Slide 38

Slide 38 text

Case of 2 people Next, consider a much more smaller value. What happen 2 people case? Display the number of people graph in a good way

Slide 39

Slide 39 text

Add example The largest data is plotted larger than the second from the top of the scale. 2 Next, consider a much more smaller value. What happen 2 people case? Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160

Slide 40

Slide 40 text

Add example I think about 4 divisions, it's 0.5, 1, 1.5, 2. 2 -> 0.5,1 1.5,2 Next, consider a much more smaller value. What happen 2 people case? Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale.

Slide 41

Slide 41 text

Add question Oh, it might need to discuss. Even though we are dealing with the number of people, it feels strange to have a scale with decimal places. 2 -> 0.5,1 1.5,2 Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale.

Slide 42

Slide 42 text

Add question Do scale with decimal points appear? Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 2 -> 0.5,1 1.5,2 The largest data is plotted larger than the second from the top of the scale. Even though we are dealing with the number of people, it feels strange to have a scale with decimal places. Oh, it might need to discuss.

Slide 43

Slide 43 text

Resolve question We don't lose value by not reducing the number of scales, so we fix the number of scales at 4 this time. Changing the number of scales depending on the situation takes man-hours, so this time I want to leave it as it is. Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 2 -> 0.5,1 1.5,2 The largest data is plotted larger than the second from the top of the scale. Do scale with decimal points appear? Dev

Slide 44

Slide 44 text

Resolve question Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 2 -> 0.5,1 1.5,2 The largest data is plotted larger than the second from the top of the scale. Do scale with decimal points appear? -> Yes Changing the number of scales depending on the situation takes man-hours, so this time I want to leave it as it is. We don't lose value by not reducing the number of scales, so we fix the number of scales at 4 this time. Dev

Slide 45

Slide 45 text

Case of 0 people Exactly. I'm not really sure what to do. Also, what happens if there are 0 people? I can't imagine how the scale is adjusted. Display the number of people graph in a good way

Slide 46

Slide 46 text

Add question The largest data is plotted larger than the second from the top of the scale. What happens to the scale when the maximum value is 0? Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 2 -> 0.5,1 1.5,2 Do scale with decimal points appear? -> Yes Also, what happens if there are 0 people? I can't imagine how the scale is adjusted. Exactly. I'm not really sure what to do.

Slide 47

Slide 47 text

Summary of this example mapping Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale. 2 -> 0.5,1 1.5,2 Do scale with decimal points appear? -> Yes What happens to the scale when the maximum value is 0? There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 data does not go out of graph area 1500 -> 400,800 1200,1600 1050 -> 250,500 750,1000

Slide 48

Slide 48 text

What we can learn from example mapping artifacts

Slide 49

Slide 49 text

example mapping artifacts in this case Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale. 2 -> 0.5,1 1.5,2 Do scale with decimal points appear? -> Yes What happens to the scale when the maximum value is 0? There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 data does not go out of graph area 1500 -> 400,800 1200,1600 1050 -> 250,500 750,1000

Slide 50

Slide 50 text

example mapping artifacts in this case Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale. 2 -> 0.5,1 1.5,2 Do scale with decimal points appear? -> Yes What happens to the scale when the maximum value is 0? There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 data does not go out of graph area 1500 -> 400,800 1200,1600 1050 -> 250,500 750,1000 This could be a Spike Task. We should not start development unless we investigate and decide.

Slide 51

Slide 51 text

example mapping artifacts in this case Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale. 2 -> 0.5,1 1.5,2 Do scale with decimal points appear? -> Yes What happens to the scale when the maximum value is 0? There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 data does not go out of graph area 1500 -> 400,800 1200,1600 1050 -> 250,500 750,1000 These can be used for acceptance criteria. After confirming that these have been achieved, this story is changed to "Completed."

Slide 52

Slide 52 text

example mapping artifacts in this case Display the number of people graph in a good way 600 -> 200,400 600,800 150 -> 40,80 120,160 The largest data is plotted larger than the second from the top of the scale. 2 -> 0.5,1 1.5,2 Do scale with decimal points appear? -> Yes What happens to the scale when the maximum value is 0? There are 4 scales 1000 -> 250,500 750,1000 800 -> 250,500 750,1000 data does not go out of graph area 1500 -> 400,800 1200,1600 1050 -> 250,500 750,1000 These can be used as test case examples. Note: Not all of them are used as they are.

Slide 53

Slide 53 text

What I understand as seen There are few green sticky notes -> There may not be enough discussion or Implementation content may be self-explanatory

Slide 54

Slide 54 text

What I understand as seen There are many green sticky notes for one blue sticky notes. -> Since the rules are complicated, it may be better to divide them into multiple simple rules.

Slide 55

Slide 55 text

What I understand as seen There are many blue sticky notes →Since the story is complicated, it may be better to divide it into smaller stories.

Slide 56

Slide 56 text

What I understand as seen There are many red sticky notes -> We may not be ready to start developing.

Slide 57

Slide 57 text

Skills required for example mapping Designed by Rawpixel.com / Freepik

Slide 58

Slide 58 text

Skills required for example mapping ● Can consider in a concrete example ● Can go back and forth between abstraction and materialization ○ It is necessary when deriving a rule from a concrete example. ○ We can also use testing skills. ■ Equivalence partitioning ■ High-level test case and Low-level test case

Slide 59

Slide 59 text

Three Amigos specialties Three Amigos has different points of focus to be good at ● PO…Good at focusing on what I want to achieve with this Feature. ● Dev…Good at focusing on how this Feature can be realized. ● QA…Good at focusing on what I need to confirm to judge that this Feature is "completed" Note: These are just each strong point, not a divided responsibility.

Slide 60

Slide 60 text

Between abstraction and materialization Display the number of people graph in a good way

Slide 61

Slide 61 text

Between abstraction and materialization materialization 1500 -> 400,800 1200,1600 Display the number of people graph in a good way Then, what happen 1050 people case?

Slide 62

Slide 62 text

Between abstraction and materialization If the max scale is 1000, the data will go through on grath. So, the scale will be adjusted to 400,800,1200,1600. Then, what happen 1050 people case? 1500 -> 400,800 1200,1600 Display the number of people graph in a good way

Slide 63

Slide 63 text

Between abstraction and materialization Do not exceed the top mark abstraction Display the number of people graph in a good way 1500 -> 400,800 1200,1600 Then, what happen 1050 people case? If the max scale is 1000, the data will go through on grath. So, the scale will be adjusted to 400,800,1200,1600.

Slide 64

Slide 64 text

From example mapping to automation...

Slide 65

Slide 65 text

Flow to automation in BDD reference:『The BDD Books - Discovery』

Slide 66

Slide 66 text

Flow to automation in BDD e.g.Example mapping e.g.Writing automated test code e.g.Scenario arrangement by BRIEF principle reference:Keep your scenarios BRIEF reference:『The BDD Books - Discovery』

Slide 67

Slide 67 text

Don't think of automation tools first ● You will achieve significant improvements in your software development activities just by practicing discovery on its own. ● Using a BDD tool, or automating tests using Given/When/Then doesn't make your development approach BDD in the slightest. ● Don't focus on the automation tools until you’ve got good at collaborating across the team. 参考:『The BDD Books - Discovery』

Slide 68

Slide 68 text

Example mapping summary

Slide 69

Slide 69 text

Example mapping summary ● Able to distinguish between rules, specific examples, and questions in a story. ● It is important to think in terms of concrete examples and to go back and forth between abstraction and concreteness. ● Developers, POs, and QAs should work together to think about testing before implementing development, and recognize the product the team is aiming for. ● Discovery practices such as example mapping are important to consider before doing automated testing. ○ Instance mapping is not required. Other methods may be used as long as Discovery activities are possible.

Slide 70

Slide 70 text

References and real practices

Slide 71

Slide 71 text

References ● Introducing Example Mapping ○ Japanese translation ● The BDD Books - Discovery ○ Japanese translation

Slide 72

Slide 72 text

Real practices (These resources are Japanese text) ● QAエンジニアが実例マッピングを2ヶ月運用した話 ● miroを使って実例マッピングの一歩目を踏み出すの(仮) ● 新機能の開発前に行っている3つのプラクティスを紹介します ● 異世界に転生したら激レア職業のスクラム Developerだったので 手始めに Scrum Fest Osaka 2020 でラーニングしたスキルで リファインメント無双してみた There are other cases that have not been presentation but have been contacted individually.

Slide 73

Slide 73 text

The End