Press "Enter" to skip to content

How mature is your QA organization?

Presenting my own maturity model

Lately I was thinking about what should be the goal of a QA organization in a company… Thanks to the help of my colleagues, I realized that there are several answers to “what is quality” or “what is our goal as QA”.

So I’d like to share with you a simple, yet hopefully useful, maturity model for QA organizations:

Level 0: not Quality Assurance (QA) but rather Quality Check (QC)

Goal: be the last line of defence before release

It is saddening to say that a whole lot of companies are still using “QA” people as some kind of cheap testers that check quality at the end of the production line.

It may be even more saddening that even more companies ditched their “QA” team for even cheaper labor in offshore countries instead of actually moving to a more mature QA organization.

As you might expect, this job is usually dumb and not very rewarding.

There is not much to add here… Message to them: please have mercy on both your users and your employees. Please.

This QA level must be killed. We know better— and for a long time already.

Variant: automated QC

This is a variant where “QA” people are more automation engineers than they are testers. At least, in this model, the job is getting automated and is less dumb.

Yet it is still dumb from many angles, as they are still checking quality at the end of the production line. This results in headaches to manage to test code which has not been designed to be tested, and fixing dubious tests is an everyday task.

In the end, this is scaling only partly, as the maintenance of the dubious tests requires so much work. Plus development teams aren’t getting much benefit from these automated tests.

Arguably, this is a better level 0 situation because less bugs are let loose into production. However the mindset is the same: QC over QA.

Level 1: manufacturing-level QA

Goal: Zero Defects

You might not believe it if you’ve spent all your life in software shops, but QA or Quality Assurance actually means something in the manufacturing world. Even more unbelievable, the manufacturing world has managed the feat of implementing Zero Defects: factories outputting no “bugs” at all. And this is old. Like older than me.

This book explains how to put in place Zero Defects in your own company. First edition: 1979.

Well, when you think about it, preventing defects is the whole point of having QA in your company.

There is really no reason why we could not do the same than manufacturing in the software world:

  • Automated acceptance tests provide a way to ensure that new developments are compliant to the specification
  • Continuous integration provides a way to ensure that old developments are still working
  • Various practices like Test-Driven Development and Pair-Programming help building quality into the product

Variant: Software Craftsmen don’t need no QA people

Interestingly, this level is usually what most brilliant developers understand from the QA role, concluding that they don’t need QA.

And it’s true that good engineering practices — Software Craftsmanship practices! — are enough to realize such manufacturing-level QA, to reach Zero Defects.

That makes perfectly sense: we’re talking here about technical quality: guaranteeing that what is shipped matches internal expectations. Software is working like intended. You can reach such a definition of quality through rigorous and systematic automated testing, which indeed should be expected from developers.

(Yet most places don’t have such developers — and thus QA can be very helpful anyway in such contexts)

Level 2: Agile QA

Goal: enabler of awesome products

And then it is also possible to consider a much wider view of quality which encompasses product and user quality in addition to technical quality.

I shared in this previous post how Agile testers can bring a lot of value to the team:

The Agile tester helps a great product become an awesome one!

Why so few Agile testers?

Because most companies are faux-Agile…

This level is clearly different from the previous one.

I explained in the previous section how brilliant developers simply don’t see the value of QA: they are doing it themselves by automating tests by default… I find it hard to disagree with them when we talk about Level 1 sort of QA goal. However when I share with them this Level 2 view, when I talk about this much more holistic view of quality, when I share with them what is the job of the Agile Tester, then they’re not so sure anymore.

This is the future of QA. This makes perfectly sense given how the whole software industry is moving from running projects to making products.

With the move from project to product mindset, quality is no more about ensuring we’ve done what we agreed to do, but about making highly-performing products.

What does it mean for the future of companies

What can we learn about companies from this maturity model?

  • Level 0 should not be tolerated. Come on! You’re better than that! Whatever, if the company keeps running like that, competition will outrun it anyway… If you’re an employee of such a company, maybe you should consider leaving for a better place.
  • If your company has embraced the product way instead of the old project mindset, you should definitely look for Level 2. By staying at Level 1 you miss out on all the value that Agile testers can bring to your business.
  • Finally, if the company is running projects instead of making products, it makes sense to look for Level 1. It might be a bad idea to look for Level 2 until the company changes its ways towards the product path. Otherwise the Agile tester job can become really frustrating, always trying to create more value for the business but then facing walls that prevents him to do it fully.

What does it mean for the future of QA people

If you’re currently one of those QA people and you’re wondering if your future will be safe…

  • If you’re kind of a Level 0 QA, often called a “functional tester”, then you should consider a career change, or at least moving to another Level. Your current job is going to vanish. Besides, it is totally underpaid. (which is another sign that it’s a job on the decline) Be aware that there is also opportunities outside of QA that would still be a good use of your current skills for your next career move.
  • If you’re kind of a Level 0.5 QA, often called an “automation engineer”, you should also consider a career change because you’re simply doing the job of other developers — lazy, unprofessional ones. Maybe you can become a fully-fledged developer, writing production code in addition to the automated test? I’m pretty sure you’d love that.
  • If you’re kind of a Level 1 QA, which can be seen as some kind of “quality facilitator”, you (sadly) still have a lot of companies to help and your job is probably not at risk. Yet maybe you should consider what you’d like to do in a few years from now, because if you join a truly amazing company you’ll find out that they don’t need your current job. If you’re more into automation, maybe becoming a developer is a good idea. Otherwise there is the Agile tester role which I believe is there to stay.
  • Finally, Level 2 QA, the “Agile tester”; is definitely a job that is here to stay. It’s not an easy job, it requires a very specific mindset, it demands rare skills and that’s exactly why there already is a lot of demands for this role. Companies that truly understood the Agile tester role and that see how much value they bring to the business are glad to pay as much as for developers if not more — since right now such people are hard to come by.

Comment please! 💬

  • What do you think of this model?
  • Is it useful?
  • Does it help you as a QA to better define your current role at your current company?
  • Does it help challenging the quality model of your company?

Please share in the comments section! 👍

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *