
The age-old question: Do testers need to be coders
We have been asked this question for the last 20 years, and in today’s agile world, does everyone on the team need to be able to code? Many of us have felt the uncertainty of wondering, “Am I technical enough?” We both started our software careers as programmers, and we’ve done our share of writing automated test scripts and other coding activities. Yet, it’s not the kind of work that brings us the most joy. The world of AI has added another dimension to the question, which we won’t address in this post.
Skills that enable collaboration
We love collaborating with all software team members, including programmers. We’ve seen the benefits of cross-role collaboration pairs and ensembles. In our experience, testers don’t need to be coders, but we do need to be technically aware. We need to be able to communicate with coders and others on our team, so we can work together. This includes having a high-level understanding of system architecture, being able to use source code control systems, knowing the basics of good coding practices and patterns, and being able to follow along when a programmer walks us through the code.
Lisa has been on teams that practice ensemble (mob) programming. At the beginning, she, along with her teammates, felt that she would need to regain her code-writing skills to be able to fully contribute to the ensembles. Although she was given an hour every day to take online coding courses, she quickly got frustrated. Lisa understood the concepts but struggled to write code on her own.
The team found that Lisa found was useful in the emsembles even if she couldn’t “code”. She took her turn as the “driver”, while teammates acted as “navigator” and told her what to do. She asked questions to understand better, which often helped them find a better solution. She suggested abstracting out duplicated code or writing a new test. Not only was Lisa useful, she was happy whenever as a productive part of an ensemble working on user stories.
The value of domain knowledge
Another example that Lisa recalls, is when she paired with a teammate who was trying to solve a production issue on which he was completely blocked. It was an area of the product she had worked on, so she understood the functionality. He started walking her through the code. They got to an “If” statement that the programmer was sure that the “else” would never be possible. However, Lisa remembered a case where it was possible. They tried the scenario in the staging environment and reproduced the bug!
After that experience, Lisa realized that with her domain knowledge, problem-solving skills, and ability to work with programmers, she can help find and solve code problems. She still wants to learn more coding skills, but it’s not the most important way she can bring value to her team.
Bring your deep skills to the team
If you want to learn how to write test or production code, there are great resources today to help you. We have found that collaboration skills are more valuable. Notice all the ways you contribute to your team’s success. Look for ways you can add value. Given that your team already has coders, your other skills probably matter more!