Keep
reading. The title is correct.
You
wake up one day and decide to eat a burger in McDonalds (not so good to your
health but who cares).
You
enter the closest McDonalds branch and you stand in line. You wait for your
turn to order.
You wait patiently until it is your turn. Then you tell the nice kid with a cap the
details of your order.
After that your order is displayed on the monitor above the desk where all
the previous orders are displayed. You can immediately see what your order status
is – is it the first order in the list and the kids in the kitchen have already
started working on it or are there some orders before yours, and you need to patiently
wait.
Meanwhile the kids in the kitchen receive the orders one after another. They
work only on the first order in the line (not the shouting dude's order). If
there are lots of orders then more kids come and join the kitchen (or the front
desk) to help handle all the clients. When they finish working on an order they
"send it" to the guy responsible on calling the hungry person who asked
for it. You check that the order is
indeed what you asked for ("I asked for no onions!") and then sit
down and enjoy your meal.
So what does McDonalds have to do with Kanban!?
Let's take a look at the roles here:
·
The client as the hungry
dude (yes that's you)
·
The product owner as the
kid at the desk who receives your order
·
The developers as the
kitchen kids
The clients comes to the product owner (who
can be the team leader) and describes him what they want. The PO adds the client's
user story to the backlog according to its priority (someone is really hungry
and is in a rush and a VIP might be before someone else) and here's the
important part – the backlog is shown to everyone who wish to see it! The
board above the desk shows all the orders and their statuses so if a client
wishes to check his order all he has to do us look up.
The main purpose of this is transparency in
order to calm down the clients, so that they won't bother the desk kid
every second with annoying questions – "Hey remember me? What's up with
my order? Why I'm I still waiting? How long does to take to make a burger?"
If all the kitchen's work is displayed for everyone then the clients are
calm and are patiently waiting. They understand that there's someone before
them and that McDonalds actually work and not just stall time.
Meanwhile, inside the kitchen the kids work
on the orders. They don't randomly choose what to work on – they have a
prioritized list of orders (Backlog with user stories) and they work on the
first order that the desk transferred to them (The one with the highest
priority). They divide the work among them (divide user stories to tasks) and
every kid can make any part of the order. So if "Moshe" is
sick the team still is able to make the whole burger and even the French fries.
The manager, an older kid, can easily know
what the team is currently working on without endless status meetings with the
team (or the team leader), he just looks on the board, the same as the
clients since all the work is displayed to everyone.
When the order is done the client is being
called to the desk to take his order. He performs a quick review and
happily goes to eat his burger.
Ladies and gentlemen this is pure Kanban
(I didn't cover the limits part or indicators of work – that's for another post).
McDonalds is working like this for years,
they called it "Great Customer Service", we - the software developers
who instead of burgers make software (or develop\support hardware
infrastructures) called it "A card" – in Japanese.
Nice Blog, Moreover if you want to taste different food flavors then check out the mcdonalds usa prices
ReplyDelete