Last week, I presented a session titled “Is quality really everyone’s responsibility – The Quality Accountability Conundrum” at the prestigious Selenium Conference 2020. Even though this session was virtual due to the ongoing COVID pandemic, and the recording would be out soon on YouTube, I still thought it was probably a good idea to write a blog to break down this subject and deep dive into the following terms when saying “Quality is everyone’s responsibility”. Well, is it? 🤔
There is a funny story which goes like this: “There was an important job to be done and Everybody was sure that Somebody would do it. Anybody could have done it, but Nobody did it”.
Responsibility aversion is an evolutionary human trait and therefore in high accountability situations, you can never rely on group responsibilities. Back in the day, there was a mailing list called ‘ [email protected]’. Test engineers new to Selenium test automation would post their queries to the mailing list and experts would answer them.
This was somewhat like StackOverflow but very specific to Selenium. It was a perfectly fine process, but in a high accountability situation, you could not bet on it. No expert on that list was individually accountable for helping you in a stipulated time. They were helping others out of sheer love of sharing knowledge 💗🙏 , and thus you could not expect the help to arrive at the time of your choice. Roadmaps of all big open source projects would explain what I am trying to say here.
In another example, what would be the real-world equivalent of ‘quality is everyone’s responsibility’? I can think of ‘Keep your city clean’ as one. Keeping our city clean is every citizen’s responsibility. We all can agree on that. But, have you seen a mayor rely on this statement for actually keeping the city clean? No. The city’s cleanliness is a high accountability system and hence there are people accountable for every aspect of cleanliness – janitors, sweepers, garbage trucks, and us. Each of these groups knows their role very well and you do too. Our role, in this case, is segregating, taking out the trash every morning, and not littering on streets.
A clean city is where every group knows what their individual responsibility is and how they would be held accountable.
There is no perfect definition of quality. Closest to being a good definition is Jerry Weinberg’s “Quality is value to some person”. It covers the heterogeneous set of human choice and free will perfectly. For example, how would you explain a movie with bad acting, uninspiring story, and glaring loopholes in the plot creating records at the box office?
The studios make these movies to provide ‘value’ to some person(s). For a particular movie, if you thought that how did this crap make millions, it is just a coincidence that you were not the person the studio was trying to impress 😉
There was a remark made about quality in a book called ‘Peopleware’ by Timothy Lister and Tom DeMarco. They said:
“managers view quality as just another attribute of the product, something that may be supplied in varying degrees according to the needs of the marketplace. It’s like the chocolate sauce you pour onto a homemade sundae: more for people who want more, and less for people who want less.”
Kent Beck (Founder of XP) differentiated quality as Internal vs External (Perceived). Internal quality, like “clean” code practice, is not directly visible to customers but over time it shows up in one way or another. External quality is how customers perceive your product – experience of purchasing, using, and support.
In both cases, you can see that testers are nowhere near to owning the quality.
Based on what we learned so far, we set up ourselves for failure when:
- Individual responsibility is vague.
- One set of individuals think that they are the ultimate gatekeepers of whatever is going on.
- Sets of individuals trespass into each other’s area of action.
You’d think I am probably taunting testers with point #2. No, I am not. Testing is just a subset of product quality, and hence testers are not the gatekeepers of quality. Don’t let anybody tell you otherwise.
Moreover, you can ask yourself whether you can test?
- Sales techniques
- After-sale support
- Consumption models
All of these attributes of a product despite them being directly related to quality.
If quality is relative in value to ‘someone’, how can tester’s find that out? 🤯
The answer to this question lies in building the context. As you might have already read about shift left testing, I tell you to shift extreme-left.
Ask the existential question – why are we building this software?
- Are we replacing a human?
- A monolithic software?
- A legacy app in unmaintainable technology?
- Is this a completely new blue ocean idea?
No organization would ever start writing software if it does not fit into their overall strategy. To build your context as a tester, you need to know that strategy. And you need to know your exact responsibility.
And for that, I present this testers responsibility accountability model called CREED, which lists clear roles for testers and others in the team:
📍 If you don’t want to be known as testers who are obstructionists or bottlenecks in the delivery – Build context, and know your responsibility. If you think something is a UX bug, file it, let everyone know how you feel about it and that is where your responsibility ends. Fighting to get bugs fixed just because you filed them slows the system.
In the end, I will leave you all with this funny fictional bug reported by a tester who had no context and was testing the “Avengers – infinity wars”:
MRVL-12034 If the Infinity Gauntlet is so powerful that it can essentially do whatever the user wishes, then why doesn’t Thanos simply double up the natural resources instead of killing half of the consumers.
Block the release 😊