{"id":809,"date":"2010-01-26T00:13:30","date_gmt":"2010-01-26T00:13:30","guid":{"rendered":"https:\/\/www.joelonsoftware.com\/?p=809"},"modified":"2010-01-26T00:13:30","modified_gmt":"2010-01-26T00:13:30","slug":"why-testers","status":"publish","type":"post","link":"https:\/\/www.joelonsoftware.com\/2010\/01\/26\/why-testers\/","title":{"rendered":"Why testers?"},"content":{"rendered":"<p><span class=\"side\"><a href=\"https:\/\/i0.wp.com\/www.joelonsoftware.com\/wp-content\/uploads\/2010\/01\/26dog.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"sideimg\" alt=\"\" src=\"https:\/\/i0.wp.com\/www.joelonsoftware.com\/wp-content\/uploads\/2010\/01\/26dog-thumbnail.jpg?w=730&#038;ssl=1\" \/><\/a><\/span>My sister got her kids a little puppy, and they\u2019ve been trying to train it. To live with a dog in the house, you need to teach it not to jump on people, not to poop in the house, to sit on command, and to never, ever, <em>ever <\/em>chew on the iPad. Never. Good girl.<\/p>\n<p>With dogs the main trick to training is that feedback has to be immediate. If you come home to discover that, hours before, the dog tipped over the garbage can in the kitchen, it\u2019s too late for training. You can yell at her but she just won\u2019t get what you\u2019re going on about. Dogs are just not that smart.<\/p>\n<p>For programmers, getting better at what you do requires quick feedback, positive and negative, on what you\u2019ve just done. The faster you get the feedback, the faster you\u2019ll learn. With long-cycle shrinkwrap software, it can take a year or more to hear feedback from customers.<\/p>\n<p><span class=\"side\"><a href=\"https:\/\/i0.wp.com\/www.joelonsoftware.com\/wp-content\/uploads\/2010\/01\/26marzocco.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"sideimg\" alt=\"\" src=\"https:\/\/i0.wp.com\/www.joelonsoftware.com\/wp-content\/uploads\/2010\/01\/26marzocco-thumbnail.jpg?w=730&#038;ssl=1\" \/><\/a><\/span>That\u2019s one of the reasons we have testers. A great tester gives programmers immediate feedback on what they did right and what they did wrong. Believe it or not, one of the most valuable features of a tester is providing <em>positive<\/em> reinforcement. There is no better way to improve a programmer\u2019s morale, happiness, and subjective sense of well-being than <strike>a La Marzocco Linea espresso machine<\/strike>&nbsp;to have dedicated testers who get frequent releases from the developers, try them out, and give negative <em>and <\/em>positive feedback. Otherwise it\u2019s depressing to be a programmer. Here I am, typing away, writing all this awesome code, and nobody cares. Boo hoo.<\/p>\n<p>Who should be a tester? That\u2019s tricky! Software testing is one of those careers that isn\u2019t that well known, so a lot of people who would be great at testing and would probably enjoy it a lot never consider applying for jobs as testers. <\/p>\n<p>Signs of a good tester:<\/p>\n<ul>\n<li>Scientific<\/li>\n<li>Loves a good puzzle, even the kind that takes days to solve<\/li>\n<li>Likes to think about things methodically<\/li>\n<li>Generally likes working with software and computers<\/li>\n<\/ul>\n<p>You don\u2019t have to be a programmer to be a tester. A lot of companies want testers to be programmers who write automated test suites. It seems more efficient that way. This reflects a misunderstanding of what testers are supposed to do, which is evaluate new code, find the good things, find the bad things, and give positive and negative reinforcement to the developers. Sure, automated test suites are a time saver, but testing software covers so much more than that. If you put too much emphasis on those scripts, you won\u2019t notice misaligned text, hostile user interfaces, bad color choices, and inconsistency. Worse, you\u2019ll have a culture of testers frantically working to get their <em>own<\/em> code working, which crowds out what you need them to do: evaluate someone <em>else\u2019s<\/em> code.<\/p>\n<p>A particularly terrible idea is to offer testing jobs to the programmers who apply for jobs at your company and aren\u2019t good enough to be programmers. Testers <em>don\u2019t<\/em> have to be programmers, but if you spend long enough acting like a tester is just an incompetent programmer, eventually you\u2019re building a team of incompetent programmers, not a team of competent testers. Since testing can be taught on the job, but general intelligence can\u2019t, you really need very smart people as testers, even if they don\u2019t have relevant experience. Many of the best testers I\u2019ve worked with didn\u2019t even realize they wanted to be testers until someone offered them the job.<\/p>\n<p>If you:<\/p>\n<ul>\n<li>Love software and computers<\/li>\n<li>Want to work on a software team, and<\/li>\n<li>Don\u2019t particularly like programming<\/li>\n<\/ul>\n<p>you should consider being a tester. (<a href=\"http:\/\/www.fogcreek.com\/Jobs\/QA.html\">We\u2019re hiring<\/a>! What a coincidence!)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My sister got her kids a little puppy, and they\u2019ve been trying to train it. To live with a dog in the house, you need to teach&hellip; <span class=\"read-more\"><a class=\"more-link\" href=\"https:\/\/www.joelonsoftware.com\/2010\/01\/26\/why-testers\/\" rel=\"bookmark\">Read more <span class=\"screen-reader-text\">&#8220;Why testers?&#8221;<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_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":[8,2],"tags":[],"class_list":["post-809","post","type-post","status-publish","format-standard","hentry","category-ceo","category-news"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p83KNI-d3","_links":{"self":[{"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/posts\/809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/comments?post=809"}],"version-history":[{"count":0,"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/posts\/809\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/media?parent=809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/categories?post=809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joelonsoftware.com\/wp-json\/wp\/v2\/tags?post=809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}