Software Quality: It’s Not Just for QAs Anymore
To paraphrase Mark Twain, “Everybody complains about quality but nobody does anything about it!” There have been many attempts at improving the overall quality of software over the past few decades, yet apps stubbornly resist and failures are all too common.
This session will begin with a discussion of the differences between subjective and objective definitions of quality, followed by demonstrations that will help audience members understand how the limits of human cognition contribute to defective products.
The presentation will examine the essential components of effective software quality systems and cover a broad range of quality-related topics, including:
- Statistical Quality and Process Control
- The Cost of Quality (CoQ)
- Defect removal
- Quality across the software development lifecycle
- Why implementing quality systems is different in IT than in other industries
The presentation will wrap up with a discussion of how Agile practices relate to quality – the Good, the Bad, and the Meh.
Outline/Structure of the Workshop
There are no prerequisites for this presentation, since everyone thinks they already understand quality (in true Dunning-Krueger fashion). However, the session is designed to challenge the audience to examine their existing notions. The structure of the session is in three broad parts:
Part one sets a baseline so that everyone has a common understanding of quality concepts, beginning with what quality is and contrasting subjective and objective definitions. The audience and I will discuss processes, both natural and human-based, in general and the software development lifecycle in particular. Special attention will be paid to how software differs from other types of products. Finally, we will examine how the human mind models reality. Exercises will demonstrate some of the limitations of human cognition that contribute to poor quality.
The second part is a deep dive into quality practices and techniques that have been developed over the past seven decades and attempts to apply them within the IT industry. Individual topics covered include:
- Symptoms of ineffective quality systems
- Quality control (QC), quality improvement (QI) and quality assurance (QA)
- Cost of Quality (CoQ)
- The essential elements of effective quality systems
- Defect removal, including techniques for measuring effectiveness
Since this is an Agile conference, third part of the presentation will examine Agile’s relationship to quality. I call this section the good, the bad, and the meh. Agilistas frequently claim that an Agile mindset is key to producing quality software. I’ve even heard a high-priced Agile consultant claim that quality was “baked into” Agile. This represents a fundamental misunderstanding of what quality is and how it relates to the development process.
To the degree the session has been successful, participants will have a fresh perspective on quality and an understanding of what needs to be done within their organization to improve the quality of their software products.
I also hope to learn from the experiences of the participants to broaden my outlook.
Anyone who wants to understand what quality is and how it can be achieved. This presentation is most definitely NOT just for QA personnel, since quality techniques must be applied at all stages of development. Software developers and managers are highly encouraged to attend and learn how quality affects them.
Prerequisites for Attendees