Software and Cargo Cult Science

| No Comments

Jef Raskin writes about superstitious behavior in the technological world:

Computer systems exhibit all the behaviors best suited to create superstitious responses. You will try something, it won't work, so you try it again — the exact same way — and this time it works, or not. That's random reinforcement. The effectiveness of many programming and management practices thus are not measurable.

Richard Feynman wrote about pseudoscience in his book Surely You're Joking, Mr. Feynman. [alternative]

That book and a follow-up called What Do You Care What Other People Think, are probably among the most enjoyable I've read about science. That's mainly because they're full of stories that stand on their own merits as entertainment. The science is there, but it's mostly in the background, as a way of thinking that Feynman is able to use in his adventures.

There's one piece at the end of Surely You're Joking that is more serious in tone, his talk on cargo cult science. The parable has its limitations. I have a hard time imagining south sea islanders who build a cult around trying to attract the cargo planes as if they were a supernatural phenomenon. Never mind, the talk is worth reading in full.

According to Feynman, real science can be distinguished from something that only looks like science by a difference in attitude, a certain kind of integrity:

Details that could throw doubt on your interpretation must be given, if you know them. You must do the best you can — if you know anything at all wrong, or possibly wrong — to explain it.

[...]

The first principle is that you must not fool yourself — and you are the easiest person to fool. So you have to be very careful about that.

Feynman also writes about the pressures scientists come under that tend to undermine their integrity. Here's how the talk ends:

So I have just one wish for you — the good luck to be somewhere where you are free to maintain the kind of integrity I have described, and where you do not feel forced by a need to maintain your position in the organization, or financial support, or so on, to lose your integrity. May you have that freedom.

(I wonder if he knew that he came of age during a golden age of physics, when people like him did have that freedom.)

Cargo cult programming is well known. I think we all do it some of the time: we make up stories about things we don't understand.

That's fine as far as it goes. There's no great virtue in wasting time over some small problem that isn't going to change the world. Fix it and move on. However, Jef Raskin does say more in his article:

Most of the principles of "extreme programming," for example, seem reasonable to me, and I was using many of them long before they had acquired their present absurd name. The people who promulgate the idea, however, are also those who created the paradigm. Most reported results aren't even single-blind, much less double-blind.

Never mind the name. Raskin is saying that principles that are in common use and have been used for a long time do not have good empirical evidence to back them up. This is not about XP as such. It's about nearly everything we do. There is cargo cult software engineering and cargo cult project management. There is pseudoscience all over our field.

It's true that as a software engineer I don't aspire to be a scientist. I don't want to be a peddler of quackery either. That's good advice from Feynman: a certain kind of integrity, an openess to the possibility of being wrong, is necessary.

About this Entry

This page contains a single entry by Christian published on January 12, 2004 9:28 PM.

I'm Engaged was the previous entry in this blog.

We Are Fostering Cats is the next entry in this blog.

Find recent content on the main index or look in the archive to find all content.