Lean Thinking has been around for a very long time. Taking a few minor modifications into account, Toyota originally created this system in the mid 70s (it was called the Toyota Production System). Lean is also often used in combination with Six Sigma techniques for statistical control and has been widely accepted as a standard in the manufacturing industry. But it is only in the past few years that Lean has gained some popularity in the service industry.
What exactly is Lean Thinking?
Some of you may already know what Lean Thinking is all about, but some of you won’t, so let me highlight a few things here. Lean’s major concept is about reducing waste, meaning anything in your production cycle that is not adding value to the customer is considered waste and should therefore be removed from the process. Now some waste is necessary to keep your business running, such as certain approval cycles, additional quality assurance validations etc. But most of the so-called waste is actual waste of time and effort and should be removed all together. Ideally, you would end up with a 100% waste free production process, but we’re not living in a perfect world, so that’s going to prove to be pretty damn impossible.
Detecting waste in a production environment is relatively easy (if any manufacturing people are reading this, I know it isn’t always the case, but the concept of waste is more easy to understand in a manufacturing environment): imagine you have a production process where you create cardboard boxes. To create those boxes, you have to cut away some parts of the cardboard. Those pieces can’t be used in the final product, so they are in fact waste. A solution such as choosing a different box shape or layout may reduce that waste, or eliminate it all together. Looking at a pharmacy company, there is a lot of waste in the approval process of a new medicine, but would you want to take the medication if it wasn’t approved by the FDA or equivalent agency in other countries? This is therefore considered to be necessary waste.
Use the Scrum board
Now, how do you apply these principles to an IT environment? Well, most of the IT guys out there are already using Lean in their daily routines. The widely accepted Scrum board is actually a Kanban, which Scrum has borrowed from Lean. That means that our starting point is that Lean is not a replacement for Scrum (it can be if you want it to), but rather a complementary methodology.
Set up a pull system
Another tool from Lean that I’m quite fond of and which has proven to be very effective in my current project is setting up a pull system. In short, a pull system is a system wherein you only start the next task when another task has been finished. This is meant to reduce the amount of Work In Progress (WIP).
So a pull system might seem quite the opposite from Scrum at first, since Scrum advocates committing to a certain number of tasks to be delivered in a sprint. But if you look deeper you will discover that committing those tasks tot upper management doesn’t mean you have to put all of hem on the board at once! In fact, reducing the amount of tasks at hand will help your team to focus on specific tasks and not run around from one task to another without adding any value and thus adding to the amount of waste (I’ll come back to this later too). And of course you’re team isn’t stressed out from the beginning, seeing the huge amount of work that needs to be done. So there’s a psychological factor in here as well, which is not to be underestimated…
Reduce the setup time
In the previous paragraph I already talked briefly about developers running everywhere, not contributing to any tasks but still spending time on them. Well, this is one of the wastes you have to be aware of and it’s called setup time. The best way to describe setup time in an IT development environment is to describe the actions a developer has to take when (re)commencing work on a certain task. First he has to clear his mind from the previous task (yes, this might seem like some Bruce Lee talk, but it is actually true), then he probably needs to start logging his time in some kind of time tracking system, he needs to read up on the new task, might have to pull the code in question from the GIT server, find the proper file and then get cracking at it. That is a lot of work to get set up for the task, which of course takes time, which we appropriately call setup time.
Now, imagine when a developer constantly has to do this because he is asked to “quickly” look at another issue, or stop working on a certain task in favor of starting a new one. That is a lot of time you’re losing in a day! Reducing setup time is one of the most effective measures you can take when starting out with applying Lean Thinking in an IT development environment. It’s part of the so-called low hanging fruit, the things you can do with the least amount of effort. But of course, the system in place has to work with you. If you have sluggish time tracking systems, no way to get an overview of what has been done and what needs to be done, those things will work against you and will contribute for sure to the setup time. If that is the case, you’ve already found you first improvement projects
Lean helps you get the job done!
All of these techniques (setup time reduction, waste reduction, pull system etc.) all help to focus your team on getting the job done and getting and not getting distracted by things they should be focussing on. That means that the so-called Process Lead Time or PLT will reduce as well. Process lead time is the time a task takes to get through the entire process, from request to production.
Little’s Law says that your process throughput is defined by dividing the amount work in progress by the process lead time. That means that if you make the process lead time smaller by reducing the waste, you increase the throughput. But this also happens when you reduce the amount of work in progress. That’s exactly where the pull system comes to life.
A word of caution
Last but not least I just want to bring your attention to something to be weary about. Increasing throughput on your project means you can get the job done faster. That means that you can do more in less time and it should not mean that you can get rid of one of your employees to do the same job with less people! The people that seem to become expendable can be used to help out in other projects or increase your throughput in your project, so you can finish before your deadline, or even help you attain better SLAs. Don’t misuse your success to fire people!