A supermarket is a large form of the traditional grocery store, a self-service shop offering a wide variety of food and household products, organized into aisles. The good thing about it is that I find a large variety of products. Supermarkets don’t look like an interesting organization; I was surprised to find out that they were the basis of one of the prevalent modern management methods, applied today in manufacturing and software development. I got a first glimpse of it when I wondered how supermarkets manage the expiring products. It turns out that they return them to the supplier, which is waste for the supplier. Controlling the rate of production using the rate of demand reduces waste. In the situation described, the supermarket is better organized than the suppliers.
Toyota studied the supermarkets in the last 1940s with the purpose of applying store and shelf-stocking techniques to the factory floor. In the supermarket, as customer, I get the required quantity at the required time, no more, no less. Furthermore, the supermarket stocks only what it expects to sell within a given time frame, and customers take only what they need, since future supply is assured.
There is such a system that uses the rate of demand to control the rate of production: Kanban. It was developed by Taiichi Ohno, at Toyota, as a solution to improve and maintain a high level of production. Kanban is part of an approach where the “pull” comes from the demand. The supply or production is determined according to the actual demand of the customers. To be effective, Kanban must follow strict rules. Toyota, for example, has six simple rules, and close monitoring of these rules is a never-ending task, thereby ensuring that the Kanban does what is required:
- Do not send defective products to the subsequent process
- The subsequent process withdraws only what is needed
- Produce only the exact quantity withdrawn by the subsequent process
- Level the production
- Kanban is a means of fine tuning
- Stabilize and rationalize the process
In development, a certain and tested method of “reduce waste”, Kanban, helps us managing a software development process in a highly efficient way. It only takes four steps:
- Visualize the development processes, from request to deployment
- Visualize the work through the use of a Kanban board
- Measure the cycle time and lead time and
- Continuously manage and improve the flow
Kanban can help you identify and reduce the seven wastes of software development (see Mary Poppendieck’s books on Lean Software Development)
- Partially Done Work: any work that’s not checked-in, integrated, tested, and deployed.
- Extra Features: features implemented, usually because a stakeholder or a developer thought they might be useful, and unused
- Relearning: if an activity that supposedly provides value is repeated, then probably it didn’t provide value the first time.
- Handoffs: passing work from one role to another reduces the knowledge of that task and can result in defects or a longer time spent understanding it.
- Delays: anything that either delays the start of a value adding activity or that makes a value adding activity take longer than it should.
- Task Switching: deep concentrated thinking is required for even minimum effectiveness as a software developer. Interruptions are the ultimate enemy of deep concentrated thinking, and any task switch constitutes an interruption.
- Defects: if the impact of a single defect is constant, the waste created by that defect increases with time until detected
Supermarkets, car manufacturing and now software development have proven ways to reduce waste. It is up to us to learn how and act accordingly.
Want to reduce waste in your software development process? We can help:
- An assessment on your organizational practices
- Call one of our coaches to help you adopt or improve your Kanban process:
- Build the Value Stream Map of your process
- Build the visual board and identify the work in progress
- Define policies to help you keep a constant level of quality
- Facilitate a retrospective to improve your flow
- Attending the “Lean Kanban” workshop, also available in-company
- Attending the “Certified Kanban Workshop” workshop with Mattias Skarin
If the situation is more complex, we would be happy to create a customized package for your needs.