I’m using lean thinking and lean concepts more these days when
talking with managers and executives. And it’s proving to be more
effective than talking about agile this and that. Based on my own
experiences and recent conversations with
, lean concepts
are definitely under-utilised in software development, even if
you’re using the common agile techniques.
It’s great working with Gus because, having come from Dell, he has
extensive practical knowledge and experience about lean, so I’m
learning all the time. At
I went to
Toyota Way of Managing
, to get a refresher. Here’s a
combination of the hand-out information and the notes I made:
Everyone and everything works towards a common strategic vision. Is
every person adding value? If not, they’re waste. Every person
decides their own fate. Every person should accept responsibility
for their conduct. And every person should continuously improve
their skills to keep adding value.
- The right process will produce the right results.
Create a continuous flow of work that delivers features to the
market regularly. Release working software to production at least
once a month.
Establish a pull system where each step passes its result to
the next step as fast as the next step can accept and process it.
This helps to avoid overproduction and waste. Use index cards (
facilitate pull. For example, the product owner pulls features from
the team a release at a time, while the team pulls user stories
from the product owner.
said that every 55 seconds a Toyota rolls off the production line
because every 55 seconds a Toyota is sold.
Eliminate waste (
Minimise inventory and work in process because it’s waste. Keep
a little stock and restock frequently. Inventory is features that
aren’t released yet, so release often. Work in weekly iterations to
build up a release and then release every month.
Be responsive to customer demands rather than schedules. Listen
to user feedback after every release and let the product owner
adapt the product backlog and steer development in response.
Level out the load (
avoid overburdening people (muri) and avoid uneveness (mura) to
prevent breaking flow by repeated stopping and starting. Toyota
finalises its production schedule one day before the run begins.
Everyone should work together at a sustainable pace to maintain
flow. Each person should use
to maintain a balance between work and play and stay
healthy and productive.
Create a culture of stopping to fix problems and slowing down
to get the quality right the first time. Every person is equally
responsible for quality. If you notice a problem you have the
responsibility to stop the production line. Don’t continue to
produce bad products. Use intelligent tools that automatically
detect problems, stop themselves (
and alert people. Use
something similar) to perform
, with an
that lets people know when there’s a problem
with the build. If the build breaks, someone must take ownership
and fix it immediately. No-one else can check code in until the
build is restored.
Repeatable techniques help achieve predictability and form the
basis for pull and flow. They also give people time to focus on
improving how they work. This leads to empowerment. Every person is
responsible for improving how they work individually and
collectively, every day.
Capture accumulated learning about how you work. Use
as a way of thinking about how you learn a technique.
Keep everything visible and understandable. Use simple visual
to help people understand what’s going on, and to support pull and
flow. Use information radiators such as physical
, and keep them visible at all times by locating
them in public areas.
Use only reliable, well-tested technology that supports people
rather than replaces them. But also encourage people to try-out new
technologies that might improve how they’re able to work together
to achieve flow. Toyota says a machine is in its worst state when
it arrives new in the factory. Over time they make it more
reliable. Just like a new team.
People and Partners
Add value to the organisation by developing your people and
Grow leaders (
) from within
who thoroughly understand the work, live the philosophy and teach
it to others. At Toyota, a leader is always teaching two other
people to succeed them. Apparently Toyota has expanded faster than
its ability to grow new leaders.
Develop exceptional people who live the philosophy. Provide
them with continuous on-the-job training. Create and then
. Work towards shared goals and
continually reinforce the culture and philosophy.
Respect your partners and suppliers. Show that you value them
by challenging and helping them to improve. To maintain flow,
Toyota’s partners are required to perform at the same rates as
Problem-solving and Organizational
If you want to know what’s really happening, go to the source
and see it for yourself (
). Only then can you really understand the situation
and add value.
Consider many options. Make
and then take action immediately. Ensure everyone
who might be affected is involved (
gently dig around the roots of a plant,
in order to transplant it carefully
). A decision reached by
consensus is binding because it embodies an idea that’s shared and
supported by each team member.
It’s never good
Be a learning organisation through reflection
(hansei) and continuous improvement (
). Hold a
at the end of every iteration to reflect, learn, adapt and then
Apparently, it takes Toyota 5 to 10 years to get a new factory
up-to-speed in the Toyota Way. Changing to a culture like Toyota’s
is not quick and it’s not easy, but the rewards are worth the