Technical Enough

By Tara Walton

As an industry, we often talk about two buckets of people, the technical and the non-technical, but I’ve always wondered why people that work in technology will label some people as non-technical. It’s something you hear a lot in the QA space — like it’s some deficiency to be overcome, but as an automation developer I have to find a balance between the two skills.
Regardless of if I’m chatting about testing or receiving feedback, in the same set of conversations I can be told that I have great technical acumen and also that I am not technical enough.

Let’s talk about it. What does it mean to be technical? What does it mean to be non-technical? How do we make ourselves technical enough?

What Does It Mean to Be Technical?

I reached out to my social communities, and then Google, to ask what everybody thought technical meant. I found that the response seemed to depend on the perspective of the respondent more often than not, especially if that person considered themselves to be in a “technical” role or not. People I viewed as highly technical would tell me they were just a manual tester or just a UX designer. Very often though it seems that “technical” skills really seemed to actually mean someone technology-heavy, like system architects and senior-level programmers, but other times it meant a subject-matter expert with a very specific skill, like the person you go to when your Docker setup isn’t working out.

Since there’s not exactly a consensus about what technical actually means, I went to my default — the dictionary.

Technical skills would then be the things you do every day that are the “hard skills” or the skills directly related to your job. That implies that non-technical skills are skills you have that are not specifically related to your job such as communication, adaptability, and organization. But what if that is what you do?

See why it’s so confusing to me?

Technical vs. Non-Technical Skills is Testing

During my conversations with my network, my friend Tim Ottinger made a great point that he doesn’t like to call skills technical or non-technical, but instead functional and behavioral respectively.

It’s not like we exist in some Vulcan bubble that keeps us from gaining any of those non-technical/behavioral/soft skills that make us human. Nor do we just focus on our people skills and never grow our technical/professional/functional skills. In fact, we desperately need both to be complete and capable beings. This brings me to the skills I use every day — technical or not…

Top 5 “Non-Technical” Skills Every Tester Should Know

My most used skills are things I consider to be my technical skills, especially as they relate to my life in software testing, however, most people consider these to be non-technical or soft skills.

Below are my top 5 “non-technical” skills a tester should have:

  1. Analytics
    If you’re like me, you were probably the kid who liked logical puzzles or taking things apart to see how they worked. Being able to connect the dots and analyze information helps with the storytelling we have to do when we write bug reports, present status updates, or lobby for more team members. Not everyone can see the world in patterns and can put all those crazy pieces together.
  2. Communication
    No one reads minds. And not everyone sees the patterns that your analytics produce. Testers have to be able to communicate not only what they found and how they found it, but why it’s either important or getting punted to the bottom of the backlog.
  3. Documentation
    Remember that old internet saying “Pics or it didn’t happen”? Documentation is a lot like that. I write things down because of a multitude of reasons. I have a horrible memory. If I get hit by a bus, someone has the information. If I need a team member to be up to speed on something — boom, documentation. That said, creating documentation is as much an art as it is a science. Regardless of your style or where you’re keeping your docs, if you didn’t document it, did you really do it?
  4. Organization
    Test cases and test plans, documentation, artifacts… none of them do any good if no one can find them when they are needed. Keeping test steps in line, cases usable, and documents handy is just part of the job description, but being organized might also mean timeboxing, delegation, or checking on your team members to make sure they aren’t burning out.
  5. Adaptability
    Businesses, teams, and applications have all become very dynamic. Time tables shift and requirements change, but being adaptable means being able to roll with it. Instead of getting stuck with a plan that won’t serve you anymore, being receptive to new ideas and new goals might lead you to better options that you knew existed.

Top 5 “Technical” Skills Every Tester Should Know

For those of us that have been told we are “not technical” but have the itch to get more so, we never have to stop learning.

Here are my top 5 “technical” skills a tester of any flavor should know:

  1. Git
    Version control keeps us all sane. If you rely on the auto-save and version history in Office 365 or the Google Suite, then you’ve already seen the benefit of being able to go back in time. Git also lets you merge changes among many users which means no more siloing documentation for fear of losing the up-to-date status.
  2. HTTP protocols
    Learning how HTTP requests function can be a game changer when you’re trying to decipher what’s actually going on in a web app. Combining this information with your API endpoints can be everything you need to test backend services in a variety of languages and architectures.
  3. Browser Tools
    If you haven’t checked out more than the “elements” tab in the DevTools of your favorite browsers, now is the time to do so. Monitoring network traffic, watching console errors, and clearing storage will open up a world of information that can help you target your efforts when things are in flux.
  4. Databases
    Databases can be tricky, but knowing how information is connected is not something you’re new to if you’re working in the testing space. I’m not saying you have to be the best at super complex queries because you can also ping your DB people for help. However, knowing a simple query to verify information has been saved or is coming through as expected can save you a lot of headaches.
  5. Object Oriented Programming (OOP) basics
    You don’t have to be an expert in programming, but understanding the basics of object-oriented programming can help you understand the lingo being thrown around and help you abstract your tests for reuse. In the same way that learning Git will take your tests to the next level, OOP will elevate you even further.

I know that we all know that testers do so much more than testing. We write tests, explore, code, communicate, organize, document, project plan, advocate, and analyze. Jenny Bramble said it best –

So the next time someone says you aren’t technical enough, ask what their definition of technical is.