I had sort of a revelation this afternoon when I think I finally figured what it was that I knew was a missing piece and the explanation.Thus starts a well-thought-out screed on software reliability, re-usable components, and the culture that has led to "fault-tolerant customers" rather than "fault-tolerant software". Alas, if only it was the fault of one particular firm: instead it's the fault of the industry as a whole.
And it also came to me as to why we have such a horrible problem with software reliability. Let me ask you to take a moment and consider how you started this morning.
Most likely, you crawled out of your cave, went down to the stream to bathe in the ice-cold water, came back and pulled the wheat out of the ground,stripped the chaff, then used either a mortar and pestle or a grindstone to make flour, then pulled some yeast from the pot to mix with it to make bread, then chopped wood, then used the wood to build a fire and baked the bread, then ground peanuts in the same mortar to make peanut butter, then spread it across the bread and ate it, because by now it was lunch, no?
No, most likely you got out of a bed, got up and took a hot shower in your indoor bathroom, poured boxed cereal into a bowl or made breakfast from materials you bought in a store, then cooked it on a range, or went to a restaurant and bought something to eat, then went on to work, and probably in this entire time you did nothing more strenuous than pick up the morning paper.
Also, you did not mine the ore for your utensils or forge the steel for them, nor did you build the automobile you drove to work....
Anyway, even non-programmers, no, make that especially non-programmers should read the whole thing.