I received a lot of generous and interesting feedback from my presentation, QA Role in Scrum – Leveraging Agile for Defect Prevention at PNSQC last October. Some came in the form of written comments on little sheets of paper handed out at the end of the presentations. One that particularly stood out for me was,
“Nice job not demonizing dev.”
I laughed on first reading it. Why would I demonize dev? We’re all on the same team; we all want to create a high quality product. Right? Right.
But I don’t think the writer was joking. It’s amazing to me that after 20+ years in software development I still hear about – and personally observe – the age-old tension between QA and dev. Agile was supposed to fix all that, right? Even in Scrum teams (where “quality is the responsibility of the entire team”) devs still get unhappy because QA is rewarded for finding their flaws. QA gets unhappy because dev is unhappy with them for doing what they’re paid to do and doing it well.
How do we fix this? We redefine QA’s role. The role of QA should not be “bug finders”, or “debuggers”. Instead, QA should be collaborative developers. They work with developers before implementation begins, providing input on what will be tested. They create tests which devs can execute themselves before checking in their code. This way, QA and dev work together to keep defects from being introduced in the first place. This puts QA and devs on the same team. Collaboration keeps the demons away.