Improving the Relationship Between Testers and Developers

The relationship between developers and testers is crucial for the delivery of high quality software. Without appropriate guidance it can take a long time to form a productive collaboration.

Christian Nissen
5 min readMay 3, 2023

Regardless of whether working together in an interdisciplinary team or being completely separated, the relationship between developers and testers can generally be separated into four phases.

  • Separation
  • Dependence
  • Recognition
  • Collaboration

These phases depend greatly on the maturity of the involved team members and are therefore not all necessarily run through.

Lonely employee working in isolation

Separation

When developers and testers work on software together for the first time it is often not a smooth work relationship. Initially, developers can find testers to be annoying and superfluous. They could perceive testers to be unnecessary ballast slowing down development. Testers make themselves unpopular by openly doubting the quality of developer’s work! Testers might see their purpose to find errors made by developers and regard detecting issues as successfully doing their job! Developers often see this way of working as a lack of trust and feel their competence as being questioned.

The relationship often also suffers from the fact that testers don’t share the technical background needed to be respected by developers. Indeed, developers might tend to see testers as inferior colleagues! This obviously does not go unnoticed by their adversaries, which react with acts of defiance, e.g. boasting about the errors they detect.

Dependence

By detecting issues, allowing to remove them before going into production and saving everyone involved from potential backlash, developers begin to recognise the value testers bring to the table. Often, developers start relying on testers to find any potential bug. Relying too much. This can lead to developers investing less of their own time in testing their own work. This, in turn, leads to poorer quality being produced initially. Apart from putting an unnecessary strain on the relationship by delivering poor quality to testers, it also slows down the process. The likelihood of the tester finding an issue is quite high due to poor initial effort. Subsequently the developer will have to return to the respective topic, losing focus on their current task and having to work on “the old boring stuff again”. Evidently a lose-lose situation; The tester is tired of testing half baked software and the developer is nagged by constantly having to switch back to work that was thought to be done.

Recognition

At some point in time, developers tend to recognise the value of the actual tests provided by testers. They may begin to use this value by integrating the provided tests into their own development and executing the created tests manually before handing their result over. Although this might seem to be strategically a good practice, it does not play well from a team work perspective. Testers feel exploited. They provide tests but don’t get to see their success. Although testers now receive software of good quality they feel superfluous. Testers tend to merely execute their tests (again), most likely not finding any issue, as the tests have already been carried out during development and all potentially detected issues have already been resolved. Apart from this psychological impact on members of the team, it also has a negative effect on the overall quality. The crucial aspect of the “four eye principle” regarding testing is lost. Developers stop thinking about what could and should be tested and rather take what is provided instead. This leads to the testing actions being based alone on the perspective of the tester and losing the important second professional perspective.

Collaboration

When all difficulties are overcome and developers not only recognize and accept the value brought by testers, but actually appreciate it and testers stop measuring their success by the numbers of bugs found, true collaboration can be achieved. Developers and testers work together to prevent bugs from being present. Testers gladly provide tests for integration early into the development cycle and lead developer’s thoughts on how to improve. Testers feel appreciated and valued, which in turn generates a positive atmosphere and the best outcome. Developers don’t feel their competence challenged and value a different perspective from their own.

Doesn’t this sound fantastic? It is fantastic, but does take time and effort to achieve.

Successful transition

To successfully transition from any given phase, everyone involved has to rethink their behavior. In an agile development the retrospective is a great platform to address the topic in a protected environment.

Coworkers coming together at a table

These three traits are essential for positively evolving the relationships in your team:

  • Transparency
  • Communication
  • Open-mindedness

Regardless of which phase the relationship is currently in, the following steps will gradually lead to true collaboration.

As a tester ….

  • Accept quality as a team responsibility and not as your personal task.
  • Don’t be a lone wolf, but share your thoughts and fears.
  • Be constructive. Your task is not to break things, but to be an advocate of the user.
  • Try preventing bugs during refinement, instead of aiming at reporting issues during development
  • Keep developers’ feelings in mind when expressing doubt about the produced quality

As a developer….

  • Accept testers as fully qualified team members – i.e. do not alienate them.
  • Include the tester’s perspective to harness the power of the “four eye principle”.
  • Pair with testers to develop a common understanding of what should be tested on which level
  • Don’t stop testing your own work

As a team coach or manager …

  • Foster a common mindset to establish quality as a shared effort.
  • Facilitate collaboration on all levels to create a team spirit and common goal.
  • Encourage pairing of developers and testers to tear down the mental barriers.
  • Offer communication training to reduce “Defect Ping-Pong” and prevent emotional distress.

Wrap up

Successfully improving the relationship between testers and developers has a positive impact on a team’s efficiency and productivity, as well as having a positive impact on the working climate and the wellbeing of everyone involved! Although it takes time and effort, the established true collaboration is worth it. Once testers and developers have experienced this kind of team work, they will never want to go back to their snail shells!

--

--

Christian Nissen

Born and raised in beautiful Düsseldorf, grew up with a C64 and studied Computer Science and Communication Engineering when discovering a passion for QA.