- In his book, "The Principles of Product Development Flow",
Dan Reinertsen made the connection between
lean manufacturing and product development.
Reinertsen argued that you can create
a much more successful product
if you focus on the flow of work through the system.
Instead of creating schedules,
and milestones,
you would work to optimize development flow.
This was similar to many ideas behind lean manufacturing.
Around the same time managers were
looking to also use lean principles
as a way to improve software development.
So, in 2007 David Anderson
and Rick Garber built on Reinertsen's ideas,
and created a system for software development.
They focused on the earlier practice of using Kanban cards.
They talked about how they could use Kanban cards
to develop software at a sustainable pace.
David Anderson presented these ideas
at the Agile 2007 conference.
This Kanban system seemed to really take hold
in the Agile community.
Over the next few years there was several more presentations
about using Kanban for Agile software development.
It makes sense that the Agile community
would embrace these ideas.
Other frameworks like, Scrum,
and Extreme Programming
are always pushing to break down the product
into smaller chunks.
That's the best way to deliver a product
in a two week sprint.
The Kanban system focused on breaking work
into small batches.
Kanban decreased the batch size
as a way to increase the flow of products
going to the system.
This is part of the original ideas
in Just-In-Time and Lean Manufacturing.
So it seemed to support many of the same ideas
as Agile software development.
The Kanban system became so popular
within the Agile community
that it was the standard for development teams
to put up a Kanban board.
Scrum teams typically use a similar board
as a way to signal all of the work in progress.
As Agile became more popular
so did these Kanban systems,
that focused on product development flow.
Because software is different from manufacturing,
Anderson made quite a few changes
to what the card represents.
They also added a Kanban board to show everyone
how much work was in the queue.
The first big change was that Kanban cards
didn't represent a request for more inventory.
Remember that when red Kanban cards were used
in grocery stores to signal when the items
needed to be reordered.
Software development Kanban cards
represented work in progress.
They also put more emphasis on using the Kanban board.
Sometimes people think of the board
as part of the Kanban system,
but it's really only a signaling device.
It's not designed to improve your work,
instead it's just designed to show you
how well you're progressing with your work.
Think about when you go see a sporting event,
and you watch the teams compete.
You don't spend the entire time looking at the score board,
the score board is only a signaling device.
It doesn't really give you any idea about
the strategies involved to win the game.
It's the same way with a Kanban board.
It only gives you a high-level view
of the team's progress.
The board itself is not part of the Kanban system,
in a very real sense you could do Kanban
without even using the signal cards.
But it would be like watching a sporting event
without a score card.
You'd have to work extra hard
to get a sense of where things are going.