Software Engineering Stories

When the River is Polluted

Tom Van Vleck

When the river is polluted, we don't just get out there in the middle of the stream with nets and strainers, and attempt to filter the garbage out of the water; we may do that, but the more important thing we do is to march back upstream, testing the water, until we find the source of the pollution, and turn that off.

Bugs are evidence of an underlying process.

When we find bugs in a computer program, we shouldn't just fix the bug and ship the product. We should also ask what caused the bug and permitted it to ship. Then we can at least consider preventing all the bugs like this bug.

You can't just test programs for bugs.

Thorough product testing before shipment is important, but writing code "the way we've always done it" and then expecting that product testing will catch all the bugs before shipment is like straining the river.

Measurement is necessary before you can control

Whether we're trying to prevent water pollution or program pollution, we have to have some way of measuring it. We need to know which of the many possible sources of pollution is significant; if we change something, we need to be able to measure the effect.