Adam Petersen – Software Book Reviews

Toyota Production System: Beyond
Large-Scale Production

by Taiichi Ohno

ISBN: 0915299143
Publisher: Productivity Press
Pages: 163

After the Second World War the development of what would become known
as the Toyota Production System (TPS) started. Mr. Ohno realized that
Japan couldn’t compete with USA by copying the American way of working.
Manufacturing at that time was focused on mass-production a la Ford where
large volumes of identical products are produced. Toyota’s need was the
exact opposite: small volumes of many different products. Mr. Ohno managed
to achieve this by introducing a very flexible model where waste in all
its costly forms is continuously eliminated. As the oil-crisis hit the
world in the 70’s the superiority of TPS was clear; Toyota made less profit,
but the gap to other manufacturers increased!

In addition to the practical workings of TPS, Mr. Ohno also describes
the thought-process that lead to the different elements. This is really
fascinating material and stands as an excellent example on out-of-the-box-thinking.
For example, deriving the idea of Kanban from American supermarkets is
pure brilliance.

Fascinating or not, how does all this relate to software? Toyota is about
cars, isn’t it? Well, the most important principle in TPS is to eliminate
waste and I consider that principle very relevant for software development.
A very common type of waste is code that’s written but not integrated
until weeks and even months later. In this case, the main waste arises
from the late feedback and the missed opportunity to improve the code
from the knowledge gained. Further it indicates a waste because something
was developed but there obviously wasn’t any true need for it. At least
not immediately and the time spent could have been invested in an activity
adding immediate value.

I also believe that’s the reason why practices such as Test-Driven
Development (TDD) pay of so well; it works exactly in the vein of TPS.
TDD achieves just-in-time exactly the same way as Toyota does: by inverting
the steps in the traditional process. Remember, in Test-Driven Development
you’re not allowed to write any code before you have a failing testcase.
That is, the failing testcase is the need that triggers production and
ensures that no unnecessary code (i.e. waste) is developed. Of course
it also provides immediate feedback.

The Toyota Production System is a book to study and reflect over. It
is a pleasure to read and in addition to its brilliant material it may
well change the way you look at the process of developing software in
teams.

Reviewed April 2006

Xổ số miền Bắc