How to Build QA into Teams
What are your experiences when building QA into teams? How did you manage both the team and QA testers to work together effectively? How did you maintain the team's relationship? How did you make sure that your product has reached a desired level of quality?
This blog post by Willie Tran seems to be pretty informative, but I want to hear more real opinions and experiences around this matter as well.
Speaking from an SDET/automation perspective...
My experience is when running mixed Agile teams, you tend to have 3 to 1 dev to QA ratio, or even 6 to 1 in shops with heavy automation. Things tend to get heated with QA being out numbered.
In the last 3 years, I've taken the stance that QA's job isn't about Quality, but about developer productivity (goes contrary to the name, QA).
What is my goal really? Enable developers ship more lines of code at higher velocities. I don't see my automated test as adding quality to the mix, but rather, allow developers the freedom to try different experiments and let them know they'll break the builds before they do. Allow them to, "throw sh!t at the wall and see what sticks.". This gives them the freedom to try more aggressive design choices. My role is to making automated testing easy for developers. I work on having automated testing running in CI in the background while the developers code away without a care. I let give them creative freedom by building safety nets.
To expand this thought out to building in QA in general into mixed teams. How you would apply is it framing QA's mission in one that isn't about being guardians of quality, and developers being miscreants (this is the theme of almost every SQA conference). But rather, a team that prides itself in shipping a high number of good quality code, and the QA member is one person in an assembly team. So shifting from a Guarding -> Assisting, attitude. How do you make something that's a bug less personal? All sides have to give up something. QA have to give up their smug attitude and sense of accomplishment for finding bugs, developers have to give up being defensive when they see a bug report, both have to understand neither side is wrong, just something there to improve.
"All sides have to give up something", for the sake of shipping high quality code, I can't agree more. It should be about people who all want to build a good product together and see it as the end goal, without having the "your job"/"my job" attitude. Thanks for your great input!