Does every team really need QA testers?
A redditor asked the following question:
Question#
While I can’t speak for all teams, I don’t think the QA testers on my team bring much value. All they do is validate that new functionality meets the acceptance criteria and regression testing, and they do it all manually. They don’t do performance testing (the developers do this), and they don’t do exploratory testing because the vast majority of our work is API based with no UI.
I feel like if I could just get my other fellow developers to learn about and practice TDD and BDD, we wouldn’t need the QA testers. We could build quality in ourselves.
My answer#
Well, yes, but no :) Every agile team needs to be cross-functional, you need to have all the skills needed to build, develop, release and support the product. That doesn’t mean you need someone with QA as a job description, but you still need testing skills and knowledge. The tester’s perspective is usually slightly different from the programmer’s perspective. They have the same goal, they are developing the same product, but they have a slightly different focus. I’m a programmer, but sometimes I do QA tasks. And there is definitely a difference. As a programmer, I have tasks with a narrow scope. As a tester, I think more holistically, not just about the task to be delivered, but about all the things, all the edge cases, the impact on other parts of the system, etc. So I think developers can do QA work, but they need to change the hat and act as a tester.
QA as a quality gate#
In the same Reddit thread another redditor said that
“QA” is a pretty big misnomer in software development. The only people who can “assure quality” are the people building the software. A group of people inspecting the software after it has been built can’t assure quality they can only report what the level of quality is.
Basically, we were agreeing. I also added:
You are so wrong and right at the same time :) I agree that we don’t need people to inspect software after it’s been built. But it’s also a huge misunderstanding of the role of QA. True agile tester works throughout the whole development process. Testing should start before coding, for example, the tester should be addressing risks before development starts, or reviewing requirements. The tester should also be part of the development team, assessing quality as the code is being written, not after it’s written or just before release.