Published on

The 3 Tenets of Quality

Authors
  • avatar
    Name
    Glendon Ngo
    Twitter

What does the word "quality" mean to you? In this post, I write about my 3 tenets of quality in how to approach quality within the field of software engineering. The 3 tenets are:

  1. Quality is a Mindset.
  2. Quality has to be built in, not bolted on.
  3. Quality should be treated as a first class citizen.

1. Quality is a Mindset.

Quality is not a service. It’s a mindset. When quality is not a mindset, it enables people to see it as a service and only think about it afterwards

2. Quality has to be built in, not bolted on.

Testing must be an avoidable aspect of software development. The marriage of development and testing is where quality is achieved.

James Whittaker, the author of How Google Tests Software has said:

Quality is achieved by putting development and testing into a blender, and mixing them until one is indistinguishable from the other.

James Whittaker worked as a freelance developer specializing in test automation. He worked in 13 different countries over a five year period, most notably for IBM, Ericsson, SAP, Cisco and Microsoft. During this time he performed seminal research in software quality and developer productivity and published dozens of papers, patents and conference presentations.

In 2009 he joined Google as an engineering director and led teams working on Chrome, Chrome OS, Maps and Google+. He was also the keynote speaker for Google Developer Days. In 2012 James rejoined Microsoft to build the Bing Information Platform and is now a Distinguished Engineer working on the Internet of Things and intelligent machines.

3. Quality should be treated as a first class citizen.

Steve Jobs on Quality:

Customers don't form their opinions on quality from marketing, who won the most awards on quality, they form their opinions on quality with their experience on the products and services.

I think Steve Jobs is absolutely right about this. We have to start with the basics and improve our products and services, and not the marketing itself. The bottomline is that users evaluate the quality of the product, and not the quality of the marketing we do to sell this product.

Within engineering, quality should not be solely left at the hands of the QA department or tester(s).

Everyone involved in a team project should treat quality as a first class citizen. However I think the people most skilled in quality should put systems and platforms in place enable developers to accelerate their testing by:

  • Putting systems in place to catch issues early and raise visibility of test results.
  • Alleviate pain points in the team’s processes
  • Accelerate the lifecycle to deliver the most value without sacrificing quality

Thanks for reading about the 3 tenets of quality!

Glen