Why is that when you go to your local supermarket, nothing seems to be where it was last week! How come, when you visit a certain Swedish company that specialises in home products, you have to go around in circles to find the product you came in to buy? Why, in other words, do you always seem to spend more than you intended when you go shopping? Why do you waste time and money?
The answer of course is that that’s what the retailer wants you to do, and they design their stores so that ‘impulse’ purchases are almost impossible to avoid. More revenue for them, more cost and waste for you.
The fact is that, when you go into a shop, of any size, often what you actually achieve is the complete opposite of what you had originally intended. Applying this concept outside of a shop environment makes little sense. Do you take a roundabout way to the office in the morning? Do you try and find the longest way to hold a meeting? Do you deliberately look to take the game into extra-time, or play an extra set in a tennis match? No, you try and be efficient and effective, probably nowhere more so than in the office, and in the office, probably nowhere more than in the expensive world of IT implementations.
And yet, why do projects almost always take longer than planned? Why do they almost always cost more? And why do they never seem to look like they were supposed to, and yet they work, mostly!
The reality is that we are human, we are not machines doing a repetitive task time after time, and not only are we human, but we interact with other humans, who are just as inefficient as we are. All that said, good processes and a smart way of working can make a big difference to what we produce.
If we look at the classic Toyota Production System we can identify the 7 key wastes as:
- Inventory: Unfinished goods (also called as “work in progress,” or WIP
- Overproduction: Producing more than the demand requires
- Over processing: Additional steps in the process that aren’t really needed
- Transportation: Shipping the goods from one place to the other
- Waiting: Lag between process steps
- Motion: Moving around within the process
- Defects: Flaws in the deliverables that impact their features/functionality
I’m not going to look at all of these but I am going to pick out probably the most relevant in the IT World. Transportation. By transportation I am referring to the movement of (usually) code from one functional area to another; From Development to Testing (probably several times), on to Security, through QA and maybe then onto Ops, and maybe back through all the steps above once the first bugs are found in the live application…
I don’t want to completely ignore defects because here we can easily find waste. Yes, maybe the developer made a coding error, but maybe the Analyst misunderstood the requirements, or maybe the requirement has changed since the analysis. The key thought is that we must find defects early and we should never pass them on.
Very often, in transporting from one area to another, we invoke other wastes. By definition, we have work in progress, maybe we are invoking a step that isn’t required, we are probably waiting for the next team to accept the transfer, and maybe that team are geographically and/or time dispersed. So, why don’t we eliminate that waste, why don’t we cut out at least one major move, why don’t we bring the team to the process. In other words, why don’t we use a DevOps approach and create a DevOps organization?
If we do that, we will have to change Culture, but we will allow greater process automation. We can measure the results. We will be leaner, and we will be sharing more. We can do Agile, we can be more lean and more effective, but we can’t ignore the real world and that means we need to involve the Ops people.
I want, and I am sure you all want, to deliver work in the most efficient way possible. After all, any additional work means less time to shop!