Two categories for folks – at the opposite ends of each spectrum. How can they be friends? For some, it is almost blasphemous to think that a developer can be a friend of a QA. It’s just like asking someone if a male and female can ever be best friends without getting attracted to each other. Some might say yes, most will say No, and some will question the integrity of the question as to why this is neccessary.
TESTER – DEVELOPER – A HATFIELD-McCOY SITUATION
For most of the posts, memes, talks that I’ve been fortunate of working/listening with – there is one thing that is synonymous with testers – that they have to find bugs/issues/problems/challenges (whatever term you may coin), with what developers have developed – a new tool, a new feature maybe.
And over a period of time, we have seen this escalated to a point when people now have this mindset that developers and QA are two very different sets of people in a single team.
And this mindset has let to a lot of people – which includes engineering leaders, to put the developers and QA’s at bitter loggerheads. I mean the norm in the industry is such that they are seen as enemies, just like Hatfield and McCoy – if you know about this feud then you must be aware how messy it was. This clash of mindsets and forced isolation has caused a lot of issues due to which I see that to this date, developers and QA’s can’t and don’t want to collaborate.
But it doesn’t have to be that way. In a fast paced world, where the delivery timelines are getting shorter, projects are getting complex day by day and increased scrutiny on quality of a product/project, there is a growing need to collaborate on a daily basis. And as QA’s or developers we need to understand that this collaboration will bring more good than harm. How? Let’s see.
Enabling Better Communication
Effective and open channel of communication is always a good sign of a great team. Developers and QA professionals work have to work closely together throughout the development cycle, which requires good communication skills.
By establishing open channels of communication, developers can collaborate with QA teams to identify potential issues early on in the development process, leading to a smoother project outcome. This leads to a good communication standards within a team, which helps both a QA and a developer to be a better communicator.
Helping in Better Understanding of Code
Developers have a deep understanding of the code they write. They can provide insight into how the code works, what it’s supposed to do, and what changes were made to the code since the last release. This understanding helps QA testers to create more effective test cases and find defects faster.
Faster Bug/Issue Resolution
When QA testers find a defect, they can work with the developer to get it fixed quickly. The developer can provide insight into the root cause of the defect and can implement a fix more efficiently than someone who is not as familiar with the code.
Improving Quality of Code
A developer who understands the testing process can build better quality code that is easier to test. This leads to more accurate and efficient testing, allowing QA professionals to focus on more critical issues. And this can be vice-versa too – A QA might have very strong fundamentals and knows about the code quality better than a developer and they can collaborate to make the code quality of both product and test automation much better,
When developers and QA professionals work together, it is easier to create testable code. Developers can build features and functionalities that can be tested effectively, while working in sync with the QA team, which ensures that the final product meets the desired standards of quality.
This is one of the main pain points of a QA, that most of the times, the code that gets in for testing does not meets the testability standards – which can be defined by the QA in sync with the developer.
A lot of time, the bug cycle or the defect cycle stretches long enough , causing undue re-work both for the developer and the QA. This is one grey area, where developer can help reduce the amount of re-work required. A good example I’ve seen, in this regard is the pair programming, where a developer sits with the QA person and both indulge in their
Enabling better learning/collaboration culture
Developers and QA can help each other grow. They can enable better learning opportunities and suggest topics to each other so that both can grow. Collaboration between developers and QA teams leads to increased knowledge sharing. Developers can learn more about testing processes and approaches, while QA professionals can learn more about the code and development processes, system internals, system design from developers etc.
In conclusion, a developer is a QA’s best friend because collaboration between the two teams leads to better communication, faster resolutions, improved code quality, and testability, better test coverage, increased efficiency, reduced rework, improved user experience, increased knowledge sharing, and better team dynamics. By working together, developers and QA teams can ensure that the final product meets the desired quality standards, is delivered on time, and is beneficial for both teams.