Kanban is a method for the process improvement. It has 5 simple core principles and can be applied to any software development process - either some agile methodology or the pure waterfall model.
2. What is Kanban?
Kanban is a method for managing knowledge work with an
emphasis on just-in-time delivery while not overloading the team
members. In this approach, the process, from definition of a task
to its delivery to the customer, is displayed for participants to see
and developers pull work from a queue.
(source Wikipedia)
In software development, we are using a virtual kanban system to
limit (team's) work-in-progress ... to a set capacity and to balance
the demand on the team against the throughput of their delivered
work. By doing this we can achieve a sustainable pace of
development so that all individuals can achieve a work versus
personal life balance.
(source Kanban by David J. Anderson)
2
3. What Kanban Is Not?
Kanban is not:
a methodology.
a process (for software development).
an agile practise.
a project management tool.
a silver bullet.
3
4. Benefits of Kanban
It eliminates waste from the process.
Reducing work-in-progress improves quality.
Improved quality improves trust with downstream partners.
Process improvement leads to greater productivity and greater
predictability.
It enables incremental changes
with reduced political risk,
with minimal resistence.
It provides transparency on both the work and the process
through which the work flows.
Individuals are more likely to give of their time and collaborate
when they can see the effect it will have.
(source Kanban by David J. Anderson)
4
5. Origins of Kanban
Toyota Production System (TPS)
Lean Software Development
Drum-Buffer-Rope (DBR) methodology
(picture source: Wikipedia.org)
5
7. Visualize Workflow
Split the work into pieces, write each item on a card, and put the
card on the wall.
Use named columns to illustrate where each item is in the
workflow.
(source Lean from the Trenches by Henrik Kniberg)
7
8. Limit Work-in-Progress
Assign explicit limits to how many items may be in progress at
each workflow state.
(source Lean from the Trenches by Henrik Kniberg)
8
9. Measure and Manage Flow
The flow of work should be measured, so the
continuous, incremental changes to the system can be evaluated.
Cumulative Flow Diagram is very offen used for visualization.
9
10. Make Process Policies Explicit
There should be explicit definition and understanding of the
(project) policies, so that issues can be rationaly and objectively
discussed, mitigated and improved.
Policies can be about:
Definition of Done (DoD)
Work-in-progress (WIP)
Issues addressing and escalation
Responsibility during process states
10
11. Use Models to Recognize Improvement Opportunities
By modeling the workflow of a software development lifecycle as
a value stream and then creating a tracking and visualization
system to track state changes of emerging work as it „flowed“
through the system, I could see bottlenecks. The ability to identify
a bottleneck is the first step in the underlying model for the Theory
of Constraints.
(source Kanban by David J. Anderson)
Common models are:
Theory of Constraints (the study of bottlenecks)
Deming System of Profound Knowledge (a study of variation)
Lean economic model (concept of „waste“)
(source Wikipedia)
11