Friday, January 18, 2008

Cargo Cults and Safety Margins

I described cargo cults to you once as religions that sprung up in the south pacific during WWII as a result of us being there.  I did a pretty bad job of explaining them, so if you haven't read the article you should. http://en.wikipedia.org/wiki/Cargo_cult

http://en.wikipedia.org/wiki/Cargo_cult_programming

So then I was reading about cargo cult programming, and I found the idea interesting.  I know you don't care too much about programming talk, but this is only slightly about programming.  CCP is when you do something you don't understand to solve a problem, and in the process do unnecessary things.  If for example you didn't know what a function did but you knew it solved a problem you had so you always put it in your programs.  Another example was if you were told that commenting is good, so you comment every line including stuff like 'Print "Hi"; //this prints hi on the screen'.  I expanded this idea to all of life.

I think this is one of the big problems with working with people.  They establish certain things that serve no purpose but solve or at one time solved a problem, so they keep doing it.  Often doing the full process is wasteful, and sometimes it's not needed at all (as it doesn't solve the problem, or the problem doesn't exist anymore).

I know I also told you of a story where pigeons where put in a box that gave food at the press of the button, and they learned to press the button. Then new pigeons were put in boxes that gave food at random.  The pigeons 'learned' elaborate superstitions for getting food.  If they just happened to jerk their head when food came out, they keep jerking their head, and eventually more food would come out.  They'd use that as confirmation of that particular head jerk movement.  Over time they'd add more and more complex rituals to the process.  I don't know what relevance this has, but I felt like mentioning it.

A real world example I was thinking about was boiling water to kill bacteria.  There are a few different rules out there about how much you have to boil water to make it safe.  The problem is anyone can type up something that looks very authoritative and it's believable.  How are we to know, or independently test how long it takes?  Realistically we must put our faith in some other source, but how to determine that source?

A problem arises with safety margins.  Say the real answer was 1 minute. Then say some government agency was preparing a guide that had to do with this.  The guy decided how long to tell the public to boil water would likely put in a safety margin over 1 minute.  You don't know if maybe you made an error in determining 1 minute, or if people will think water is boiling when it's not quite yet, or if altitude or other environmental factors will effect it.  So they may say 2 minutes to be safe.  No one wants to say 1 minute, then get people killed because they drink unsafe water (or get sued because of it).

Then someone else comes along, say some school or company that wants to put out it's own guide.  It'll use the government's report as a source, and take it as a reliable source.  However, they will too add a safety margin, which will then make the info even less accurate.  The problem could even arise with different government agencies.  If one agency sees that another already did the work of a study they will likely go with the published results. Further down the road the original agency may want to republish an updated guide, at that time they may see that a different agency had published a different time, and use that.  The original team might not even still be there, or they may put more faith in the other agency.

That actually leads to another interesting problem.  People often put more faith in others to not mess up, simply because they know they may mess up. People will usually put more faith in some other guy, even if they don't know them, when it comes to figuring out something important.

No comments:

Post a Comment