Poka yoke, a Japanese term that means mistake-proofing or fail-safing, is a vital element of an effective process quality control (QC) system. Poka yoke is also called Zero (Defect) Quality Control (ZQC). It recognizes that human errors are unavoidable but do not necessarily have to result in defects. It was pioneered by a Japanese quality exponent and a key developer of the Toyota Production System, Shigeo Shingo. It employs a set of proactive measures, particularly a 100% inspection at the source to detect process errors before they cause defects. Shingo made one crucial distinction between a mistake and a defect. Mistakes are inevitable. People are human and make mistakes by failing to concentrate all the time, or by not completely understanding the instructions they are given, or by not following their instructions all the time without fail. Defects result from failure to prevent a mistake from reaching the customer; therefore, defects are entirely avoidable. The goal of poka yoke is to design the process so that mistakes can be prevented or immediately detected and corrected so that the customer does not receive a defective product even if mistakes have occurred. The emphasis is on prevention and quality measures at the source. This includes stopping the process upon detection of process errors that may cause defects downstream. The process is restarted only after the cause has been identified and eliminated. The detection and elimination of errors can be either manual or automated. Empowered process workers can proactively detect process errors and initiate appropriate corrective measures. Or the error elimination can take place automatically upon detection of product or process deviation. This chapter presents two powerful approaches to delivering defect-free software as part of a DFTS deployment: controlling complexity and mistake-proofing (poka yoke). We have argued that mistakes are a major source of defects that requires even more attention than Statistical Quality Control (SQC), especially in a software development context. We will discuss how complexity reduction and mistake-proofing are linked and how controlling complexity is a smart way to eliminate the causes of potential mistakes substantially before a poka yoke deployment. Although poka yoke is a simple concept, it requires considerable discipline and competence across the process supply chain, involving not only the software development firm but also outsourcing firms and customers. In the absence of effective coordination with various partners, it will not only fail to deliver, but it also may cause unnecessary delays and bottlenecks. On the other hand, when managed properly, this relatively simple system can have a huge impact on software cost, quality, and development time. |