Superstition
Superstition is an obstacle in programming
Posted by 02/17/2006
Superstition is never a useful thing - although sometimes it's more benign than other times. I notice superstition in 2 major areas of my work. 1) My own code 2) Getting server administrators to adopt new technology.
Programmer's Superstition
I've seen this happen to every programmer I've ever worked with - not the least of which is myself. I try three things in succession - and somewhere in that process I get the desired result. If I'm diligent I retrace each step to figure out exactly what I did. But I'm more likely to just move on and make a vague notion in the back of my mind - that at one time I did this strange succession of steps and it worked. Next time around - try it again. Why not? It worked.
Then my toolbox of ideas is infected with the bad thought - possibly forever. "One time I renamed a file, compiled it again, and everything worked fine. It doesn't make any sense, but that's what happened. Go figure". The next time I'll try it again even though I don't understand why it worked the first time. This always seems particularly stupid when someone is watching what I'm doing and I go "Let's just try renaming the file... it probably won't help but..." The crazy thing is sometimes it does - and then the superstition spreads.
It can also infect day to day practices. It seems to happen most when I'm learning a new language and don't quite understand how anything works. For instance, a few weeks ago I was having problems getting namespaces to work in Ruby on Rails for ActiveRecord models. Now I don't understand what the problem was. I just kept trying, according to my minimal understanding of the language, and it kept not working. I concluded "it doesn't work..." and I really have no idea why.
So what are the options? I could continue to bang my head against a wall, I could spend the hours necessary to understand the problem thoroughly so that I actually understand why I'm having the problem (probably the best approach in the long run), or I could move on because I have other things to do and note "do not try to use namespaces in RoR models" And this will effect my day to day practices, my advice to others etc... and it's all half-thought superstition really. I think this happens a lot. Not just with me.
Server Administrator's Superstition
The other place I see a lot of superstition is when I try to talk a server administrator into installing something. Anything. Then it turns into the 2 most common superstitions: 1) The infinite conjecture of software interaction 2) The unforeseen 'security risk'
The infinite conjecture of software interaction: This is the attempt to predict how all combinations of software interact - or blaming a problem on one such scenario. There are an infinite number of computer configurations, so this is an impossible task. What if you have Apache 2.0.54 with Python 2.3 with Django 0.90. Will the computer blow up? What about if you have Apache 2.0.53 and Python 2.4 and MySQL 4.1 and Django 0.89b...? The combinations are infinite.
It also happens that if something goes wrong - it's likely to be caused by something you recently installed on the server. "There was nothing wrong with the server until you installed MySQL. That must be the problem". The more times that happens, the more wary the system administrators get. Over the years they cling to stable configurations as if they have stumbled onto something magical.
It's to be expected though because as a system administrator, your given the responsibility of running a system on software and interactions you are only marginally familiar with, running a computer that you rarely use.
The unforseen security risk: I've seen this a lot too. This is just the conjecture that a) "I thought I read somewhere that [installing] this was a security risk" or b) It's possible "this software is a security risk", because I don't know how secure it is or not.
This all boils down to 2 ideas really, a) whether something is falsifiable and b) where you put limits on an infinite set of possibilities when examining any given situation.
String Theory
And This all reminds me of my thoughts on string theory at the moment.
I know nothing about String Theory, but from all the TV shows about it lately I have noticed that there are wild claims "Perhaps we live in a series of parallel universes ... and perhaps in one of those universes everything is exactly the same as this one, except dogs can laugh" - [modified father guido sarducci]. That could be true, but without any method of falsifying it, there's really no telling.
Comments
Post a comment