Skip to main content

Work Smarter Not Harder: How to Deliver Faster While Doing Less Work

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.


stock_stairsMotion is work that takes more effort than it needs to.  In software development, this is often seen in steps that get repeated multiple times.

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.


stock_bikesquarewheel2Defects include any way that the application behaves differently than expected.  This might be a missing edge case or even a complete misunderstanding of a requirement.

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

stock_extraworkExtra 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

stock_dominoAs 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 or 1-800-989-6022.

Darren Kuik & Ryan Weppler

Darren Kuik is a Senior Application Developer for Imaginet in Winnipeg, MB with over 14 years of experience in web application development in a wide variety of subject domains. Darren is passionate about delivering high quality, efficient solutions and processes. Ryan Weppler is a Senior Application Developer & Architect with Imaginet in Winnipeg, Canada, and has been creating customized software solutions for various organizations for over a dozen years. Ryan takes great care to maximize the value of software and strives to remove friction in all aspects of software development through practice and mentorship.

Leave a Reply

Let‘s Talk.

Let's talk!