The 4th Myth of Software Testing - You don't need QA specialists
Updated: Aug 25, 2020
QA specialists aren’t needed, developers can do the testing just fine
There seems to be a trend in the dev-ops-new-kid-on-the-block-whizz-bang-automate-everything-framework that a lot of organisations are adopting in that a dedicated QA function / dedicated QA specialist is not required.
There’s a valid argument that a degree of testing can (and should…and must) be undertaken by whichever members of the development team are available at the time.
This is especially true of small organisations where feature teams may comprise of only one or two programmers. This is the realistic and pragmatic approach. The caveat here being that a level of functional, user-centric testing must be undertaken in addition to any lower level test activities. This also doesn't take into account all the other activities / artefacts that a well rounded test effort would encompass.
The problem with asking the very same people who have invested time, effort and no small amount of energy into building an application into verifying their own work is that there are a number of documented phenomenon that fall under the umbrella of cognitive bias.
A well-rounded QA will be aware of these bias and will attempt to mitigate their effect. In simpler terms, asking people to 'break' what they've built is illusory at best and self-defeating at worst.
Unit, Integration in the small, peer reviews and pair programming will only take you so far towards a quality goal…but, as with all things, you get what you pay for and you have to play the hand you've been dealt. I have no issue with that at all.
Large companies like Facebook appear (on the surface) to do fine without a dedicated QA function…or not, depending on the sites you frequent. I would argue however, that users of their software don’t particularly care about a ‘quality’ user experience (which Facebook are very much aware of), In their own words “social media is nonessential.” “By paying less attention to quality, Facebook has been able to focus on other things, like making the company a fun place to work at that can attract and retain talented engineers. Facebook would probably be less fun if it cared more about quality. […] Social networking isn’t really critical to people. It’s important, but it’s not banking or space shuttles or nuclear reactors. It’s not bridges or cars. It’s not even email (at least, in most cases) or phone calls. This also gives Facebook more margin to work with.” A quick search on google play will reveal that the majority of user reviews on it’s mobile app are around 1 star (out of 5). Even with that poor rating, the native app has been, at the time of writing, downloaded 89,941,520 times. It obviously makes financial sense to Facebook to do this and it obviously doesn't appear to harm the frequency or usage or popularity. Your company isn't Facebook or Google or Microsoft (unless it is, in which case, ignore that bit) A well-rounded QA specialist will fulfil more than just duplicating a test effort undertaken by other members of a development team, they keep teams honest, they strive to look in the places where the dark things lurk, they aren't afraid to be 'that' person, they are your conscience writ large. Their primary function is to articulate risks to the product to the people who matter, risks which if not captured and mitigated, can lead to far worse consequences than loss of face...or prestige. Yes RBS, I'm looking at you.
The majority of these risks occur outside of the code domain. I've been blessed to have worked in exceedingly talented and high-performing development teams who have shared my drive and passion for quality, even leading to situations where, after an amount of time, I've questioned my own place in the team. This is kind of the point though. YMMV. Obviously.