Code is great, it’s the entire reason testers have jobs. Despite it’s intimate role in our day to day live so many testers have come to have a dysfunctional relationship with it. Why is that? How can it change?
Even outside of testing, code is intimidating to many people. According to a National Center for Education Statistics report
59% of beginning bachelor’s degree students in computer and information science in 2003-04 had either left post-secondary education without a degree (31%), or switched to a non-STEM field (28%) by 2009.
It’s not like all those people are dropping out of computer science because they are founding Facebook or Microsoft, and those are people that actually opted into the field. For so many code is like a series of runes that when arranged correctly mops and buckets come alive like in Disney’s Fantasia. Those mops and buckets working by themselves sure can be helpful, but when you don’t understand or control the magic you come to fear it.
People often immediately turn off when code comes up, they think they can’t do it so they disengage before a conversation can begin. Even if they overcome their initial fears, there’s still the trial, error and frustration lurking behind each corner when actually trying to learn to code that just further reinforces the fear.
We attempt to re-frame testing away from an adversarial relationship to the code that builds the products we test. I don’t like to break software, and it’s not like I find a bug I win and the developer loses. How I feel about it, or approach it doesn’t change the underlying truth that despite the best of intentions that there is an inherent tension. It’s like when animal trainers work with wild animals, just because a good relationship develops doesn’t change the fact that the dynamic could regress and become dangerous.
Because of that tension some have adopted the belief that a tester coding is an act of treason. You are betraying the sanctity of testing by diving into the code. You have shifted alliances and your tester credibility is now in question.
I’m not sure how many times this has actually happened but it seems some enterprising developers decided the easy route to finding a job at a software company is to apply for a testing job. Then through some miraculous demonstration of skills, in a terrific reveal they unmask their true skills and get promptly reassigned to the development ranks. Like somehow QA is a gateway to development.
It must have happened enough because it seems to have become part of testings collective hiring experience. As a result when hiring some organizations get very suspicious that while you possess some development experience or skills.
I have seen this happen on occasion, but it wasn’t through some premeditated scheming. These testers weren’t infiltrating enemy territory to push their own agenda. They were testers that did good work, they just chose over time to pursue other skills. It’s not like we swear a blood oath to testing, most of us don’t enter the workforce as testers and even fewer never change roles and retire only ever serving as testers.
A Healthier View
Being able to code is a great skill, it’ll probably make you earn more money, help your conversations with developers and offer another level of insight to your testing. I recommend it.
But it’s still just a skill, its not a panacea. Don’t run away from it, don’t believe that it is beyond your comprehension.
If you are interested in it learn more about it, if not be tolerant of it like so many of the other things that are testing related but you don’t know much about.
Good testers have all kinds of valuable skills, whether they can code or not. If you have skills no one will code you out of a job, whether through automated test or any other reason. There’s so much emphasis and pressure on coding skills because those are the most likely to be understood on the development team. If it’s not your cup of tea just be sure to showcase your other skills and be able to highlight the value you bring to your team.