"Todays software industry is in the same position as the worlds automobile industry in the 1970's. When consumers got tied if defective cars, manufacturers were forced to improve. We in the software industry can learn from the way car makers approached the quality issue.
American manufacturers thought they had the solution when they placed extra workers at the end of each assembly line. The extra workers did find a few more errors, but American companies lacked the know-how to prevent the errors from happening in the first place, and the stream of errors continued.
Because they thought errors were inevitable, American car makers suffered through a litany of clever nicknames (Found On Road Dead) for their cars.
Soon, many Americans began to buy Japanese cars. Words like Honda, Toyota and Subaru somwhow crept into American dinnertime conversation. People buzzed about the reliability of Japanese cars. Weren't the Japanese faced with the same problems as American companies ? Yes. But the Japanese car manufacturers did not believe that defects were inevitable. They noticed a correlation between defects and particular stations on the assembly line, and between the probability of making each error and the occurence of that error in the assembly line.
The Japanese found ways to reduce the possibilities for workers to introduce defects into cars by improving the assembly line itself. Soon the number of erros in Japanese cars dropped dramatically.
Unfortunately, most software developers are still happy to drive Pintos. Or, to put it another way, we still look at errors as inevitable and wait until later to fix them. We should be looking at the correlation between each stage of the development cycle and the errors that result. We need to examine the procedures of out developers, identify the procedures that cause the most errors and fix them."
Adam Kolawa, C++ Report, 1999