Each year, Ministry of Testing launch a #30DaysOfTesting challenge. This year the topic is ‘Quality‘. The challenge began in March, but I was a little late getting started. So, throughout April and May, I’m going to be publishing a series of blog posts where I share my progress.

Day 1 – Lookup some definitions of what ‘Quality’ is and share your own definition on The Club

No discussion on quality is complete with the inclusion of Jerry Weinberg’s defintion. The most popular version includes additions by James Bach and Michael Bolton:

“Quality is value to some person (who matters, at some point in time)”

Jerry Weinberg (with additions by James Bach and Michael Boltons)

However, I feel the definition is incomplete as quality is so subjective – although Michael Bolton and James Bach’s definitions are a step in the right direction.

I also feel that this definition implies that quality is something that can be achieved. I’ve often seen quality as something that is perfect. Achieving quality is a continuous process where we are attempting to improve something.

The team might aspire achieve perfection, but our aim should be to improve. With each improvement, we move closer to perfection – despite the chances of achieving it being very low.

A ‘Satisfactory’ Level of Quality

If quality is something that cannot be achieved, there needs to be a set level of quality that defines the minimum needs of the application.

We could measure quality against something similar to Maslow’s Hierarchy of Needs. This is a five-tier model of human needs, depicted within a pyramid. The needs on lower levels of the pyramid must be satisfied before needs higher up the pyramid can also be satisfied. These human needs can be similar to the needs of a software application:

  • Physiological – For this level to be satisfied, to be satisfied, the application has to exist and successfully run.
  • Safety – The application needs to be safe to use. This includes making sure user details are secure.
  • Love/Belonging and Esteem – I’ve merged these levels together. In terms of software development, these levels would represent the user getting value from the application. Values would change depending on the needs of different stakeholders.
  • Self Actualization – This would be that mythical level of perfection.

An application cannot be ‘perfect’ without satisfying the lower levels of the pyramid. An application that is regarded as high quality would satisfy more than just the basic needs.

A satisfactory level of quality could be set using an alternative version this pyramid dependent on the needs of the business and end-user. The level of quality can be measured by deciding which level of the pyramid has all criteria met.

Alternative levels could include Speed, Efficiency, Reliability or Aesthetics. An application usually exists because a business wants to make money by providing something that the end-user needs. The levels should be set by the business and based on what the user needs from the application.

maslow's hierarchy of needs five stage pyramid
https://www.simplypsychology.org/maslow.html

My Definition

Quality is perfection, which we must aspire to achieve when developing an application.

The level of quality is the progress that has already been achieved in our attempt to achieve quality. Our aim is to continually improve on the level of quality that has already been achieved.

A satisfactory level of quality is decided by the business, and based on the needs of the user.

Quality may not be achievable, but that doesn’t mean we should not try and achieve it. We should keep moving closer to that level while there is still demand for it.

Further Reading

What is Quality? – Aleksis Tulonen, Flow of Testing
Maslow’s Hierarchy of Needs – Saul Mcleod, Simply Psychology
Definition of Quality discussion – The Club, Ministry of Testing

Sketchnotes

I started out with this task by sketch noting some ideas and quotes that had been shared on The Club. I also added some of my own thoughts and ideas. Here are my notes:

Sketch notes of other quality definitions plus my own thoughts and ideas.
Sketch notes of other quality definitions plus my own thoughts and ideas.

#30DaysOfTesting – Progress so far

  • Day 1 – Lookup some definitions of what ‘Quality’ is and share your own definition on The Club
  • Day 2 – Read and share a blog post on Quality
  • Day 3 – Pick a book to read that discusses ‘Quality’ and share on The Club why you’ve chosen it
    • Will be completed along with Day 30
  • Day 4 – Capture five different perspectives on Quality and share their similarities and differences.
  • Day 5 – Get some members of your team to join you in a game of Quality Jenga
    • Can’t complete due to COVID-19 Pandemic. Not sure how to play Jenga when everyone is working from home.
  • Day 6 – Find out what ‘Quality’ means to your teammates
  • Day 7 – Follow 5 people on social media who are sharing or working around ‘Quality’
  • Day 8 – Sit with your team and find out how you’re building ‘Quality’ into their work
  • Day 9 – Contribute to a discussion on The Club about ‘Quality’
  • Day 10 – Find and read feedback from your customers. What does this tell you about the quality of your product?
  • Day 11 – Watch the AMA on Quality Engineering and join the conversation on The Club
  • Day 12 – Create a visualization that can help describe the different aspects of ‘Quality’
  • Day 13 – Find, listen and share a podcast on ‘Quality’
  • Day 14 – Read about ‘Quality Characteristics’ and share a characteristic that matters to you
  • Day 15 – Ask five different teams within your organisation what is the most important quality characteristic for them
  • Day 16 – Pick a ‘Quality Characteristic’ and use it to guide an exploratory testing session
  • Day 17 – Pick an app that you use daily, what quality aspects of the app encourage you to use it?
  • Day 18 – Share a bug you have found in your system and the quality characteristic that is was potentially affecting
  • Day 19 – Read and share your thoughts on Principle 5 of Modern Testing
  • Day 20 – Look up and share a definition on Quality Engineering
  • Day 21 – Share a resource on how you might measure quality
  • Day 22 – Find out what metrics your internal stakeholders care about and why
  • Day 23 – Map out how ideas get to production and look for the biggest bottlenecks or problems
  • Day 24 – Share what quality metrics you track or what metrics you want to track
  • Day 25 – Research how an external company improves their ‘Quality’ – how can your team adopt these improvements?
  • Day 26 – Create a way to report to your stakeholders your team’s views on quality
  • Day 27 – What is the role of a quality coach?
  • Day 28 – Research the different between Functional Quality and Structural Quality
  • Day 29 – Contribute to a discussion on The Club about whether there is a difference between code quality and software quality
  • Day 30 – Share something you’ve learnt from the book you chose to read on Day 3.