Site icon Mohamed Sami

The 8 Software Process Development Wastes

8 types of wastes

Wastes exist in many types and forms that hinder the business from operating in an optimum way. Waste management is one of the most effective ways to increase the productivity of any business while It is important to understand exactly what waste is and where it exists to eliminate it.

The waste can be defined as any action or step in a process that does not add value to the customer.

To identify these waste actions or steps, we need to understand how the business work to achieve its goals and objectives. Each business can be modeled through its services, products, capabilities, and skills that are important factors that shape the different business processes to provide those services or products and utilizing the business capabilities and skills. The process itself can add value or waste to the business.

Similarly, in software engineering processes this waste can affect the productivity of the team and the end results of the software development and delivery.

The purpose of this article is to highlight the different types of waste according to the seven industrial wastes originated in Japan, where waste is known as “muda.” “The seven wastes” is a tool to further categorize “muda” and was originally developed by Toyota’s Chief Engineer Taiichi Ohno as the core of the Toyota Production System, also known as Lean Manufacturing. This was the inspiration point to the Lean Software Development, while the waste management can be applied to any software process model.

Software processes differ between how they are managed and executed based on the process model, project context, team maturity, …etc.
The typical wastes found in manufacturing environments are quite similar to software engineering environments. For each waste, there is a strategy to reduce and eliminate its effect on a company, thereby improving overall performance, quality, and delivery.

The Seven wastes + 1

They are known as TIMWOOD, the additional one in the improper usage of the existing skills and talents

Types of Wastes

We will discuss each waste, its cause, and how we can reduce this waste through the process.

Transportation

This type of waste in manufacturing is related to the movement of products from one place to another, for example, you need to move the raw material from storage or inventory to the production line, which takes time, effort, and cost which can make unnecessary delays.

We typically face the similar transportation waste in software industry in different phases of the process model, for example, planning and analysis phase, but mainly the information transportation, there are some transportation waste from place to place, or from person to person to meet different customers, requirements elicitation, presenting, discussions, meetings, and handoffs.

We can see that waste in handoffs, for example, Passing information from one team member to another or to another functional unit, which may cause different interpretations of information. For example, communicating customer requirements from a customer to the analyst, then an architect, and finally to a developer or a tester.

Solution

It may be not easy to eliminate all the waste of information transportation, but we can reduce it by

Inventory

Inventory in the manufacturing is a result of overproduction of some process steps over other steps due to lack of synchronization between the steps, which causes material and product wait to be processed due to over workload and waiting times.

In software engineering, this can be called the activities that are partially done, for example, requirements analyzed but not developed, code not checked in, code not tested, test cases not executed, etc. This produces a huge impact on team productivity as it consumes the team time while it cannot be closed as a finished work.

Solution

I think the solution to reduce this waste by:

Motion

It is mainly the excess movement and poor ergonomics of the working environment due to stretching, walking, lifting, and reaching, for example, leaving the workplace for any reason, or switching between tasks. It is mainly the motion of people, tools, and machines that are important to deliver the product of the service.

In the Software industry, this also does exist, for example, switching between projects or tasks, context switching, environment switching, working on more than one thing at a time, fixing a support issue while developing new features, etc.

According to different studies, It takes some time for any human to focus on a task, the switching time between the tasks will need time for the task owner to focus on the new one and involved in the task context. Moreover, open and start using the project environment and change the mental state to work on the new context.

Solution

Most effective way to reduce this waste by:

Waiting

In manufacturing, whenever goods are not moving or being processed, the waste of waiting occurs. This makes the teams waiting for other teams to finish their tasks. This waiting time as well affects the productivity of the process.

Similarly, in the software engineering industry the waiting time is actually exist in many shapes, waiting the requirements to be analyzed, waiting for feature to be developed, waiting for someone to work on the feature to be tested, and so on. Also, it ended up with one or more team members are idle waiting for input from another activity or waiting for the customer to give a feedback or approval.

Solution

The solution to reduce this kind of waste can be achieved by

Overproduction

Overproduction is to manufacture a product or a step of its manufacturing before it is required, it is caused by many reasons, for example, unstable schedule, large batch size, inaccurate information or demand.

In software engineering, this is mapped to gold plating the software by extra un-required and unnecessary features. Most of the time, the customers are requesting features that are never used or the developer volunteer to develop features that he/she may think it will add extra value for the customer but it is never wanted.

It is actually if it may add some value, but it makes the code more complex, harder to maintain, and can be a point of failure and derive extra requirements that out of the scope.

Solution

Most effective way to reduce this waste by:

Over Processing

Over-processing is mainly by adding more steps that not required, for example, double validation, many approvals, double data entries, and using oversize machines and equipment.

We can see the over processing in the software process also through un-required documentation, many approvals for stakeholders, or extra management activities.

Sometimes, by making the same task more than time due to defects and poor development, and over-analyzing and designing. In some articles, it is mapped also for the relearning process of the team caused by task switching or working on an old project.

Solution

Most effective way to reduce this waste by:

Defects & Rework

It is considered the most obvious of the seven wastes, although not always the easiest to detect before they reach your customers. Quality errors that cause defects invariably cost you far more than you expect, for example, defects on the product, incorrect data entry which may results to a failed delivery.

We can easily relate this to the software development process as the cost of the defect and rework became higher when it is detected on the production phase. Not only that, but it leads to other types of wastes, for example, switching the tasks time to fix the issues, delays in production, extra handoffs and motion.

Solution

This was can be reduced by:

Not-Utilizing Talent

Talent is the most critical part of the waste in process of the software development, imagine, for example, assigning a task for a team member that does not have the skill for a particular language, this team member will need some time to learn and participate in the project. This can lead to delay other members and produce waiting time.

This was only one example, but it can be in various shapes, for example, usage of the tool, familiarity of the selected SDLC, Business domain knowledge, productivity rate vs the time plan. the productivity rate within the team.

Solution

I hope this article was not one of the waste types, and please share your thoughts if you have any other activities that are considered as a waste.

[cite]

Also published on Medium.

Summary
Article Name
The 8 Software Process Development Wastes
Description
Wastes exist in many types and forms that hinder the business from operating in an optimum way. Waste management is one of the most effective ways to increase the productivity of any business while It is important to understand exactly what waste is and where it exists to eliminate it.
Author
Publisher Name
melsatar.blog
Publisher Logo
Exit mobile version