In previous posts, we have
discussed about scrum, lean software development system. Let us discuss about
KANBAN in this post.
Roots of KANBAN:
The
word Kanban is a Japanese word meaning “Kan” means “card” whereas “ban” means
“signal”. This card signalling concept is used to prompt “action”. For
information on the origins of the term KANBAN, please check this link
Kanban concept is related to TPS (Toyota Production System) lean manufacturing and Just-In-Time (JIT) production.
JIT means making only
What is needed,
When it is needed,
And the amount needed.
By following JIT plan, process
eliminates waste, inconsistencies and work on un-necessary requirements
resulting in productivity improvement.
History of KANBAN:
Late 1940’s: Taiichi Ohno
(a former Toyota vice president) developed a “kanban” system to implement a
“just-in-time” process. Ohno described the concept as follows: “It should be
possible to organize the flow of materials in production, according to the
principle of a supermarket; the consumer takes a certain amount of off the
shelf product, and noticed the gap is immediately replenished”.
The kanban system is also
called as "Supermarket method" as the idea behind it was borrowed
from supermarkets.
Kanban
today is because of Ohno, TPS and other influencers. Out of other influencers William Edwards Deming and Eliyahu Moshe Goldratt has done
extensive work which has guided Kanban change agents worldwide
2004:
The first kanban software implementation with Goldratt’s influence. His Theory
of Constraints was successfully applied in this
2006-2007:
There has been lot of research after the first Kanban software implementation.
In this period Donald
Reinertsen has influenced Kanban implementation. He had been researching
about product development flow from many years before. This work has been
continued by Peter
Drucker
David J.Anderson wrote a
book titled “Lessons in
Agile Management”. Hw wrote about many topics in this book
.i.e. Leadership, Management, Peter Drucker, Theory of Constraints and Eli
Goldratt, W. Edwards Deming, Human Resource Departments and Policies, Agile,
Lean and Leading Change Initiatives.
Now, we know how Kanban has evolved. Let us discuss more about Kanban with respect to software development.
KANBAN in Software Development:
Kanban is one of the agile methodologies which manages creation of software products and emphasizes on continuous delivery without overburdening any of the team members. Kanban uses work-in-progress (WIP) limited pull system as its main focus is to uncover process problems and improve it.
Kanban is one of the agile methodologies which manages creation of software products and emphasizes on continuous delivery without overburdening any of the team members. Kanban uses work-in-progress (WIP) limited pull system as its main focus is to uncover process problems and improve it.
In Kanban, the tasks are represented by cards
(Post-It Notes) which are pasted on a board called Kanban board. These cards
are grouped based on their status in the flow i.e. To Do, Doing/In Progress and
Done. Kanban board gives information about team’s activities, their status and
next activities for the team. This helps in reducing dependency and make the
team self-directing.
Out of agile methodologies scrum is simple and
Kanban is simpler, it helps teams to work together more effectively. Kanban has
3 basic principles and 5 core practices
Kanban Principles:
1.
Start with What you
know
2.
Agree to pursue
incremental, evolutionary change
3.
Initially respect
current process, roles, responsibilities and job titles
Kanban Core practices:
1.
Visualize
2.
Limiting work in
progress (WIP)
3.
Manage flow
4.
Make management
policies
5.
Improve
collaboratively using ‘Safe to fail’ experiments
Let’s discuss these principles and core practices
one by one.
Principles of Kanban
Start with what you know:
Kanban doesn’t prescribe certain setup to start
with. Go with the process your team is following and evolve your current
process. It makes Kanban implementation easy as you do not have to make more
changes to current process. Kanban properties can be placed on top of your
current process to make team self-directing over time.
Agree to pursue incremental, evolutionary change:
Don’t try to get change in process over night. If
you do it, it will fail because of increased resistance from team/team members
due to fear of uncertainty. Start to change the current process with baby
steps. A slow, incremental and evolutionary approach is the right way to
implement Kanban initiative. In David J. Anderson’s words it is called as “baby
steps to awesomeness!”
Initially respect current process, roles, responsibilities and job
titles:
Kanban values the value in existing process, roles,
responsibilities and titles which in turn gains broader support for Kanban
initiative. Every process has something worth preserving, preserve those
elements which are working good for the team and respect them. Focus more on
elements which are not creating value in the flow. Kanban neither stops the
change nor prescribes the change. Even if you do some changes to the existing
process, Kanban encourages incremental change as it creates less fear to team
members when compared with other implementations which sweeps in changes
overnight
Core practices of Kanban
Visualize: Visualizing the workflow
Understand the end to end workflow to optimize any
step of the workflow. For example: In software development process, end to end
is from requirement collection to shippable product increment. Main objective
of the Kanban is to make positive changes in the system leading to workflow
optimization. It is possible only after understanding how each step in the
workflow functions.
The common way of visualizing workflow is through
Kanban board with cards and columns. Each column in the board represents one
step in the workflow. Keep your focus on incoming work which will give you more
ideas on executing the same work in different workflows. There is no one
specific right workflow to execute one task.
Never ever try to implement changes without understanding the end to end workflow as it is useless to the system and harmful too.
Never ever try to implement changes without understanding the end to end workflow as it is useless to the system and harmful too.
Limiting work in progress (WIP):
Limiting WIP is nothing but identifying the
critical elements/steps which are in progress in the workflow and limiting it
to some number based on past performance. In other words, the number of work
items can be in each stage of the workflow at a given time. New work is pulled
only when there is available capacity within the decided WIP limit.
Limiting WIP indicates that we have implemented
pull system through out the workflow. For example in below picture, analysis
can be done only for 3 tasks maximum. You will take another task for analysis
only after moving one task for development.
If any of the stage is blocked, it holds up the
entire workflow. WIP limiting identifies problem areas in the workflow quickly,
thus team can work collaboratively and resolve them leads to faster completion
and great focus. Limiting WIP and pull system of tasks are highlights of
Kanban.
Manage flow:
Always remember, implementing new process is a
journey. It takes time to see the results. Main objective behind implementing
Kanban is to bring positive change in the workflow. You need to have knowledge
on value flow through out the workflow to identify where value is getting
hindered and implement the change for fast, smooth value flow. After
implementing the change, review the impact of the implementation whether it has
created positive or negative effect on the workflow. Keep going, take feedback
continuously and improve.
No body can improve something which they don’t
understand. The process which you are following needs to be defined and
published to leadership & team very clearly and concisely. You need to make
policy makers understand how things work and how the work is actually done by
using this process. Without this understanding any discussion of problems might
tend to emotional, unreliable and subjective.
When everybody in the discussion understands what
you are doing and your goals, then you can make change decisions which will
move team in positive direction. The choices now will be more balanced,
practical and to the point. Good understanding facilitates consensus around
improvements/changes.
Improve collaboratively using ‘Safe to fail’ experiments: (using models/scientific method)
It is the WIP limit which exposes problems early and encourages discussions around solving them. After discussions, team has many options i.e. Break the WIP limit, ignore the problem and continue work, face up the issue, suggest a change or solution. Team needs common understanding of the workflow to choose the right option.
When all team members are in same pace with respect to understanding of the work, workflow, risks and process, then they understand problem in more or less similar manner and reach consensus in suggesting improvement actions.
You might have heard about the word Kaizen while reading about Kanban. Kaizen is a Japanese word meaning "improvement" or "change for the best” refers to practices that focus upon continuous improvement of process. Kaizen is key part of Kanban. The Kanban method suggests using scientific approach to implement continuous, incremental and evolutionary changes.
Scientific approach is nothing but predicting the outcome using a model and comparing actual and predicted results. Scientific approach always provides learning at individual and organization level. There are some existing models which can be used for these
1. The Theory of Constraints (the study of bottlenecks)
2. The System of Profound Knowledge (a study of variation and how it affects processes)
3. Lean Economic Model (based on the concepts of “waste” ; discussed in Lean post)
Irrespective of the models you use, team needs to have regular feedback loops, where you get feedback and measure pros and cons of process changes. Feedback can be anything which gives input on how your process is performing. Keep improving and performing…
With this we came to conclusion of our discussion of Kanban principles and core practices. There is major difference between ‘doing agile’ and ‘being agile’. Always be in ‘Being agile’, get started
Hope you got an idea of Kanban,
Kanban – Principles and Kanban – Core practices. Thank you for stopping by and
reading my blog, it means a lot to me. Help me to improve by giving your
feedback. I appreciate it very much! Please feel free to reach out to me
Linkedin: http://in.linkedin.com/in/sathrambalaji
Facebook: https://www.facebook.com/sathrambalaji
-Balaji Sathram
Good work again, Balaji
ReplyDeleteThank you Sandeep!
DeleteInformative one. Thanks Balaji
ReplyDeleteThanks sandeep...
Delete