The new QA: the Quality Advocate

“Quality is not an act, it is a habit.”
~ Aristotle

When I was recently writing about Quality Guardians/Gatekeepers for Pride and Paradev, I asked myself what does the term Quality Assurance actually mean?

In the world of software testing, there’s a lot of contention over the use of the term QA instead of testing. Often testers consider themselves to be Quality Assurance (QA) even though they don’t ensure quality, they just test it.

It actually makes more sense to call independent software testing after development Quality Control (QC) as it is simply verifying quality rather than ensuring it.

As previously stated, I believe that is is no longer sufficient to test quality in; agile software delivery teams need to build it in. A person performing a Quality Assurance role in an agile team can work closely with the team to strive to build quality in, but still can’t ensure quality actually exists (programmers can still check in bad code).

So, I propose we rename QA to mean Quality Advocate.

A Quality Advocate (QA) in an agile team advocates quality. Whilst their responsibilities include testing, they aren’t limited to just that. They work closely with other team members to build quality in, whether that be though clear, consistent acceptance criteria, ensuring adequate automated test coverage at the unit/integration level, asking for dev box walkthrough, or encouraging collaboration/discussion about doing better testing within the team.

Whilst the Quality Advocate promotes quality as part of their role: quality is everyone’s responsibility.

The benefit of doing this is that testing becomes more efficient for the Quality Advocate and a better product is produced overall as quality has been built in from the beginning.

“Quality means doing it right when no one is looking.”
~ Henry Ford

Addendum: Whilst writing this post, a colleague of mine suggested I use the term Quality Activist instead of Advocate. Whilst I like the sound of it, I think it’s a little too extreme: I want to promote quality, just not tie myself to office furniture over it.

Reactions to my technical testers post

I was surprised at some reactions to my ‘Do software testers need technical skils?’ post.

I was told that including quotes from Joel Spolsky undermined the contrast in my article as Joel apparently thinks testers are entry-level positions. This is supported by Joel’s 13 year old blog post, not the much more recent article I had included the quotes from.

I don’t believe Joel Spolsky does consider testing entry level; for instance, if you have a look at current QA openings at his company, you’ll see that they require ‘top notch testing skills‘.

But the most surprising reaction was this one:

I liken it more to asking whether paramedics should study medicine.

What surprised me the most was it being retweeted by James Bach, especially considering how I enjoyed the article he wrote recently about how useful he found his non-technical sister as a tester in developing a personal computer program.

“A tester of any kind can contribute early in a development process, and become better able to test, by pairing with a programmer regardless of his own ability to code.”

~ James Bach

Anyone who knows me will know that I am a technical tester myself. So if I was hiring a tester to be part of my agile team I would much prefer to have a technical tester than a non technical one.

But if I had to choose between an intelligent technical tester who wanted to do nothing but code automated test scripts, or an intelligent, curious tester without technical skills, I would choose the non technical tester every time.