Achieving Zen in Software Testing: A Journey Through Japanese Concepts
Hello there, I hope you are doing well! Welcome back to another interesting blog.
I was watching one of the NAS daily videos with my five-year-old recently. It was about a few Japanese facts. People are incredibly humble and kind. They also appear to emphasize respect for others. This piqued my curiosity to study Japanese culture further.
Then I got to know about a book called “Ikigai: The Japanese Secret to a Long and Happy Life‘. Reading that book was one of the life-changing experiences of my life. Yes, I enjoyed reading that book and suggested to a few of my friends and family members to read this book too.
However, my research on Japanese concepts continued. I discovered a wealth of fascinating facts and knowledge about Japanese culture. Finally, it appears that they have much to teach us.
Let’s study some Japanese phrases and the thoughts behind them in this blog. Also, how is this beneficial to software testers, and why should we have a good understanding of it.
Table Of Contents
What Are Japanese Concepts?
Japanese culture has had a long history of emphasizing excellence and appreciation of detail. Japanese concepts are ideas, values, and beliefs that are important in Japanese culture. Some examples include respect for elders, the importance of hard work, and the idea of harmony between people and nature.
These concepts help to shape the way people in Japan live their lives. Many of the concepts and philosophies developed in Japan, such as Kaizen and Kanban, have become popular in the software industry. But to my surprise, there are many more overlooked concepts that will enrich your life and help you be a better software tester.
Japanese Concepts for Software Testers:
Software Testers play an essential role in ensuring the quality of software applications. Let’s see in detail the Japanese concepts which can help us to elevate the testing process:
1. Kaizen: It’s an approach to continuously improve processes, products, and services on small incremental levels. A philosophy of continuous improvement focused on small incremental adjustments over time to improve quality.
In the world of software testing, Kaizen is an important concept that testers should be familiar with. Kaizen, which literally translates to “change for the better”, emphasizes small incremental changes over drastic reform, which can help ensure that any changes made are manageable and effective. Kaizen requires that everyone involved in a project take responsibility for their actions and ensure that processes are continually improved.
It is a flexible system that allows for changes to be implemented quickly and efficiently, as problems are identified and solutions are put forward. This makes it the ideal methodology for software testing, as testers need to be able to quickly identify and debug any issues that arise during Test execution.
2. Kanban: Kanban is a popular method for managing tasks and processes. It is a system that utilizes visual cards to track progress and prioritize tasks. The cards are placed on a board and visually represent tasks to be done. A process commonly used among software testers, emphasizes doing only the necessary tasks in order to reach the goal. Using visual signals to identify and stimulate process improvement during software testing – a Kanban system describes, visualizes, and manages the production process.
Here’s an example of how kanban works: Say you’re working on a marketing project for a client. As part of the project, you need to arrange social media posts, develop content, design sales brochures, and book webinars. You use sticky notes and put them on a Kanban board. The labels on the notes will be: “To-Do”, “In Progress” and “Done”.
You start by labeling the first note “To-Do”. You need to arrange the social media posts so you write “Arrange Social Media Posts”. You then write the other tasks on other notes and label them “To-Do” as well. As you begin working on the tasks, you move them to the “In Progress” label. Once they are done, you move them to the “Done” label.
The Kanban board lets you easily see which tasks you have done, which tasks are in progress, and which tasks still need to be done. By visually tracking tasks, it allows you to focus on the tasks that still need to be done.
In the world of software testing, there are a variety of concepts and principles that are essential to know in order to do one’s job effectively. Kanban is a powerful tool that can help software testers stay organized and efficient, leading to better results. Kanban works by breaking down tasks and resources into distinct stages, allowing software testers to easily identify bottlenecks and plan ahead for upcoming work.
3. Genchi Genbutsu: It’s a Japanese phrase meaning “go and see” that encourages software testers to observe and learn about the end-user experience. A notion that promotes traveling to the real location to obtain knowledge to make a more informed decision. Going to the source to gain a deeper understanding of a process, product, or anything related by directly observing and questioning.
It is a core part of the Toyota Production System (TPS) and is a central principle of the company’s philosophy. The lean manufacturing philosophy behind Genchi Genbutsu is that management should be thorough in their investigations, always going to the source of any customer or production issue to not just physically observe but also learn the underlying causes. For example, a customer is complaining about the application’s slowness. They try to replicate the user scenario (location, OS/device, user profile) and try to understand more about the root cause. Armed with this data, the project team will then be in a much stronger position to diagnose the issue and prevent it from happening in the future.
4. Shikata Ga Nai: “Shikata ga nai,” or “Sho ga nai,” is a Japanese phrase that means “it cannot be helped” or “it is what it is” and nothing can be done about it, accepting that there are certain situations and circumstances that are out of our control. It’s the art of letting it go. Sometimes after strenuous effort, things won’t work the way we wanted them to. For example, if you have worked hard for a production release, and something goes wrong in production, there are multiple reasons for that – not just insufficient test coverage. So, start work on the bugs and test the fixes. Also, make sure to add those scenarios to the regression test case suite.
In a nutshell, instead of thinking about it, work on the action items and just let it go.
5. Kata: Kata is a Japanese word that means “form” or “pattern”. It is often used to describe specific sequences of exercises used to teach martial arts techniques, such as Shotokan karate. A structured sequence of steps and actions used to practice and teach a skill. Every event will follow a specific pattern and we should implement this skill while studying the application behavior or debugging a defect. Getting to know the pattern can help you gain a deeper understanding of the application behavior.
6. Jidoka: Jidoka is an automated quality control technique pioneered by Sakichi Toyoda of the Toyota Corporation in the early 20th century. It is used to identify and correct defects in a process or product before it is sent to a customer.
Jidoka teaches machines and people to detect problems and take appropriate action. Automation with a Human Touch that focuses on preventing defects versus a quick discovery and repair.
For example, A manufacturer of widgets is using a jidoka system in their production process. Every time a widget is made, its form and function are assessed. If the widget fails these tests, the machine will shut down and alert a human operator. The operator can then investigate the issue and correct it before any further widgets are produced. This ensures that each widget meets quality standards and prevents bad widgets from being shipped to customers.
Similarly, we develop the product prototype and then we develop in sprints, which can help us to ensure that we are on track with the product features.
7. Jishuken: A competitive method of testing in which two tester teams are pitted against one another to improve and refine ideas or processes. Jishuken is a Japanese management style focusing on self-improvement and small, steady improvements in the form of Kaizen. It utilizes a team-based approach to problem-solving, incorporating small incremental changes in improvement processes. Jishuken revolves around a process of continuous improvement and self-reflection, conducted within a team and supported by leaders, to identify areas of improvement and develop strategies to address the issues identified. The concept puts forth the idea that a team can accomplish more when each individual gives up his own opinion to reach a common goal.
8. Muda: Muda is a Japanese business term for “waste”. It is derived from the Lean manufacturing production system and refers to any activity that does not directly add value to the product or service. A concept used for process testing and efficiency; identifying and eliminating unnecessary steps in order to improve the overall process. Waste or any activity that doesn’t add value to the product or service. In the entire Software Testing life cycle, we have to identify the waste and try to eliminate it. This saves a lot of our time and effort.
9. Poka-Yoke: Poka-Yoke is an approach to mistake-proofing (inadvertent error prevention) processes, products, and services to ensure the end user gets the expected and correct outcome the first time. The purpose of Poka-Yoke is to develop processes to reduce defects by avoiding or correcting (designed to show alerts or warning messages to the user) mistakes in the 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. We focus more on shift left defects and back-end testing to reduce the effort, cost, and time.
One simple example could include placing a sticky warning label right next to a hazard sign to draw attention to it, or having a different color key for each type of tool so an operator can easily identify the correct key. In Software Testing, we can implement this and focus more on error-prevention techniques in the early phases of testing.
10. Hansei: The Japanese concept of Hansei is a process of reflection and self-criticism used to improve one’s self. The term translates to “self-reflection” and refers to a reflective process that focuses on challenging one’s own beliefs and opening up to alternatives. Through Hansei, individuals can gain insight into how to solve their present challenges and identify areas of improvement. A concept of personal reflection after completing a task meant to improve future projects. Our retrospective meetings are a great example of the Hansei.
11. Ishikawa Diagram: An Ishikawa diagram, also known as a fishbone, cause-and-effect diagram, or Carter diagram, is a business tool used to identify, analyze, and prevent errors and defects in a process. The Ishikawa diagram is a graphical representation of various causes for an event that can help identify and categorize potential causes. It’s an organized way to look at an event, breaking down the individual components that cause it.
For example, a software project that is facing delays might look something like this:
Head of Fish (Problem Statement): Delays in Software Project
– People: Unskilled staff, incompatible skills with the task, lack of coordination
– Process/Systems: Poor planning, resource mismanagement, lack of documentation
– Materials: Inadequate budget, poor quality
– Environment: Poor environment, External dependencies
Once the potential causes have been identified, the team can organize and prioritize potential solutions. This helps the team to quickly and efficiently identify the root cause of the problem and take the necessary steps to remedy it.
Isn’t it way too interesting? I enjoyed learning about these Japanese concepts and found that in a way we are already using many of them in our processes and daily work. Not only technical, but sometimes we need to rethink our whole way of doing things. It’s a holistic process of mind, body, and soul.
I strongly believe everyone has something to teach us and we can learn from everyone. Same way, we can learn from people with different cultural backgrounds and that’s why inclusive teams are the best-performing ones.
Hope you enjoyed reading this blog. The list is so big, so stay tuned for the next blog to know more about a few other interesting concepts. please let us know what your favorite Japanese concept is and what makes you feel so.
Read more similar blogs by Pricilla Bilavendran:
How To Be An Open-Minded Tester?
Is there a way for software test engineers to manage stress in this culture of hustle?