The Zero-Defect Vision: Error-proofing Your Way to Quality

[article]

How many times have you had the conversation at work about how software is so complex and it should be an accepted fact that there are going to be a significant number of defects? Would you be comfortable if your doctor, surgeon, airline pilot, bridge-builder, car manufacturer, or pharmaceutical company had similiar conversations?

It’s time we all started to take our profession to the next level of quality and stop making excuses. We need to go to war on our own behaviors and processes, working toward a goal of zero defects. We need to follow in the footsteps of the masters and learn from what companies like Toyota have achieved through the teachings of W. Edwards Deming and Joseph Juran. It is time to bring our own industry into the twenty-first century and stop living in the shadows of the 1970s.  Error-proofing—preventing errors from happening instead of detecting them at the end—is the path to higher quality in our products, processes, and people.

The Goal
Zero defects is an achievable goal for an organization and a bold statement regarding your tolerance for errors. I’m sure you’re already thinking of skipping this article because it’s not for you … stop! You might be the greatest barrier in achieving high-quality results like zero defects, because you believe that it can’t be done. Do I have your attention now? Please stick with me and read on. Maybe you’ll learn something that will help you and your organization break the barrier.

You’ll need six elements to get started:

  1. Desire: There has to be a desire from everyone to improve. If there is not a sense of urgency to change, then it will not happen.
  2. Knowledge: Once there is a desire to change, your organization must acquire knowledge on what to do.
  3. Skill: After everyone increases his knowledge and visualizes a path forward, he needs to develop skills. The organization needs to practice techniques that enable small wins.
  4. Determination: There will be many times when it gets frustrating or seems impossible to move forward. People seem to get focused much too quickly on what can’t be done versus what can be done. This is where the determination to get better must overtake the pain of the change.
  5. Courage: We must have the courage to change and challenge the patterns that we’ve learned from the past. If nobody has the courage to put everything on the line, change is much less likely to occur.
  6. Humility: Sometimes, no matter how hard we try to get things right, stuff happens. Having the humility to understand that we are all human and mistakes happen, keeps us open to being able to learn from those mistakes.

Why Do We Need to Error-proof?
Software and services organizations are under increasing pressure to deliver more value–faster than ever before–at a higher quality than we’ve been able to economically consider. However, as we have seen in other industries–most notably the automotive industry–the inability to meet this challenge is a company killer. Today, the fear of the consequences of changing is much less than the reality of what will happen if we don’t.

Lean enterprises focus on quality in the entire system. They work to prevent errors in their processes using root cause analysis techniques and immediate action. Lean is not just something being used by companies for manufacturing and assembling; companies use lean in all their system processes. It’s just that we often reference the assembly and manufacturing of products because they are easier to visualize.

From an organizational perspective, the development of software has a lot of moving parts. It involves more than just the coding and testing. In order to error-proof a process, we have to look at the entire process. Everything has to be inspected:  The selection of people, the use of techniques, the selection of a project, the delivery mechanism that gets the product to the end-user, and the support mechanisms. Often when a company brings up the word “quality,” software testing and the quality assurance (QA) group are immediately focused upon. This is one source of the problem in improving quality. As Mary and Tom Poppendieck state in their book Implementing Lean Software Development, the job of QA/testing is to prevent defects, not find them. They should champion process improvement efforts that ensure quality during all phases of product development. In a high-quality environment, everyone is responsible for quality. 

I have challenged organizations that I work with to achieve a 99.9997 percent first-time pass rates in their current test phases. This often shocks people and they become angry at me for even suggesting that. However, they should strive to achieve this very goal. If this is not possible with their current processes, then change is needed to improve. This goal would force them to take a hard look at how to move from error detection at the end of the process to error prevention throughout the process. When we retrain ourselves to think in this way, we will begin the journey to the zero-defect vision.

What Is Error-proofing?
The Lean Enterprise Memory Jogger,” a nice little guide to lean techniques, has a good definition for distinguishing between errors and defects:

Error: “Any deviation from a specified process. Errors cause defects in products or services.”

Defect: “A product or service that does not conform to specifications or a customer’s expectations. Defects are caused by errors.”

Error-proofing is a structured approach to ensuring quality all the way through your work processes. The focus is on discovering the sources of errors through fact-based problem solving techniques, such as the Five Whys and A3 methods. The good news is that we need only learn to use the same techniques that have been developed over the past fifty or sixty years.

Traditionally, many organizations centered on identifying and counting defects detected during development and then attempted to fix them in the later phases of the development. I would again present the challenge of eliminating the need for a defect management system and the practice of making release decisions based on achieving an “acceptable” number of detected defects. There is rarely a concerted effort to find the root cause and eliminate the cause of defects in order to prevent them from occurring in the first place.

Even as organizations have implemented agile techniques, many have not made this critical shift in thinking. While they have become better than they were in the past, they have plenty of room to improve by using error-proofing techniques, such as continuous integration and test, automated unit and acceptance level testing, and shortened time cycles. Only then will they really see the benefits in lower cost, faster speed, and increased customer satisfaction. Remember that agility is a dial, like a volume control, and not a switch. You don’t just turn it on. The goal is to increase agility until you and your customers are comfortable.

In part 2 of "The Zero-defect Vision," I examine the common sources of errors in product development activities. By being aware of the things we can change in our environments, we can reach our goal of preventing errors. Then, a number of techniques can be employed in order to help teams work towards a zero-defect goal.

Tags: 

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.