Kanban is a method for managing the process of software development with highest efficiency. The Lean concept optimizes an organization’s system to produce valuable results based on its resources, needs, and alternatives while reducing waste. Waste could be from building the wrong thing, failure to learn, or practices that impede the process. Because these factors are dynamic in nature, a lean organization evaluates its entire system and continuously fine tunes its processes.
The foundation of Lean is that the reduction of the length of each cycle (i.e., an iteration) leads to an increase in productivity by reducing delays, aids in error detection at an early stage, and consequently reduces the total amount of effort required to finish a task. Lean software principles have been successfully applied to software development.
Kanban literally means a “signboard” or “billboard” and it espouses the use of visual aids to assist and track production. The concept was introduced by Taiichi Ohno considered to be the father of the Toyota Production Systems (TPS). The use of visual aids is effective and has become a common practice. Examples include task cards, Scrumboards, and Burndown Charts. These methods gained attention due to their practice at Toyota, a leader in process management.
Lean Kanban also integrates the use of visualization methods as prescribed by Kanban along with the principles of Lean creating a visual incremental evolutionary process management system.
Measuring flow is the most important tool used for keeping a balance between the freedom and control. Constant monitoring of lead and cycle time provides with a good idea regarding the flow of the team. And, hence, the team focuses on average cycle time while initiating a new feature.
Lean Kanban is not based on assumptions but on real data and the focus is also not created by the top management but from within the team. So, every member of the team is responsible for improving the flow, lead and cycle time and reducing gaps.