Some people refer to "bugs" in the system. There’s
historical precedent for this since one of the first recorded computer
malfunctions was caused by a moth in the circuitry. I don’t use the
term any more. I call these things what they are: defects. There are
things you need to remember about defects:
- Any defects in the design are the result of mistakes by the
designers
- Any defects in the code are the result of mistakes by the
programmers
- Any recurring mistakes in the design or the code are the result of
mistakes by the manager
Every branch of engineering makes it a point to study mistakes and
learn from them. If system testing detects a problem in a program, the
nature of the problem needs to be communicated so that similar problems
can be detected in future code inspections. Other code produced by the
programmer who introduced the defect should be checked to ensure that
the defect isn’t present there as well.
There are a lot of people who scoff at the idea of producing
"zero-defect" software. You shouldn’t be one of them. I have
led two projects that have never shown evidence of a defect, even after
years of operation. Two projects is only a small fraction of the total
number of projects I’ve managed, but the feeling of pride and
accomplishment that came from these projects, not just for me but for
everyone on the team, has not diminished.
|