{"id":624,"date":"2013-05-15T15:29:10","date_gmt":"2013-05-15T22:29:10","guid":{"rendered":"http:\/\/angryweasel.com\/blog\/?p=624"},"modified":"2013-05-15T15:29:14","modified_gmt":"2013-05-15T22:29:14","slug":"tear-down-the-wall","status":"publish","type":"post","link":"https:\/\/angryweasel.com\/blog\/tear-down-the-wall\/","title":{"rendered":"Tear Down the Wall"},"content":{"rendered":"<p>It\u2019s interesting when I go back and look at the number of posts where I talk about what I do, what testing is to me, and how testing is changing. Ever since the Telerik Test Summit (telsum), I\u2019ve been thinking even more about testing and how it fits into software development. When I wrote <a href=\"http:\/\/angryweasel.com\/blog\/?p=613\">this post<\/a>, and added on a bit to it <a href=\"http:\/\/angryweasel.com\/blog\/?p=619\">here<\/a>, I was pondering the same thing. When I (last) blogged about the <a href=\"http:\/\/angryweasel.com\/blog\/?p=569\">future of testing<\/a>, I (likely subconsciously) was thinking about the same thing.  <\/p>\n<p>A few things happened recently to make everything really click for me. One, was <a href=\"http:\/\/www.networkworld.com\/community\/blog\/lets-train-our-testers-early-offering-college-majors-software-testing\">this article<\/a>, asking for universities to offer software testing degrees \u2013 as a means to \u201ctrain our testers\u201d. Besides the fact that the author thinks that Universities are vocational schools where we train people (rather than <i>teach<\/i> people), I think it\u2019s difficult to have a degree in something that the industry can\u2019t define consistently (yes, I know there are test degree programs out there now, and I could make the same argument about those). <\/p>\n<p><a href=\"http:\/\/angryweasel.com\/blog\/wp-content\/uploads\/2013\/05\/image2.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: right; padding-top: 0px; padding-left: 0px; margin: 3px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"image\" align=\"right\" src=\"http:\/\/angryweasel.com\/blog\/wp-content\/uploads\/2013\/05\/image_thumb2.png\" width=\"290\" height=\"388\"\/><\/a>Then, just over a week ago at Telerik\u2019s testing summit, we led off the open-space session with a discussion on test design. I shared some of my ideas, including how I use mind-maps to communicate test design. Towards the end of the discussion, Jeff Morgan (@chzy) asked, \u201cIsn\u2019t it just \u2018Design\u2019\u201d. What Jeff was implying was that many of the details of test design should be equally at home when thinking of feature design. Rather than have programmers determine how it should work, and then have testers determine how it should be validated and explored, that those tasks could occur (for the most part) simultaneously \u2013 e.g. \u201cTo implement this feature, I need to read a value from the database, but I also need to make sure I account for and understand performance implications, whether or not the values will be localized, what the error cases are, etc.).\u201d Much (not all) of test design can be considered when designing code \u2013 so why don\u2019t we consider test design and code design simultaneously? <\/p>\n<p>After this discussion (and for many, many hours since telsum), I\u2019ve been thinking about programming and testing and how the two roles can work together better \u2013 and began to wonder if <b><i>the test role may be detrimental to software development<\/i>.<\/b> <\/p>\n<p>Three things are important to note before you scroll down and leave me hate-comments. <\/p>\n<ol>\n<li>I didn\u2019t say test is dead <\/li>\n<li>I said \u201crole\u201d, not activity<\/li>\n<li>I purposely used the weasel-word \u201cmay\u201d \u2013 that statement won\u2019t always be true<\/li>\n<\/ol>\n<p>And now for some much-needed elaboration. <\/p>\n<h4>The Wall<\/h4>\n<\/p>\n<p>There\u2019s a wall between testers and programmers. Programmers \u201cbuild\u201d, testers \u201cbreak\u201d \u2013 but passing features back and forth between one group and another is wasteful. It takes time and extra communication to traverse the wall. I spent at least the first few years of my career on one side of the wall catching the crappy code programmers threw to me. Then, I found unit-level bugs and threw those bugs back over the wall to the programmers. Then, we played this wasteful game of catch until it was time to ship. Recently, I saw a fairly prominent tester mention that their bread and butter was participating in a game of bad-code and happy-path-bug crap-catch. While I\u2019m happy that there are easy ways to make money in testing, I\u2019d rather tear my eyelids off than do work like this. I like what I do because it\u2019s hard. Finding happy path bugs in crappy software isn\u2019t hard. It\u2019s boring and practically demeaning.  <\/p>\n<p>The <a href=\"http:\/\/www.neotys.com\/blog\/neotys-testing-roundup-may-2013-issue-2\/\">Neotsys blog<\/a> latched onto one of my recent posts in their testing roundup. They said that my team at Microsoft has moved to the \u201cwhole-team\u201d approach, but that\u2019s not true. We still have testers and programmer roles \u2013 and while programmers frequently write test code and testers frequently write product code there\u2019s still a wall. Programmers are still responsible for writing product code, and testers are still responsible for testing \u2013 we just don\u2019t have a problem crossing those lines. <\/p>\n<p>We still have a wall. It\u2019s a small wall, but it\u2019s still there. <\/p>\n<h4>Tear Down the Wall<\/h4>\n<\/p>\n<p>If you played with my recent thought experiments of programmers who can test and testers who can program, it&#8217;s not much of a reach to picture a team where there are no programmers or testers \u2013 just contributors (or developers or engineers, or whatever you want to call them). If you have a hard time imagining that, imagine your <i>current <\/i>team with no walls between role responsibilities. Many of you may do the same thing you\u2019re doing today, but with the walls gone, I bet you could make better software \u2013 faster.  <\/p>\n<p>Figure out what needs to get done, and get it done. Leverage the diversity of the team. If someone is a specialist, let them specialize. If they\u2019re not, let them optimize for their own skills. <\/p>\n<p>Tear down the wall. <\/p>\n<h5>Titles<\/h5>\n<\/p>\n<p><em>On a quick side note, testers worry (far too much) about their titles. This <\/em><a href=\"http:\/\/www.qamob.info\/blog\/2013\/5\/10\/call-me-tester.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+stcfeedsbloggers+%28Testing+Feeds+-+Bloggers%29\"><em>recent blog<\/em><\/a><em> reminds me of the idiocy of tester titles (and I\u2019ve <\/em><a href=\"http:\/\/angryweasel.com\/blog\/?p=322\"><em>discussed it here<\/em><\/a><em>). There will always be a place for people who know testing to be valuable contributors to software development \u2013 but perhaps it\u2019s time for all testing titles to go away?<\/em> <\/p>\n<h4>The Future?<\/h4>\n<\/p>\n<p>I\u2019ve written in the past about where test is going \u2013 toward data analysis, non-functional emphasis, etc., but I think I was at least partially wrong. What <i>software teams<\/i> need in the future is <i>team members<\/i> who can perform the <i>activities<\/i> of programming, testing, and analysis \u2013 <b><i>together<\/i><\/b>.  <\/p>\n<p>I saw a slide deck recently that stated, \u201cAgile Testers frequently can\u2019t keep up with Programmers\u201d. Good software development can\u2019t happen when you serialize tasks \u2013 the team needs to work on this stuff \u2013 <b><i>together<\/i><\/b>. <\/p>\n<p>I\u2019ll always be deeply involved in the <i>activity<\/i> of software testing, but I don\u2019t know if the role or title exists in my future. After nearly 20 years of being a tester (and likely several more with that title), I\u2019m admittedly going out on a bit of a limb with that statement. Despite my title, I want the walls to go away. <\/p>\n<p>Testing can\u2019t be something that happens <i>after<\/i> programming is complete any longer. Testers aren\u2019t \u201cbreakers\u201d any more \u2013 but experts in the testing <i>activity<\/i> are (or need to be) as critical to <i>making<\/i> software as anyone else on the team. <\/p>\n<p>Since it\u2019s mostly testers who read this blog I challenge all of us to shed any remnants of tester vs. programmer and figure out how to tear down the wall. <\/p>\n<p>I\u2019ll let you know how my own battle goes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It\u2019s interesting when I go back and look at the number of posts where I talk about what I do, what testing is to me, and how testing is changing. Ever since the Telerik Test Summit (telsum), I\u2019ve been thinking even more about testing and how it fits into software development. When I wrote this&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-624","post","type-post","status-publish","format-standard","hentry","category-allposts"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/comments?post=624"}],"version-history":[{"count":0,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/624\/revisions"}],"wp:attachment":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/media?parent=624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/categories?post=624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/tags?post=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}