The 7 Software Development Wastes – Lean series Part 3 – Extra Processing

Introduction

Waste is a killer in any organization. But if you don’t know what to look for then you’re probably not going to be able to find waste and minimize it or eradicate it. This series primarily deals with explicitly defining the 7 wastes in software development so that you can start thinking about how this may affect your ability to remain as productive as you can be. This can make a significant difference to your company’s bottom line.

As reference, the first two wastes can be found in my previous blog posts here: In-Process Inventory/Partially done work and Over Production/Extra Features.

#3 – Extra processing

Extra processing in Manufacturing is the 3rd waste and this can be equated to Relearning or Rework in Software development. The time we spend relearning things we once knew or having to rework the same feature due to poor code quality can be significant in many organizations, ergo, it’s important to be mindful of this. It’s probably useful to list examples that would cause extra processing in software development

Undocumented code

If your developers don’t document the code properly then later on when you’re either fixing the code or making changes to the code due to new feature requirements, your developers (even the original author of code) are going to need to relearn why the code was written that way in the first place. Taking the time to document your code up front while it’s fresh in your mind can therefore save the company time and money.

Poor planning

Some project managers assign work to developers in a haphazard manner. Although you do want to ensure there’s knowledge overlap on your team, if you keep switching developers on the same features, each time a new developer takes over, he is going to have to relearn what the original developer already knows.

Poor quality

The earlier you find bugs and fix them the less costly it is for the organization. The most expensive scenario is when you find problems once they’re already deployed to production. Partly this is due to the fact that the developer now has to reacquaint himself/herself with the code again. So if the developer spends the time upfront to write extensive unit tests, if the team takes the time to define proper acceptance test criteria then the chances of having to rework the code and worse yet relearn the code diminishes significantly

Task switching

The more things you throw at a developer at the same time the longer things take to get done. Task switching beyond 2 tasks is highly inefficient as the developer has to more often than not relearn or re-acquaint himself with the task context each time he switches back.

Poor communication and recording of knowledge

Today, with the proliferation of technology, there’s no excuse for poor communication. Wiki’s provide a great way for developers to record knowledge about their findings. And search makes it really easy to find information. I am not advocating heave documentation here. I am suggesting short summaries of information on key decisions you made during development so that if someone else has to take over or you have to come back to that code in the future, the relearning curve is not that great.

Stay tuned for next weeks blog post in this series which will cover the 4th waste – the equivalent of “Transportation” in manufacturing processes.

5 thoughts on “The 7 Software Development Wastes – Lean series Part 3 – Extra Processing”

  1. Jack, enjoy your blog and tweets!
    Totally agree with you about the importance of finding bugs as early as possible in the SDLC. They get more and more expensive to fix the further down the lifecycle they go. Static code analysis can play a role here, allowing developers to run the analysis and fix their bugs before they even check in their code. Will this catch everything? Of course not, but reducing the number of bugs introduced into the code stream is always a good thing. Check out our blog for more info on this and more… http://kloctalk.klocwork.com/

    Todd

  2. I’ve aligned the 7 manufacturing wastes with waste in software development this way:
    Inventory = Partially Done Work (getting multiple things partially done and not delivered to production consumes capital without adding value)
    Extra Processing = Extra Processes (meetings, paperwork, manual reports, manual status updated, etc., all take workers away from value-added tasks)
    Overproduction = Extra Features (features that don’t add business value should never be produced)
    Transportation = Task Switching (moving a knowledge worker off and on different tasks slows down his/her productivity)
    Waiting = Waiting (short iterations/cycles keep a continuous flow of value moving through the process)
    Motion = Motion (co-located teams reduce wasted time through motion; daily standups get the right people together when and where they’re needed)
    Defects = Defects (coding standards, paired programming, TDD, automated builds, customer involvement all help prevent defects)

  3. For some reason, I can’t read parts 1 and 2 … even though my co-worker had part 1 open just a few minutes ago! We’re getting 404 errors now.
    Did your cool URLs break?

  4. As a Lean Consultant originally from Manufacturing and now working in software development I am quite shocked on how the original 7-wastes have been misinterpreted. As an example, there are some strange takes on ‘extra processing’ (it was never called this by the way – it’s ‘over processing’ or ‘inappropriate processing’). It occurs any time more work is done on a piece than what is required by the customer. It’s about going about work processes using the wrong set of tools, procedures or systems. It can be thought of as ‘gold plating’ a solution or ‘guilding the lily’ (if this is an English colloquialism please feel free to Google it!). So where’s the link to rework?! – surely that’s a result of Defects? Similarly Overproduction is NOT ‘extra features’ (they ARE overprocessing!). Overproduction in software can only be seen to be producing the product before the customer is willing to pay for it. One size does not fill all in Lean guys – why not stop trying to reinvent the wheel with the classic 7-wastes & produce a new set (for example the 7 service customer wastes)??

Leave a Reply

Your email address will not be published. Required fields are marked *