The manufacturing industry has inspired many software development ideas and processes. A good example is the lean manufacturing philosophy that originated in the Japanese manufacturing industry. In the years following the agile manifesto, lean thinking began to gain prominence in software development. Agile software development has embraced several lean concepts. Lean encourages you to focus on the things that add value by eliminating the eight wastes.
WHAT IS LEAN?
Toyota production systems developed the idea of lean manufacturing in the 1940s.
Lean manufacturing is a philosophy that focuses on maximizing productivity and minimizing waste. Lean is all about “doing more with less.” It is about focusing your energy on creating customer value.
Waste is anything that doesn’t add value to the customers. It's anything a customer wouldn't like paying for. Waste is any activity that uses resources but does not add value to the customer. Lean is a systematic process of reducing waste (called "Muda" in Japanese). The key to delivering customer value is to identify and remove waste.
In this article, we will explore the eight wastes of lean applied to software testing and how they can be eliminated.
1. INVENTORY
Inventory means the material needed to manufacture a product that is kept in stock. More inventories can slow down a business. Overstocking can result in longer lead times, damage to goods, and higher storage costs. Since inventory has associated holding costs, it is considered waste. In software testing, inventory represents partially completed work. Some examples are shared below:
INVENTORY | HOW TO REDUCE? |
E.g., 1. Services on the backend are ready, but the front end needs to be developed. E.g., 2 The code is ready, but testing still needs to be completed. |
|
|
|
|
|
2. OVERPRODUCTION
Overproduction is producing more products than are needed.
Overproduction leads to waste as it produces more products than your customer requires. It results in storage problems and an inability to meet customer demands.
In software development, extra features are a form of overproduction. Organizations are constantly adding new product features to gain a competitive edge. Adding features does not always make a product better. Customers only use some of your software's features. 80 percent of customers roughly only use 20 percent of the features in your product. There are many features that customers pay for that they don't use. It is important to know what features your customer's value.
Chinese app developers feel their consumers are attracted to a chaotic bazaar experience. However, this is different for the rest of the world.
Your customers will not appreciate excessive features, as they can find your product more complicated and frustrating. In addition, it makes it harder to maintain for the Development teams. In addition, development teams find it cumbersome and time-consuming to maintain these features
.
HOW TO AVOID OVERPRODUCTION?
- TAKE THE MINIMUM VIABLE PRODUCT (MVP) APPROACH - Launch your product with only the essential features that will attract early adopters. Take an iterative approach that eliminates waste by validating a product idea.
- BE THE DEVIL'S ADVOCATE - As a tester, play the devil's advocate when requesting changes. Fulfilling customer needs are essential. However, you don't build something just because of one customer's request or suggestion. Consider whether the new feature will add value to a broader segment of users and whether there is a long-term vision for it. Never hesitate to question and debate with your product managers.
3. OVERPROCESSING
Overprocessing is putting more work than required into producing the product. Adding extra steps with no added value is a waste. Overprocessing wastes money, time, and resources. Here are some examples from software testing:
OVERPROCESSING | HOW TO REDUCE? |
1. An excessive amount of test documentation, such as overly extensive test cases, huge test plans following IEEE format, etc., |
|
2. Overengineering your test automation.
Wasting time reinventing the wheel with test automation frameworks. |
|
3. Testing unwanted(too many) features during regression testing. |
|
4. Repetitive testing, testing the same thing again and again every cycle. |
|
5. Unnecessary meetings |
|
4. WAITING
Waiting is the most common waste in manufacturing. In manufacturing, it is essentially waiting for people, equipment, materials, and information to arrive. As a result, people or processes must wait until the next step is ready.
The following are some examples of waiting in software testing and how to reduce them:
WAITING | HOW TO REDUCE? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5. TRANSPORTATION
Not all transportation is waste. Unnecessary movement of the product, raw materials, or information is considered waste in lean. Transportation increases expenses, wastes time, and increase the risk of product damage or loss without adding value to the customer. In software development, transportation can be equated to ‘Handoffs’. Handoff means transferring responsibilities/ownership/information from one entity to another. Typically, they are considered wasteful because one team or individual needs to wait for another to complete a task before getting started due to Sequential development activities. E.g., the handoff of designs from designer to developer, the handoff from developer to testers, tester to devops engineer, etc.
Here on some of the relevant examples of transportation waste and ways how to reduce it
TRANSPORTATION | HOW TO REDUCE? |
|
|
|
|
6. MOTION
Motion refers to the excessive or unnecessary movement of employees or equipment. In transportation, waste is primarily caused by the movement of the product. In motion, waste is caused by the unnecessary movement of people.
For instance, a poorly organized factory layout where tools and parts needed to complete a specific task are located in the wrong places. Such a setup forces workers to walk back and forth to use a piece of equipment. Therefore wasting time and effort and slowing down the process.
MOTION | HOW TO REDUCE? |
|
|
|
|
|
|
|
|
7. DEFECTS
Defects cause manufacturers significant time and money to repair. Software defects are similar to manufacturing defects. Defects are inevitable in software development because of their complexity. The problem is defects lower the software quality and negatively impact the end user. The cost of finding the bugs is expensive.
Furthermore, defects lead to rework, which wastes time and effort.
Defects can be reduced in several ways, making an article of its own. The following are a few ways to do so:
- MAKE TESTING THE ENTIRE TEAM RESPONSIBILITY - The responsibility for quality lies with everyone in the team, not just with the tester. Closing the gap between testing and coding.
- BUILD QUALITY IN - Testing throughout the software development life cycle performs testing only at the end. Build quality into everything you do. Quality is built-in rather than added later. Test from the earliest possible stage of software development and integrate quality into every step of the development cycle. Embrace good practices like Unit testing, Test-Driven-Development(TDD), Behavior-Driven Development (BDD), Automated checks, CI/CD, Pair testing, etc.
8. UNUSED TALENT
In manufacturing, unused talent refers to wasted employee talent and creativity. Employees' creativity and skills are wasted when they are not utilized fully. Unused talent is often overlooked behind more visible waste.
NON-UTILIZED TALENT | HOW TO REDUCE? |
|
|
|
|
E.g., Assigning data entry or customer support responsibilities for testers.
|
Taking on more responsibilities as a tester is a good thing. However, it’s a waste of work that is underutilizing and inappropriate for your skills. |
CONCLUSION
You don't have to remember these eight categories of waste. In the end, waste is waste, regardless of its category. The important thing is to recognize waste in the workplace and eliminate it. Getting rid of waste is a continuous process, not a one-time task.
During your next testing cycle, determine whether the activities, processes, practices, tools, etc., you and your adopt add value to your customers. Next time you have a sprint retrospective, discuss the wastes you identified. Find the root causes for the waste, and explore possible solutions with your team. Get rid of the things that add no or little value.
GO AHEAD…MAXIMIZE VALUE AND MINIMIZE WASTE!
DO A GREAT JOB AT TESTING.
IMAGE CREDITS - HTTPS://STORYSET.COM/