|
(Source: Phlip posted this to the XP list) "Industrial waste" is
when a factory produces something it shouldn’t. Heat, smoke, extra
chemicals. This is wasteful because it represents energy and materials that
went into the factory, but did not come out as product.
"Process waste" is the behaviors that don’t produce a
working product. The biggest waste in the industry today is
"programming in the debugger". This is so endemic nobody even
calls it waste. Our vendors work very hard to supply us with advanced
debuggers, so we can merrily cause problems and then fix them, instead of
preventing problems.
Another big waste is delayed integration. Some shops account for how many
modules we must write, then specify the modules’ interfaces, and tell
each programmer to write a module separate from the others. Then at the end
of this cycle the programmers start trying to integrate. They might not
even have build scripts to plug the modules together; they might find
themselves manually integrating by clicking on the user interface to an
IDE.
Delayed integration costs some orders of magnitude more than the cumulative
cost of continuous integration does.
Get ahead of these problems. Write tests first, constantly review code,
don’t own code, and integrate continuously. Write and maintain build
scripts that support all these behaviors seamlessly.
Don’t delay surprises. If "our product has an installer"
appears as a motherhood story, integrate the installation system early, and
test it every day. Don’t wait for the last iteration.
The ideal is that the last week before a big release should look and feel
just like any other.
|