Growing a Culture of Software Quality

A healthy software culture focused on quality adopts methods like peer reviews to minimize defects and maximize customer satisfaction.

Karl Wiegers
10 min readNov 5, 2019

--

A graphic that says “culture” and “quality” with Scrabble tiles.
Graphic by Author

An earlier article summarized an interview that Bas Peters (Solutions Engineer at GitHub) conducted with Karl Wiegers (Principal Consultant at Process Impact) on the importance of building a healthy software engineering culture. Our discussion also covered the importance of growing a culture that is focused on quality, and in particular the valuable contribution that technical peer reviews can make to such a culture. This article summarizes that interview focused on software quality.

Karl has been interested in software quality and peer reviews for more than 30 years. His book Peer Reviews in Software is a concise yet thorough presentation on multiple ways to conduct both software inspections and other types of peer reviews.

In software development people often talk about quality. How would you define quality?

I’ve heard many definitions, such as fitness for use, providing value to a customer, conformance to specifications, and the absence of defects. Those are all aspects of quality, but you can’t choose any one of them as a complete definition.

Quality has multiple dimensions. We’ve all used products that did what they were supposed to do functionally but had problems in some nonfunctional areas, such as performance, reliability, or usability. These factors are often called quality attributes.

Often you must make trade-off decisions among various quality attributes, such as security versus performance or usability. You can’t optimize all of these attributes simultaneously. So each project team must consider what “quality” means for their product so they can work toward common objectives.

How does a lack of quality practices reveals itself in an organization?

One obvious indicator is a lack of customer satisfaction. But you don’t want to wait until after delivery to discover quality problems. That’s one advantage of agile approaches. Some working software is…

--

--

Karl Wiegers

Author of 14 books, mostly on software. PhD in organic chemistry. Guitars, wine, and military history fill the voids. karlwiegers.com and processimpact.com