In Part 1 of this series, we examined how to identify two types of software development waste – Over Production and Inventory – and how to reduce them. In Part 2, we’ll look at three more types of waste – Motion, Defects, and Extra Processing – that often arise from the waste discussed in Part 1 and how we can address them in our software development processes.
Consider application deployment as an example. Sometimes deployment consists of a series of manual steps: building the application, setting up infrastructure, updating a database, etc. Once you’ve gone through these steps a couple times you should look to automate some or all of these steps.
For example: Can you preconfigure an image of a server that can be spun up with a single click? Can you automate the compilation and distribution of the application at a certain time, or triggered by a checkin? If the repetitive steps are removed, there is more time to build value into the application.
The best way to discover and minimize these is by being as explicit as possible in gathering requirements as soon as possible. Identify specific inputs and corresponding outputs early. Arrive at a testable system as quickly as possible.
Application validation should be exact to the point that it can be automated. Automated unit and coded UI testing help validate defects quickly, and double the effect by also reducing Motion.
Extra Processing is any work that is done that does not add value to the application. Examples of this include planning too many details when not all the variables are understood, or extra development because not enough time was spent thinking through the problem.
These might be harder to identify unless examined during reflection, as in Scrum with a sprint retrospective. In other cases, it can be the result of another type of waste, such as rework from a defect or the effort put into an feature that wasn’t needed.
By reducing Defects or Over Production, we automatically eliminate Extra Processing.
One Thing Leads to Another
As discussed in Extra Processing, we can see how one type of waste can cause another. As another example, when the number of defects increases, the amount of pending work that has to flow through the system increases, which we know as Inventory.
Not only do we see how one type of waste can lead to another, but also how one type of waste might obscure another. This is why it’s always important to understand requirements and measure work more effectively.
The types of wastes detailed here are involved with the crafting of the application. By being specific about what a system is required to do and then being careful to take the least amount of steps to get there, we can maximize the value built into the system.
In the next post, we’re going to step through the waste that occurs in the flow between these steps: Transport and Waiting.
Click here to find out how Imaginet can help you reduce waste and optimize your software development processes so that your teams can deliver faster while doing less work.
Imaginet is your trusted technology partner who turns your business innovation ideas into reality. 18+ years | 1100+ satisfied customers | 2500+ successful engagements. Located in Dallas (Irving), Winnipeg, and Calgary. Services offered worldwide. Contact us today at firstname.lastname@example.org or 1-800-989-6022.