1 00:00:07,160 --> 00:00:09,893 - Let's talk about the skills a tester needs 2 00:00:09,893 --> 00:00:13,368 for a new agile adventure and the skills 3 00:00:13,368 --> 00:00:16,678 that agile teams need to succeed with testing. 4 00:00:16,678 --> 00:00:19,209 The T-Shaped skill metaphor is a great metaphor 5 00:00:19,209 --> 00:00:22,678 to describe the abilities of an agile team member. 6 00:00:22,678 --> 00:00:24,516 In agile development we value skills 7 00:00:24,516 --> 00:00:26,756 and competencies over roles. 8 00:00:26,756 --> 00:00:29,590 We may do many different activities on the team. 9 00:00:29,590 --> 00:00:34,053 So that horizontal bar is what allows us to collaborate 10 00:00:34,053 --> 00:00:37,140 across disciplines and apply knowledge in other areas. 11 00:00:37,140 --> 00:00:39,938 For example, because I have some coding experience, 12 00:00:39,938 --> 00:00:44,182 that helps me pair with developers to automate tests. 13 00:00:44,182 --> 00:00:46,708 And my database knowledge helps me collaborate 14 00:00:46,708 --> 00:00:49,046 with a database administrator. 15 00:00:49,046 --> 00:00:50,791 I know enough about security testing 16 00:00:50,791 --> 00:00:52,199 to be able to help with that. 17 00:00:52,199 --> 00:00:53,812 So those are my broad skills. 18 00:00:53,812 --> 00:00:55,924 I know a little bit about a lot of things. 19 00:00:55,924 --> 00:00:58,454 This is true of a lot of agile team members. 20 00:00:58,454 --> 00:01:01,799 Then we have our vertical skill, our deep skill. 21 00:01:01,799 --> 00:01:04,103 The thing that we're most passionate about. 22 00:01:04,103 --> 00:01:06,629 For example, my deep skill is being able 23 00:01:06,629 --> 00:01:08,886 to quickly learn business domains. 24 00:01:08,886 --> 00:01:11,015 I love learning how the business operates, 25 00:01:11,015 --> 00:01:14,855 how people do their jobs, what makes a business successful. 26 00:01:14,855 --> 00:01:18,678 So that's how I can add the most value to my team. 27 00:01:18,678 --> 00:01:21,268 All team members should be pro-actively learning 28 00:01:21,268 --> 00:01:23,330 more about testing. 29 00:01:23,330 --> 00:01:24,822 We'll talk about some of the skills that are important 30 00:01:24,822 --> 00:01:26,648 later in this lesson. 31 00:01:26,648 --> 00:01:28,632 We need a diverse set of skills on the team 32 00:01:28,632 --> 00:01:30,518 to succeed with testing. 33 00:01:30,518 --> 00:01:33,844 It takes a lot of different skills and experience levels. 34 00:01:33,844 --> 00:01:36,888 A few years ago Adam Knight wrote a guest post 35 00:01:36,888 --> 00:01:40,037 on Rob Lambert's blog taking this T-shaped metaphor 36 00:01:40,037 --> 00:01:42,951 and extending it into this square-shaped team 37 00:01:42,951 --> 00:01:44,773 as he called it. 38 00:01:44,773 --> 00:01:47,218 The teams made up of people with various T-shaped skills 39 00:01:47,218 --> 00:01:49,551 become a square-shaped team. 40 00:01:50,456 --> 00:01:52,917 They have skills, some of them are good at coding. 41 00:01:52,917 --> 00:01:54,642 Some of them are good at continuous integrations. 42 00:01:54,642 --> 00:01:56,499 Some are good at database. 43 00:01:56,499 --> 00:01:58,008 And they have all the thinking skills they need 44 00:01:58,008 --> 00:01:59,975 to succeed with testing activities. 45 00:01:59,975 --> 00:02:02,052 So diversity is really key. 46 00:02:02,052 --> 00:02:03,687 We need these multiple viewpoints to help us 47 00:02:03,687 --> 00:02:06,687 overcome our cognitive biases and see beyond 48 00:02:06,687 --> 00:02:08,824 what we expected to see. 49 00:02:08,824 --> 00:02:10,838 The square-shaped teams are ready to learn. 50 00:02:10,838 --> 00:02:13,974 We're not afraid to fail, because failing is learning. 51 00:02:13,974 --> 00:02:16,404 So let's look at some of the specific skills 52 00:02:16,404 --> 00:02:20,152 that we are likely to need to succeed with testing. 53 00:02:20,152 --> 00:02:22,328 Let's talk about some thinking skills. 54 00:02:22,328 --> 00:02:24,980 Most people call these soft skills, or maybe people skills. 55 00:02:24,980 --> 00:02:27,175 That makes it sound kind of easy. 56 00:02:27,175 --> 00:02:29,479 We prefer thinking skills because you have to 57 00:02:29,479 --> 00:02:32,132 put some work into learning these skills. 58 00:02:32,132 --> 00:02:34,168 Testers are great information providers, 59 00:02:34,168 --> 00:02:36,246 but let's face it, not everyone wants to hear 60 00:02:36,246 --> 00:02:39,109 what we have to say because sometimes it's bad news. 61 00:02:39,109 --> 00:02:42,680 So let's find some good ways to deliver that information. 62 00:02:42,680 --> 00:02:45,381 The thinking skills help us learn how to collaborate 63 00:02:45,381 --> 00:02:47,514 with other team members. 64 00:02:47,514 --> 00:02:50,407 So we learn the languages of the business, 65 00:02:50,407 --> 00:02:52,818 and the languages of the technical team. 66 00:02:52,818 --> 00:02:54,837 We can bring all these people together 67 00:02:54,837 --> 00:02:56,659 for conversations when we need to understand 68 00:02:56,659 --> 00:02:59,320 how the system should behave. 69 00:02:59,320 --> 00:03:00,948 Listening skills are really key, 70 00:03:00,948 --> 00:03:02,776 something I work on all the time. 71 00:03:02,776 --> 00:03:04,487 Watch for hidden assumptions. 72 00:03:04,487 --> 00:03:06,488 The business may assume that the delivery team 73 00:03:06,488 --> 00:03:08,244 knows how a certain feature should work, 74 00:03:08,244 --> 00:03:10,483 and in fact they have the wrong idea. 75 00:03:10,483 --> 00:03:12,197 So become a thinking tester and work 76 00:03:12,197 --> 00:03:14,181 on your thinking skills. 77 00:03:14,181 --> 00:03:17,971 In or experience we don't feel testers need to be coders. 78 00:03:17,971 --> 00:03:19,608 We already have coders on the team. 79 00:03:19,608 --> 00:03:22,437 Our developers can do things like help automate tests. 80 00:03:22,437 --> 00:03:27,076 However, some technical skills help us collaborate 81 00:03:27,076 --> 00:03:29,592 with the technical members of our team. 82 00:03:29,592 --> 00:03:32,677 For example, knowing that high-level system architecture 83 00:03:32,677 --> 00:03:36,069 helps us work with the team to consider risks. 84 00:03:36,069 --> 00:03:39,222 I find it really helpful to draw the system architecture 85 00:03:39,222 --> 00:03:42,742 on the whiteboard and talk with the rest of the team 86 00:03:42,742 --> 00:03:45,507 members about what areas of that architecture 87 00:03:45,507 --> 00:03:47,717 are potentially risky or fragile. 88 00:03:47,717 --> 00:03:49,701 Where could problems occur? 89 00:03:49,701 --> 00:03:52,726 Knowing basic programming concepts and design patterns, 90 00:03:52,726 --> 00:03:54,740 knowing how to use an integrated development environment 91 00:03:54,740 --> 00:03:56,519 the rest of the team uses. 92 00:03:56,519 --> 00:03:58,149 Knowing how to use our source control system 93 00:03:58,149 --> 00:04:02,116 helps us pair with developers and other members of our team. 94 00:04:02,116 --> 00:04:04,694 Knowing the database helps us identify risks 95 00:04:04,694 --> 00:04:07,683 on the data side, helps us set up test data. 96 00:04:07,683 --> 00:04:10,390 These days, big data, data warehouse, 97 00:04:10,390 --> 00:04:12,994 we're having a lot more challenges with testing data. 98 00:04:12,994 --> 00:04:15,331 So those kind of skills can help us a lot. 99 00:04:15,331 --> 00:04:17,861 Understanding our continuous integration, 100 00:04:17,861 --> 00:04:19,508 how our automated tests run, 101 00:04:19,508 --> 00:04:20,967 how our builds are done. 102 00:04:20,967 --> 00:04:23,062 Knowing when and where a build is deployed, 103 00:04:23,062 --> 00:04:25,411 and a lot of times being able to deploy 104 00:04:25,411 --> 00:04:27,781 a particular build so that we know exactly what 105 00:04:27,781 --> 00:04:30,038 we are testing in a particular test environment. 106 00:04:30,038 --> 00:04:32,871 Those are all technical skills that really help us, 107 00:04:32,871 --> 00:04:35,013 so build your technical awareness. 108 00:04:35,013 --> 00:04:37,479 Another area of technical awareness, 109 00:04:37,479 --> 00:04:39,638 again, this is my favorite area, 110 00:04:39,638 --> 00:04:41,460 is domain knowledge. 111 00:04:41,460 --> 00:04:44,054 I really feel like this is one of the areas 112 00:04:44,054 --> 00:04:46,355 where testers are strong and add a lot of value. 113 00:04:46,355 --> 00:04:48,756 Of course other members of the team can do this too. 114 00:04:48,756 --> 00:04:51,158 So we focus our testing on the business. 115 00:04:51,158 --> 00:04:53,159 What's going to achieve business goals. 116 00:04:53,159 --> 00:04:55,079 What's going to make the business successful 117 00:04:55,079 --> 00:04:57,746 and bring value to our customers and end-users. 118 00:04:57,746 --> 00:04:59,458 So really, everyone on the team should 119 00:04:59,458 --> 00:05:01,478 invest time in learning the domain. 120 00:05:01,478 --> 00:05:04,387 It really helps us solve the business problems better, 121 00:05:04,387 --> 00:05:06,854 but we find that testers, business analysts, 122 00:05:06,854 --> 00:05:08,417 product owners, product managers, 123 00:05:08,417 --> 00:05:11,206 they tend to accel at the business domain. 124 00:05:11,206 --> 00:05:14,354 So do learn how your users do their jobs. 125 00:05:14,354 --> 00:05:15,878 Sit with them, watch them work. 126 00:05:15,878 --> 00:05:18,310 It really can help you help them 127 00:05:18,310 --> 00:05:20,567 with automating tasks that might be 128 00:05:20,567 --> 00:05:23,110 difficult or error prone for them. 129 00:05:23,110 --> 00:05:25,780 Customer support is another great resource. 130 00:05:25,780 --> 00:05:27,493 If you don't do customer support yourself, 131 00:05:27,493 --> 00:05:29,911 go and seek out your customer support people. 132 00:05:29,911 --> 00:05:32,386 Ask them where have a lot of problems occurred. 133 00:05:32,386 --> 00:05:34,565 Are there areas of the application 134 00:05:34,565 --> 00:05:36,311 that seem to be more error prone? 135 00:05:36,311 --> 00:05:38,274 Maybe we need to focus more testing on those, 136 00:05:38,274 --> 00:05:40,113 or more regression testing.