Putting production on a diet
The most dangerous kind of waste is the waste we do not recognize.” - Shigeo Shingo
Many manufacturing industries have made great gains by utilizing Lean principles in the factory. These principles, which have perhaps been most successfully applied in the Toyota Production System, can be summarized as follows:
All work must be clearly defined as to content, sequence, timing, and outcome.
Every customer-supplier connection must be direct, explicit, and transparent
An effective protocol must be used to communicate requests and information about deliveries and priorities.
The pathway for delivering every product and service must be simple, seamless, and well understood by the responsible agents.
Improvements must be guided through carefully controlled experiments, under the guidance of an experienced coach, at have ownership at the lowest possible levels in the responsible groups.
Lean means the elimination of waste. In manufacturing, this typically means reduction of material in inventory, since that material is expensive, and since such reductions cause efficiencies in other important aspects, such as cycle time. In knowledge-based industries, waste is not extra people, as you might expect, but rather a reduction in the information and decisions that are ‘in inventory’, or essentially, in processing. This waste reduction is usually further augmented with additional efficiency improvements, by balancing capacity against demand and prioritizing work queues.
Lean practices have not yet achieved the penetration within engineering groups that they have achieved in manufacturing. I believe this is for several reasons:
Engineers don’t always understand why cycle time is important to the business.
A lack of a clear and brief explanation of how lean principles can be applied to the engineering environment.
There haven’t yet been enough good examples and ‘how-to’ guidance available or shared on Engineering Lean practices that have been relevant to engineering fields.
As a result, many engineering groups think Lean practices are not relevant to what they do, believe that Lean is a way of thinking, rather than a collection of techniques, or do not know what steps they might take to employ these techniques.
In manufacturing environments, variation typically arises when recurring, mechanistic operations are implemented inconsistently. Within engineering, such routine operations do not exist, since each design problem is unique, requiring searches through unfamiliar territory for potential solution elements.
Identifying waste
What’s common to both environments is a mandate to improve, and Lean can help in that regard. To accelerate outcomes, waste is anything that stands in the way of that objective. Pursuing waste reduction unlocks access to the next goal - removing these obstacles from the pathway of future endeavors.
For example, if regular meetings don’t seem to be helping move towards these goals, then in the spirit of removing waste, the design of these meetings should be reconsidered. Streamline the communications path by separating those critical for decision-making from those who merely want to be kept informed.
Avoiding rework, upping quality, and root-cause analysis
If a feature has an unusually high defect density, it may contribute to wasted time and effort. This wasted time doesn’t help in getting software in the hands of the customers, therefore, an effort should be made to reclaim it. The only way to do that would be to - get it right the first time. To do that, one has to ensure that no (or as few as possible) bugs are found during the final testing, instead, everything ought to be caught and fixed earlier.
This means two things - one, that testing needs to be done early and often through all stages of the game. Two, each time a non-trivial issue is discovered, the root causes should be investigated to prevent the same kind of thing from happening again. This is the equivalent of the ‘pull the Andon cord’ philosophy of Lean manufacturing.
Getting better at the difficult stuff
One reason why certain teams to achieve frequent releases is because deployment is hard. It can be an arduous process with lots of moving parts. That is the kind of situation that is ripe for fresh eyes and new thinking. Thet technical debt that inevitably piles up when not doing this boldly, simply must be avoided at all costs - else it will kill even the possibility of speedy delivery.
Multi-skilled people
When tasks require unique skills, those skills can become single points of failure should those individuals be unavailable for any reason. Such bottlenecks must be resolved. Having redundancy of skills across a Lean team can help mitigate this risk.
A culture of excellence
A culture of excellence can contribute to reducing cycle-time further. These include limiting the size of queues, achieving single-piece flow, using pull scheduling systems, and proactively discovering the next opportunity that can improve throughput of the team.
Each team-member should have a caring attitude for the customer and a curious attitude. One set of questions can be directed towards the customers themselves, to gain a fuller understanding of what they’re trying to achieve, so that the best, most creative, and efficient solution can be found. Another set of questions can be directed to the team and its processes. By following these practices, things become better for the customer, for the company, and for the team as well.
This culture of excellence judges its results by one metric alone: throughput. It realizes that any step taken to improve things should be measuring its effects. This culture should focus on how to optimize the whole system, and not just a part of it. Cycle-time is one of the easiest and most effective measures for managing this throughput, and can be enhanced by following these practices.



