
How To Use Poka-Yoke (Mistake Proofing) Technique To Improve Software Quality
Last updated: January 05, 2023 Read in fullscreen view



- 01 Apr 2022
Ishikawa (fishbone) diagram in software project management 2239
- 24 Nov 2022
Genba Genbutsu Genjitsu (3Gs), (Go to the Genba & see for yourself!) 2069
- 09 Sep 2022
Kaizen, Kaikaku and Kakushin – what’s the difference? 2065
- 02 Nov 2023
Differences between software walkthrough, review, and inspection 1537
- 02 Nov 2021
What is Terms of Reference (ToR)? 1062
- 02 Feb 2022
Yokoten: Best Practice Sharing from a success 997
- 18 Oct 2021
Key Elements to Ramping Up a Large Team 875
- 15 Feb 2024
What is a Cut-Over in Software Development? 855
- 03 Apr 2022
Microsoft Solutions Framework (MSF) 850
- 01 Aug 2024
The Standish Group report 83.9% of IT projects partially or completely fail 832
- 10 Nov 2021
5S methodology - the SECRET to Japanese SUCCESS 801
- 10 Dec 2021
What is a Kano Analysis? 597
- 03 Jan 2024
What is the Ringi process? 595
- 13 Apr 2024
Lessons on Teamwork and Leadership from Chinese story book "Journey to the West" 578
- 20 Jul 2022
Software Myths and Realities 578
- 09 Sep 2022
What is 5 Whys (Five Whys)? 567
- 13 Jul 2022
Applying the business mantra "HORENSO" to Achieve 360-degree Communication 561
- 17 Mar 2023
Reduce waste in software development with 3M model: Muda, Mura, Muri 533
- 01 Dec 2023
What is Amoeba Management? 523
- 02 May 2022
What Is RAID in Project Management? (With Pros and Cons) 513
- 15 Jul 2022
Hansei Methodology: Continuously Engaging People in Improvement 495
- 29 Aug 2022
Difference between Kaizen and Innovation 492
- 13 Jan 2020
Quiz: Test your understanding project cost management 481
- 14 Jun 2022
Example and Excel template of a RACI chart in Software Development 451
- 15 Apr 2022
Total Quality Management (TQM) - Japanese-style management approach to quality improvement. 435
- 18 Dec 2023
The Cone of Uncertainty in Scrum & Requirement Definition 427
- 01 Mar 2022
The Toyota Way Management Principles 408
- 27 Aug 2022
Kaizen - Culture of Continuous Improvement and Lean Thinking 398
- 10 Nov 2021
Automated QA Outsourcing – Hire a Professional Software Testing Team 386
- 27 Jan 2020
Should a project manager push developers to work more hours due to mistakes of manager schedule setting? 368
- 06 Jun 2022
HEIJUNKA: The art of leveling production 367
- 19 Sep 2022
Jidoka in Software Development and Odoo ERP/MRP 347
- 12 Aug 2022
What is End-to-end project management? 293
- 03 Jan 2023
Organizing your agile teams? Think about M.A.T (Mastery, Autonomy, Purpose) 283
- 02 Nov 2023
Unlocking Success with The Amoeba Management Model: Key Lessons, Pros & Cons, and Finding the Perfect Fit 280
- 17 Oct 2021
Does Fast Tracking increase project cost? 271
- 07 Jul 2022
Managing Project Execution Terms 268
- 26 Sep 2024
Successful Project Management Techniques You Need to Look Out For 262
- 09 May 2022
Build one to throw away vs Second-system effect: What are differences? 246
- 06 Jun 2022
Change Management at the Project Level 225
- 22 May 2022
What are common mistakes that new or inexperienced managers make? 217
- 01 Jun 2020
Japan Business Review (JBR) 191
- 15 May 2022
20 Common Mistakes Made by New or Inexperienced Project Managers 189
- 12 Mar 2022
The u-Japan concept 182
- 01 Aug 2022
Is planning "set it and forget it" or "set it and check it"? 180
- 10 Apr 2024
The Parking Lot Method: Unlocking a Simple Secret to Supercharge Your Productivity 177
- 04 Mar 2024
Tree Ring Management: Take the Long Term View and Grow Your Business Slowly 168
- 02 Dec 2021
3 Ways to Avoid Scope Creep in IT Consulting 156
- 07 Dec 2023
The Myths Of Requirements 154
- 02 Jun 2024
Reviving Ancient Wisdom: The Spiritual Side of Project Management 132
- 02 Apr 2022
Productivity vs. Efficiency – What Are the Differences? 129
- 10 May 2022
Levels of Teamwork 120
- 07 Dec 2023
12 project management myths to avoid 116
- 01 Feb 2024
How long does it take to develop software? 110
- 30 Nov 2023
Project Managers, Focus on Outcomes — Not Deliverables 110
- 24 Nov 2023
The project management paradox: Achieving MORE by doing LESS 104
- 02 Nov 2022
Difference between Change Management and Project Management 93
- 21 Jun 2024
Dead Horses and the Escalation of Commitment 92
- 05 Jun 2023
Fractional, Part-Time (virtual) or Interim CTO: Who Will Cover Your Business Needs? 77
- 23 Jun 2024
Best Practices for Managing Project Escalations 64
- 01 Mar 2024
10 Project Management Myths 56
- 07 Mar 2023
Japan’s Unusual Farming Strategy: Renting Land and Leaving It Fallow for 5 Years — Here’s the Truth… 4
Overview of Poka-yoke in Software Engineering
Software Engineering is a discipline that aims at producing high-quality software through a systematic, well-planned approach to software development.
It contains many good practices, following the standards to achieve the quality product. The three main phases of Software Development are Analysis – Design – Implementation. To accomplish high-quality software, it is essential to produce a defect-free product.
Defect Management
A defect is an unexpected or undesired behavior that occurs in the product. Anything related to a defect is a continual process, not a particular state.
Finding and fixing defects in the early stages of Software Development reduces time, rework and money. Finding the defect in later stages always costs multiple times more than the early stages. It enhances quality by adding reliability, portability, maintainability, etc.
Hence it is advisable that every company should go with a Defect management system and defect management team at every stage of the development to attain good quality in products and to gain customer confidence.
One such mistake-proofing technique is POKA-YOKE.
What is Poka-Yoke?
It’s a quality assurance process introduced by Japanese engineer Shigeo Shingo. This term is used in the Japanese language as “Poka” meaning mistake and “Yoke” meaning prevent i.e. mistake preventing or mistake-proofing technique.
POKA means MISTAKE
YOKE means PROOFING
The purpose of Poka-Yoke is to develop processes to reduce defects by avoiding or correcting (design to show alerts or warning messages to the user) mistakes in early design and development phases. This technique is mostly used in manufacturing industries but now this effective technique is also adapted to software development processes as well.
Poka-Yoke example from the manufacturing industry
A good example of the Poka-Yoke design from the manufacturing industry – SIM card slots in cell phones are designed in such a way that the user is allowed to insert SIM cards in a correct way only. There is no chance for the user to make a mistake while putting the SIM card on a cell phone. This makes the design mistake proof.
Poka-Yoke example from a Software Application
The perfect example of the Poka-yoke process in the Software Application is – Gmail email attachments feature – when you type the word “find attached” while composing a new email and try to send it without attaching a file Google will show you a pop-up reminder saying that you used words “find attached” in your email but did not attach any files, do you still want to continue sending?
How Does Poka-Yoke Technique Work?
Steps to Implement the Poka-Yoke Process:
Below are a few steps to design and implement a process to prevent Software Defects:
- List all user scenarios and end-to-end test cases for the application.
- Analyze all these user scenarios by asking the 5-whys questions to understand the ways these scenarios can fail.
- Once you identify the ways these user scenarios can be wrong, you can design and apply a Poka-Yoke technique to avoid the possible problems (For example, this design could be a simple Unit test to check if any function that was written is working properly or not).
- Make sure the technique is designed to avoid defects that are working properly by giving errors or warning messages for incorrect input or handling of user scenarios.
- Once the trial is passed, add this technique to the list of Poka-Yoke processes to be performed each time on a new release/build. (In the above Unit testing example, once the unit test is written to check the function code, check if it is working for positive and negative values. When this test passes, add it to the repository of “Unit tests” to be executed each time any changes are made to the relevant modules)
- Measure the success of this Poka-Yoke process. Check if this technique has really prevented or caught defects when happening.
Categories of Poka-Yoke
- 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 the design phase itself.
The Quality Assurance team can help to prevent these defects by reviewing the Software Requirement Specification documents. All issues identified at this stage are addressed in the software coding phase and prevented from being carried to later stages.
The manufacturing and software industry examples provided above are good examples of defect prevention techniques.
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.
What are 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.
- Good Poka-Yoke should be accurate enough to find issues when they occur.
- A good Poka-Yoke should be designed in such a way that it should stop the most common issues occurring in the software.
- It should be part of the Software Design and Coding process.
Need for Poka-Yoke in Software Design Phase
To develop quality software, it is important to design it according to the user’s expectations. The user should be able to use/handle the software with ease without making any costly mistakes.
Poka-Yoke examples in design and quality
#1) An example of missing attachment files while composing an email using Gmail.
#2) Some websites show the password strength indicator to show password strength. It also guides users to use a strong password with the combinations of characters and numbers.
#3) Google search engine feature to auto-suggest spelling corrections for the user search query. This helps the users to avoid making inadvertent mistakes.
#4) Banking websites use a double text field feature to accept sensitive information like passwords or account numbers. The second text field is usually encrypted to avoid making any mistakes while providing the input value and to check if both the text field values match.
The need for Poka-Yoke in Software Development
From countless industry examples, it’s now well known that the cost of fixing a defect after product release is many times greater than fixing it in the development cycle.
The best solution to avoid post-release issues is introducing the Poka-Yoke techniques which could catch defects in early development phases making it cheaper to fix. The Poka-Yoke process implementation largely depends on the Tester’s ability to capture and eliminate the issues.
Poka-Yoke examples in Software Development
- Unit testing is one of the most effective means of mistake-proofing software development.
- Having validation of Poka-Yoke in the kit is always a good suggestion for developers. Validation mistakes should be handled in your code. These validation issues should be revisited and updated periodically.
- A common and most effective Poka-Yoke is to hire the right candidates to mistake-proof your software.
Conclusion
Making mistakes is OK; just don’t make the same mistake again and again. To avoid making the same mistakes again there should be some checks or processes in place. Poka-Yoke techniques are developed to solve this problem.
Article References:- Shigeo Shingo, Zero Quality Control
- Wikipedia reference
- Boris Beizer, Software Testing Techniques, 2nd ed. Van Nostrand Reinhold
About Author: This is a guest post by Nataraj Kanchyani. He is working as a Senior Software Engineer-Testing at Centurylink Technologies India Pvt Ltd, Bangalore.
