Subject: free software and lean manufacturing
From: Brian Marick <marick@HAL.CS.UIUC.EDU>
Date: Tue, 9 Mar 1993 11:33:31 -0600

Here's an argument for free software that I haven't heard before, at
least not in this form.  The claim is that free software has inherent
pressures toward quality that non-free executable-only software does
not. The argument is by analogy with lean manufacturing.

Lean manufacturing is described in Womack, _The Machine that Changed
the World_.  Toyota is usually used as its exemplar.  One of the basic
tricks of lean manufacturing is to make undesirable behavior expensive
and noticeable.  For example, consider "just in time" manufacturing,
where no stocks of raw material are kept in warehouses or on the
factory floor.  Instead, they're delivered just as they're needed.
That means that you don't have to pay for storage space, but it has a
more important effect.  In conventional manufacturing, glitches in
manufacturing are buffered by stock on hand.  That means there's no
reason to fix them *now* - and they never do end up getting fixed.  In
lean manufacturing, there's no buffer.  Inefficiencies are obvious,
deliberately magnified so that you have no choice but to fix them.
This leads to a virtuous cycle of lowered costs and increased
quality.

The analogy to software?  Anyone who's worked on commercial software
under schedule pressure knows that a lot of sloppiness happens.  This
sloppiness is hidden from the customer - it's in the source, or in the
configuration management procedures, or wherever.  The pressure to
improve it is weak, because the cost of sloppiness is long term.  If
the source code is part of the deliverable, the short-term risk of
sloppiness is higher. (An important customer shouts, "What IS this
cruft?" and flings it back at you.)

In my case, the knowledge that GCT users would have access to my test
suite -- and could use GCT to measure the coverage of that test suite
-- tipped me on the side of virtue more than once.

That's the advantage of source distributions.  What advantage free
software?  It places the right kind of pressure on software suppliers.
It's easier to find problems with software by doing things with it
than by looking at it.  Bad code is more obvious during ports or other
adaptations.  In free software, much more of that work is done by the
user community than by the developer, so problems are found by people
more likely to scream about them than sigh and ignore them for lack of
time.

The message to people you're trying to convince: free software has
certain inherent advantages.  It forces some good practices on you,
the provider.

It also has certain inherent disadvantages, which I don't think should
be hidden, rather admitted frankly and discussed.

Warning:  Lean manufacturing has been overhyped and a backlash is in
progress.

==================================      Brian Marick, Testing Foundations
Freeware test coverage tool             Testing consulting, training, support
cs.uiuc.edu:pub/testing/GCT.README      info@testing.com