1 00:00:06,732 --> 00:00:08,077 - Now we're gonna talk about how to 2 00:00:08,077 --> 00:00:10,861 apply your testing mindset. 3 00:00:10,861 --> 00:00:15,806 We want to avoid the waterfall style of big design up front. 4 00:00:15,806 --> 00:00:19,244 At the same time, we want to know the features 5 00:00:19,244 --> 00:00:21,986 that the business needs and how they should be developed. 6 00:00:21,986 --> 00:00:25,005 We just don't want to go into quite so much detail. 7 00:00:25,005 --> 00:00:27,824 We're going to apply our testing mindset to help create 8 00:00:27,824 --> 00:00:32,193 the shared understanding of features before coding begins. 9 00:00:32,193 --> 00:00:34,278 Small differences and assumptions 10 00:00:34,278 --> 00:00:36,724 can cause big misperceptions. 11 00:00:36,724 --> 00:00:40,234 You've probably seen the pictures of the classic tire swing 12 00:00:40,234 --> 00:00:43,302 metaphor where different members of the team 13 00:00:43,302 --> 00:00:46,330 have a different vision of that swing in the tree. 14 00:00:46,330 --> 00:00:48,821 They might have a rope hanging from branches on either side 15 00:00:48,821 --> 00:00:51,799 of the trunk or three ropes instead of two. 16 00:00:51,799 --> 00:00:54,414 We have to collaborate to build shared understandings 17 00:00:54,414 --> 00:00:57,688 so that we really know that what we wanted was a tire 18 00:00:57,688 --> 00:01:00,142 hanging from a rope in that tree. 19 00:01:00,142 --> 00:01:03,287 We apply our testing mindset in all of the meetings 20 00:01:03,287 --> 00:01:05,409 that we go to, backlog refinement, 21 00:01:05,409 --> 00:01:09,837 story readiness workshops, iteration planning meetings. 22 00:01:09,837 --> 00:01:13,023 A testing superpower that we have is to bring the right 23 00:01:13,023 --> 00:01:15,723 people together for a discussion. 24 00:01:15,723 --> 00:01:18,384 Iteration planning meetings, for example, can be frustrating 25 00:01:18,384 --> 00:01:21,986 if people didn't start out kind of on the same page 26 00:01:21,986 --> 00:01:23,872 with their understanding about the stories 27 00:01:23,872 --> 00:01:26,045 that we're about to discuss. 28 00:01:26,045 --> 00:01:28,835 Try pre-planning meetings with fewer people. 29 00:01:28,835 --> 00:01:31,457 Janet and I have a concept we call the Power of Three 30 00:01:31,457 --> 00:01:34,609 where we get a product owner or other business stakeholder, 31 00:01:34,609 --> 00:01:37,514 a developer, and a tester together to talk about 32 00:01:37,514 --> 00:01:39,084 a story or a feature. 33 00:01:39,084 --> 00:01:41,991 George Dinwiddie calls us the Three Amigos and it's more of 34 00:01:41,991 --> 00:01:45,758 an optimal-sized group for communication. 35 00:01:45,758 --> 00:01:49,113 We might bring in an additional person or two 36 00:01:49,113 --> 00:01:51,322 such as a designer or a database expert, 37 00:01:51,322 --> 00:01:54,790 whoever we need, but not a huge group of people. 38 00:01:54,790 --> 00:01:56,788 We can ask business stakeholders 39 00:01:56,788 --> 00:01:59,563 for business rules and examples. 40 00:01:59,563 --> 00:02:02,760 We definitely want them to give us concrete examples. 41 00:02:02,760 --> 00:02:05,823 And we want to focus on the values of the customer. 42 00:02:05,823 --> 00:02:07,620 What's the goal of each story? 43 00:02:07,620 --> 00:02:08,649 Leave the edge cases. 44 00:02:08,649 --> 00:02:10,862 We can always think of boundary conditions to test, 45 00:02:10,862 --> 00:02:14,878 edge cases to test, but depending on the risks in the domain 46 00:02:14,878 --> 00:02:17,903 where we're working, we can probably leave those for later. 47 00:02:17,903 --> 00:02:21,095 The outcomes of these small meetings can get the larger 48 00:02:21,095 --> 00:02:24,573 team on the same page to do more planning. 49 00:02:24,573 --> 00:02:28,128 If you're a new team, you might try to bring in 50 00:02:28,128 --> 00:02:31,068 a trained facilitator to help you with things like 51 00:02:31,068 --> 00:02:34,430 specification workshops to do these activities 52 00:02:34,430 --> 00:02:36,228 and have these conversations. 53 00:02:36,228 --> 00:02:38,154 Another superpower that testers have 54 00:02:38,154 --> 00:02:40,363 is their questioning ability. 55 00:02:40,363 --> 00:02:44,125 When we start each new feature or new release or project, 56 00:02:44,125 --> 00:02:47,065 by thinking about testing, how we're gonna test it, 57 00:02:47,065 --> 00:02:49,232 that's how we build quality in. 58 00:02:49,232 --> 00:02:53,399 We avoid defects, we avoid unnecessary bling, scope creep. 59 00:02:54,417 --> 00:02:58,425 We can start with a minimal thin slice of functionality 60 00:02:58,425 --> 00:03:01,405 that we can get feedback from our end users 61 00:03:01,405 --> 00:03:05,413 and from our business and improve our product incrementally. 62 00:03:05,413 --> 00:03:08,559 We avoid wasting time delivering software that doesn't 63 00:03:08,559 --> 00:03:10,846 actually solve the business problem. 64 00:03:10,846 --> 00:03:12,569 We're trying to solve problems for the business, 65 00:03:12,569 --> 00:03:15,271 for the customer, and for the end user. 66 00:03:15,271 --> 00:03:17,277 Let's go back to our case study 67 00:03:17,277 --> 00:03:19,119 that we're using for examples here. 68 00:03:19,119 --> 00:03:22,150 We're again going to use the pet salon. 69 00:03:22,150 --> 00:03:24,198 The pet salon's website is pretty basic. 70 00:03:24,198 --> 00:03:26,526 Currently it just describes the services available 71 00:03:26,526 --> 00:03:30,240 and some information about the groomers and times 72 00:03:30,240 --> 00:03:32,347 of opening, things like that. 73 00:03:32,347 --> 00:03:35,297 And so currently, customers have to call to book 74 00:03:35,297 --> 00:03:37,959 their appointments, which interrupts the groomer's work, 75 00:03:37,959 --> 00:03:39,679 and they want to save that time. 76 00:03:39,679 --> 00:03:43,846 So, what the pet salon wants is some basic way for dog 77 00:03:43,846 --> 00:03:48,059 and cat owners to book basic services online 78 00:03:48,059 --> 00:03:51,169 and get an email confirmation about their appointment. 79 00:03:51,169 --> 00:03:55,190 So, as the delivery team, we got together with our customers 80 00:03:55,190 --> 00:03:57,558 at the pet salon and did a story map. 81 00:03:57,558 --> 00:03:59,806 This is something we learned from Jeff Patton, 82 00:03:59,806 --> 00:04:02,873 who has a wonderful book on user story mapping. 83 00:04:02,873 --> 00:04:05,768 It's a great way to think about the capabilities 84 00:04:05,768 --> 00:04:07,441 that you just really wanted. 85 00:04:07,441 --> 00:04:10,186 So we got everyone together and started thinking about 86 00:04:10,186 --> 00:04:12,561 what would our users do when they're thinking about 87 00:04:12,561 --> 00:04:15,097 booking an appointment for their pet. 88 00:04:15,097 --> 00:04:18,284 It allows us to look at how we can give our customers 89 00:04:18,284 --> 00:04:21,189 what they want and still meet our goals, 90 00:04:21,189 --> 00:04:24,047 such as bringing in revenue. 91 00:04:24,047 --> 00:04:26,503 And it helps us decide what we really want 92 00:04:26,503 --> 00:04:27,819 to get done first. 93 00:04:27,819 --> 00:04:29,745 How can we prioritize the features, 94 00:04:29,745 --> 00:04:32,727 how can we divide up our releases? 95 00:04:32,727 --> 00:04:35,922 It also allows us to start testing because we're questioning 96 00:04:35,922 --> 00:04:38,579 early, do we really need this feature, 97 00:04:38,579 --> 00:04:41,811 what problem would this particular thing solve, 98 00:04:41,811 --> 00:04:43,525 who's going to be using this, 99 00:04:43,525 --> 00:04:45,119 what would happen if? 100 00:04:45,119 --> 00:04:47,414 These sort of what-if questions. 101 00:04:47,414 --> 00:04:50,687 It's a powerful framework for a company wide conversation, 102 00:04:50,687 --> 00:04:53,191 getting everybody in the room talking about it. 103 00:04:53,191 --> 00:04:55,436 And when we did our story map, one of the benefits was 104 00:04:55,436 --> 00:04:59,974 we got these personas of types of users for our system, 105 00:04:59,974 --> 00:05:02,428 such as Sally the salon owner, Gigi the groomer, 106 00:05:02,428 --> 00:05:04,059 or Cindy the cat owner. 107 00:05:04,059 --> 00:05:06,386 So there are a lot of different benefits that come out 108 00:05:06,386 --> 00:05:09,430 of this that help us get that shared understanding. 109 00:05:09,430 --> 00:05:13,283 And we can take this and decide what's the initial slice 110 00:05:13,283 --> 00:05:15,978 that we would like to release, what's our minimum viable 111 00:05:15,978 --> 00:05:18,756 or valuable product that we could deliver and get 112 00:05:18,756 --> 00:05:20,885 feedback from our customers? 113 00:05:20,885 --> 00:05:23,302 Again, we're focusing on the value to the customer. 114 00:05:23,302 --> 00:05:24,529 Right now we're not worried about 115 00:05:24,529 --> 00:05:27,063 how we will implement the feature. 116 00:05:27,063 --> 00:05:29,818 We are thinking about who's going to implement it 117 00:05:29,818 --> 00:05:31,536 and who's going to use it. 118 00:05:31,536 --> 00:05:33,616 And it doesn't have to be perfect at this point, 119 00:05:33,616 --> 00:05:36,443 we're just starting to have conversations and thinking about 120 00:05:36,443 --> 00:05:38,401 how we can build incrementally. 121 00:05:38,401 --> 00:05:42,609 For example, the salon has a lot of service options to offer 122 00:05:42,609 --> 00:05:45,514 and we're just gonna start out by having a hard-coded list 123 00:05:45,514 --> 00:05:46,666 on our website. 124 00:05:46,666 --> 00:05:49,813 Later, we want to make that more dynamic so that we pull 125 00:05:49,813 --> 00:05:52,143 those options out from a database. 126 00:05:52,143 --> 00:05:54,677 But, for now, we don't think we need that just to get 127 00:05:54,677 --> 00:05:56,921 feedback on how the website works. 128 00:05:56,921 --> 00:05:59,372 We're focusing on the most valuable capabilities first, 129 00:05:59,372 --> 00:06:01,216 actually booking the appointment. 130 00:06:01,216 --> 00:06:03,379 We encourage you to learn more about story mapping 131 00:06:03,379 --> 00:06:04,522 and give it a try. 132 00:06:04,522 --> 00:06:07,953 Again, great way to get shared understanding.