Modern technology is complex, no doubt about that. Computers, TVs, VCRs, cars ...
In most cases, if you own such a complex piece of equipment and it fails, you either throw it away (or sell it if you are unscrupulous), or get it repaired by someone who knows what they are doing. Sometimes, though, you've been lulled into feeling confident by the advertising, so you have a go yourself. When you look inside this sort of equipment, it's all componentized so finding the fault should be easy. It's just a case of swapping stuff out until the problem goes away. In theory.
Here's me trying to fix something wrong with my computer...
Well, It was working yesterday, what have I done since then? Nothing, except turn it off and try to turn it on again. Aha! Must be a power supply problem. I bet the power supply has gone. They're complicated stuff, these modern multi-voltage switched-mode boxes, lots to go wrong. I've been reading a lot of computer magazines recently, so I know a good place to order power supplies from.
(several days' pause while I order a new PSU)
OK, I've installed the new PSU. Rats, it still doesn't work. Borrow a test meter off someone and find that the PSU is fine on its own. Check the old PSU and that's fine too. Still, it's nice to have a spare for the toolbox...
Repeat the same with the CPU, motherboard and so on ...
I've now got pretty much a whole computer sitting in anti-static bags on my desk. So I wonder to myself, how does a repairman stay in business with all this expense?
The answer could be straight out of the ExtremeProgramming credo. Check the simplest thing that could possibly be wrong. It's even better if the simplest thing is also the cheapest! So what if the problem isn't that 50 cent fuse, you haven't spent much and you haven't lost much time testing it. If you find the problem is a $5 disk cable, you've saved a lot on a PSU and motherboard.
The wise repairman assumes nothing. Check the simple and cheap stuff first - what have you got to lose? -- FrankCarver
In spite of what you may think watching your auto mechanic (or reviewing the bill), the wise repairman never just throws new parts at a problem. He formulates a hypothesis, constructs ways to test that hypothesis, and then replaces the component that he has demonstrated is the cause. Ok, not my auto mechanics, but the wise ones (if there are any left)! -- JimRussell
My brother is a world class auto mechanic (Ford Certified Master Mechanic to be precise). While talking to him one day about the process he uses to diagnose a problem, it struck me how similar that process is to debugging a piece of software. He approaches the problem quite like the way I approach debugging. -- JeffCutlerStamm?
There's a beautiful discussion of this technique in ZenAndTheArtOfMotorcycleMaintenance (the book, not necessarily the page).
Diagnosis is, was, and will be an important part of debugging. Probably predates software. Possibly Hipocrates. To hear good live examples of this kind of thinking find the Tom and Ray the CarGuys?, also known as Click and Clack the Tappit Brothers on the program "Car Talk" on USA Public Radio. -- DickBotting
Their website is at http://cartalk.cars.com/
The URL above is now a CobWeb - but try http://www.cartalk.com/ -- KarenSmiley
Isn't this a kind of ManufacturingMetaphor?
I just assumed this page was going to contain the following story...
Once upon a time there was a large building, which had a rather complex heating system. One day, a problem developed which none of the technicians could solve. Eventually, it was decided to call the wise old repair man to solve the problem.
He showed up and carefully studied the system, checking temperatures, inspecting various parts of the system. He then, in front of those assembled, made a chalk mark on the side of the boiler, pulled out a sledge hammer, and gave it one very forcefull hit on the mark.
Within minutes, the system was found to be in full working order.
The repairman then presented his bill $75 (an old story) to the boss. The boss complained "I'm not paying $75 for hitting the boiler with a hammer".
The RepairMan? replied: "Hitting the boiler was free. Knowing where to hit the boiler is $75."
-- MikeWarot
A version of this story is specifically associated with Charles Steinmetz (an inventor of the late 19th and early 20th century, and the developer of the mathematical model of alternating current; it can be said that while Tesla made the AC generator, it was Steinmetz who made it practical). It is almost certainly apocryphal, as it is completely at variance with his known work habits - IIUC, he was the meticulous sort, who wouldn't do anything without making careful measurements and calculations. This, and some similar legends about Norbert Weiner and Seymour Cray, can be seen at http://louie.e.phetast.nu/dumpster/documentary/misc/legends.html. I'd guess that you could have heard stories like these told about Fulton, Watt, LeonardoDaVinci, or even ArchimedesOfSyracuse, in their own respective eras. -- JayOsako
Similarly, I recently posted the following to slashdot, in response to an article-question that was (approximately) from a tech-support guy asking about achieving levels of excellent tech support:
The obvious example of excellent tech support to follow is... BicycleRepairMan! Quoted from a bicycle web site: