It’s almost amusing how so many developers see software testers as troublemakers. Of course, who could blame them – nobody likes hearing about their child’s flaws, and pointing out flaws is quite literally our job.
Like artists and critics, developers and testers are said to be in a perpetual state of conflict. They can’t live without one another, but they also can’t seem to get along.
Both sides share a common goal of creating the best possible digital product despite the ongoing animosity. That is why it is vital to alleviate that sensation and work on improving the relationship to everyone’s benefit. I have a couple of ideas for achieving a healthy, trustworthy collaboration between testers and developers, but first, we need to get some things out of the way.
It’s impossible to break software
Testers have a reputation for being rebellious. It’s a character feature that helps them be good at their job because they don’t accept things at face value and don’t mind saying something is off when they see it.
When asked what we like about testing, a typical response is that we like to “break” software. It sounds like we enjoy crushing up a developer’s hard work and tossing it back in their face. However, it’s code. It exists precisely as it is. Sometimes there are issues, and sometimes we stumble upon them.
Developers put a lot of effort into their work, so, understandably, there are emotions involved when feedback is due. Testers need to consider that and make sure their feedback is not dismissive. Diplomacy, in my opinion, is one of the most crucial abilities to have.
You don’t have a bug; we have a bug
In most companies, developers and testers are two separate teams with their own leaders, supervisors, pay structures, and probably office locations. These two teams need to work together to produce quality software, though. If they come closer and create a common culture with shared goals, it can do wonders for the project.
Before testers start their work, both teams need to get together and ensure they’re on the same page. It’s important to discuss the code changes – what was changed, with what goal, and what the expectations are. Once a project is underway, teams should regularly check in to assess how development progresses and what testing has revealed. Working together regularly makes it easier to recognize the expertise and importance of another individual.
When dealing with an issue, it’s essential to change your perspective from “You have a bug” to “We have a bug.” That way, we are communicating as a team with the same goal.
Working together 101
In my opinion, the finest remedies to the reputed animosity between testers and developers are collaboration and teamwork. Building a strong, trusting, friendly relationship creates a safe environment where no questions are out of place, concerns are discussed freely, and both sides perform better.
There are some practical steps you can take to achieve that, and as a result, the whole process is smoother and more efficient.
A carefully laid-out plan saves a lot of pain
Everyone in the team should be aware of what the testing plan is. It may seem obvious, but the first piece of crucial information to share is what version is to be tested (the best pick is usually the latest one).
The test documentation should include a list of features to be tested and test cases. Clearly stating the features that will undergo testing gives the project team a heads-up if some issues pop up during the process. Ask the developers to provide their opinion on the best way to test a feature they are working on and whether it’s related to another piece of code or a different product. Should some instructions or guidelines be added?
The developers hold a lot of answers, and you can get a lot of information simply by asking.
A comfortable environment encourages information-sharing
We set a good foundation for a comfortable communication environment when we share our testing plan. This way, developers will be more open to sharing their development process, be more descriptive in the project documentation, and make your job easier.
In my experience, organizing a testing session with the whole team is a perfect way to get people to share information.
Polite words open iron gates
The old Croatian proverb sums it up – keep your issue-reporting manner positive; your goal is not to offend.
When we find bugs and issues with the software, it’s essential to communicate that right. Don’t question the developer’s skills or knowledge. The best way to go about it is to give as much information about the issue as possible. Think about it as returning a favor. They gave us all the information from their end so we could test better. Now we need to do the same, so they can have an easier time repairing what’s broken.
Always encourage a work environment where both parties communicate on time, provide constructive feedback, and support proactivity. And do it politely.
Everyone has a role to play
This article is written from a tester’s perspective and mainly focuses on what testers can do to have a better relationship with engineering. However, both sides are responsible for guaranteeing that the final product is at its finest.
Developers need to strive to produce the best possible code even before it goes into QA’s hands. Quality Assurance is a safety net, a just-in-case measure, not a detection mechanism for poorly written code. Both sides should be able to lean on one another but not take advantage of their position.
Embracing our differences
Developers and testers don’t have to have a harsh or unfriendly relationship. Understandably, developers can be emotionally invested in their hard work, and in case it doesn’t perform well, QA is the bearer of bad news.
Approaching a task with a new perspective and dismantling certain long-standing divisions between responsibilities can make all the difference. Hopefully, these tips will help you overcome some of the legacy difficulties. When you bridge the gap between two teams, all sorts of magic can happen.