As developers, we love to hate on QAs. I’m just kidding, of course. I love my QA. I love that they find bugs in my team’s code. It’s my favourite part of the agile waterfall development that we have. But, in all seriousness, let’s talk about a QA’s (Quality Assurance) role in your development team. Do you even have one on your development team? If you don’t, why not? Do you actually need one? Let’s dissect a little.

Why Should You Have a QA on Your Team?

I’ve been in teams that have had QAs and some that have not had QAs. Also, some who have had a dedicated QA team — but let’s not get into that now. Let’s start with why you should have a QA from my experience.

Why Should You NOT Have a QA on Your Team?

So, as I said above, I’ve been in environments where we haven’t had a QA. We still shipped working software. There weren’t many bugs. What gives?

What I’m not trying to do is prescribe one way or the other. But I do want you to avoid having a separate QA team. This is bad because it will slow your development down and take you off the agile approach. Imagine the waterfall model. This is what will happen if your have a separate QA team who picks up work when it’s handed to them. It may look like you’re working agile, but really you’re just pretending to be agile.

I’ve found, the bigger the company gets, the more likely you’ll find QAs. Sure, the dev team and put on a QA hat, but will they find a bug that team b introduced when they merged their code four days ago? Probably not. Like I said, developers tend to only test happy paths. But — we should always try to aim for some sort of automated testing. Even with QAs. That’ll reduce the burden on the QAs to test every path and speed up their process of giving you a big stamp because they trust you.

On a side note, you should also eventually train your QAs in code. They don’t need to know the ins and outs — but if they could write the automation tests themselves (with your help of course), then everyone will be better off. You’ll have QAs who can continuously improve your coverage and therefore quality while reducing the amount of manual effort they’ll need to do per story.

Summary time!

I think there’s inherently more trust in a system when there is kind of gate-keepers (in this case QAs). But, you would only need one if you’re finding the number of bugs that are being reported is increasing and your developers are becoming stressed that they don’t really trust their own code anymore. This becomes more serious when you have a lot of legacy code. No one wants to touch that stuff. If you can have a QA to document the functionality — that’d help everyone long term. QA = Good. QA team = Bad.

Originally published at www.alexaitken.nz on June 25, 2018.