December 30, 2013

I Love Poka-Yoke – A New SQA Process/Technique



Poka-Yoke is a quality assurance process introduced by Japanese engineer Shigeo Shingo. This term is used in Japanese language as Poka means mistake and Yoke means prevent i.e. mistake preventing. So we can also call the Poka-Yoke as mistake proofing technique.


The purpose of Poka-Yoke is to develop processes to reduce defects by avoiding or correcting (design to show alerts or warning messages to user) mistakes in early design and development phases. This technique is mostly used in manufacturing industries but now this effective technique is also adapted in software development processes as well. I’ve described two (2) examples below about the Poka-Yoke process in manufacturing industries and software development processes.

Example 1 - Manufacturing Industry: The cell phone company designed the Sim card slot by using the Poka-Yoke technique; it is an implementation of manufacturing level Poka-Yoke. Cell phones are designed in such a way that user is allowed to insert SIM card in correct way only. There is no chance for user to make a mistake while putting SIM card in a cell phone. This makes the design mistake proof


Some cell phones allow the reverse way insert of Sim card; but those are not working. System display message about Sim card availability. 



Example 2 - Software development: Poka-Yoke is used for software application. Google used Poka-Yoke more. The perfect example of Poka-yoke process in software application is – Gmail email attachments feature – when we type word ‘find attached’ while composing a new email and try to send it without attaching a file Google shows a popup reminder saying that you used words “find attached” in your email but did not attach any files, do you still want to continue sending?


  
Also, Poka-Yoke has been used for the Password strength, spelling correction on search etc. on Google.



Poka-Yoke technique is using for:

  • Defect Prevention
  • Defect Detection

Defect prevention is the most important activity in SDLC. This method is used to identify all possible issues and actions needed to eliminate those issues. Many software defects can be prevented in design phase itself. Quality assurance team can help to prevent these defects by reviewing the software requirement specification (SRS) documents. All issues identified in this stage are addressed in software coding phase and prevented from carrying to later stages. The manufacturing and software industry examples provided above are the good examples of defect prevention technique.


Defect detection is the most common task for quality assurance teams. QA teams use various approaches and strategies for executing test cases effectively. Defects are detected by many other testing methods like smoke and exploratory testing.

How Poka-Yoke Technique Works?


Below are few steps to design and implement a process to prevent software defects:

  1.  List all user scenarios or end-to-end test cases for the application.
  2.  Analyze all these user scenarios by asking 5-Whys questions to understand the ways these scenarios can fail.  For example: The problem is: The vehicle will not start.

·  1st Why? - The battery is dead.

·  2nd Why? - The alternator is not functioning.

·  3rd Why? - The alternator belt has broken.

·  4th Why? - The alternator belt was well beyond its useful service life and not replaced.

·  5th Why? - The vehicle was not maintained according to the recommended service schedule. (fifth why, a root cause)

  1. Once you identify the ways these user scenarios can be wrong, design and apply a Poka-Yoke technique to avoid the possible problems (e.g. this design could be a simple unit test to check if any function written is working properly or not).
  2. Make sure the technique designed to avoid the defect is working properly by giving errors or warning message for incorrect input or handling of the user scenario.
  3. Once the trial is passed add this technique in the list of Poka-Yoke processes to be performed each time on new release/build. 
  4. Measure the success of this Poka-Yoke process. Check if this technique has really prevented or caught defects when happening.

The Qualities of a Good Poka-Yoke Process


  • Poka-Yoke should be simple to create and maintain. It should be easy to handle and cost-effective. Maintaining a complex Poka-Yoke is time consuming and often results in issues if not maintained properly.
  • Poka-Yoke should be designed early in SDLC so that it can detect issues quickly.
  • A good Poka-Yoke should be accurate enough to find the issues when they occur.
  • A good Poka-Yoke should be designed in such a way that it should stop most common issues occurring in the software.
  • It should be part of software design and coding process.



Making mistakes is OK; just don’t make the same mistake again and again. And to avoid making same mistakes again there should be some checks or processes in place. The Poka-Yoke techniques are developed to solve this problem.
 



No comments: