What’s the quality of your product?
What’s the first thing you think about when hearing this question?
Is it difficult to answer?
For some reason, it feels like most people in software, when building software, tend to overfocus on “correctness”:
“it works correctly”,
“it works as expected”,
“it meets all the specified requirements”,
“Everything just works ok”, etc…
But as a *user* of software, is that really the first thing you think about?
No… it’s not. It’s typically the third thing you think about actually.
The first thing users of software (including us folk that work in building software) tend to jump to is the emotive experience – the scale of goodness in using the software. How delightful or painful it is to use. How it makes you feel:
“Best. Software. Ever!”
or even “It’s terrible… Soooo bad!”,
“I hate this software, and I’m going to tell all my friends and family….”, etc…
Secondly, users then tend to think of the value they get from the software. How useful it is for them regarding their reasons for using the software. How much it’s worth based on how much they’ve spent on the software (be that in money, or time).
And *then* users tend to get to the correctness perspective of the software.
Think about it.
It’s probably easier to understand when you think of any non-software, arbitrary object. What’s the quality of: your shoes, your chair, your mug of coffee… How good are they? How useful or valuable are they? How correct are they?
So, why do we think so differently when we are building software? Why do we narrow our assessment of quality down to overfocus on checking its correctness? I think this is one of life’s mysteries around the craft of software. We’ll all have some hypotheses, but we’ll probably never know for sure.
What I do know, is that there are different approaches to testing that enable us to assess these different perspectives of quality. I’m sure everyone is familiar with Scripted Testing, and how it helps us to check the correctness of the software based on our explicit expectations set within our requirements. And hopefully, many of us are familiar with Exploratory Testing and how it enables us to assess quality beyond correctness, revolves around risks and unexpectations! (I say “hopefully” as I’m well aware that in the grand scheme of the software industry as a whole, ET is still relatively unknown as a testing approach for many people in this industry).
What is more uncommon though, is the thought about how we can apply these testing approaches to assess the quality of other things beyond just the software. Specifically, the range of outputs from the activities earlier in the Software Development Lifecycle.
An extreme example: what’s the quality of the conversations about the new feature idea? Or even, what’s the quality of the new feature idea itself? Is it good? Is it valuable? Is it correct?
We can follow it through – what is the quality of the requirements artefacts we write to describe that idea (Epics, User Stories, Acceptance Criteria, etc)? Are they good in terms of how they are written? Or will they cause assumptions or be misinterpreted? How useful/valuable are they? How correct are they based on the explicit requests that the users or clients or business have actually been asking for?
We can ask the same about the UX and UI wireframe designs, the architecture designs, the code design, etc. All from the perspective of “what’s the quality of…” instead of trying to come from the perspective of “shifting testing left”.
As a final blurb on this, I’d like to zoom out way beyond software again, to again reiterate how much this is so natural for us to think about in other every day things in our lives. Be it the quality of the last conversation you had with someone, the quality of the TV programme you watched last night, the quality of your relationships with people, or even the quality of this blog.
Think about your instinctive response again. I think it’s about time for the software industry to be more instinctive with this notion of quality.
So, I ask you again: what’s the quality of your product?
Now, how will you assess your product’s quality to be able to answer this qustion accurately?