Tesugen

Constrained universes and software development

Now, what’s the relevance of the constrained universes of expression to software development?

For quite some time, people have been hunting for metaphors or analogies to software development. The most popular one has been “construction” or “engineering”, which I think is because people want software development to be rational and controllable. But much in software development isn’t rational and therefore not controllable in the way rational things are.

Now I come to think of something Paul Graham wrote:

I like debugging: it’s the one time that hacking is as straightforward as people think it is [emphasis mine]. You have a totally constrained problem, and all you have to do is solve it. Your program is supposed to do x. Instead it does y. Where does it go wrong? You know you’re going to win in the end.

In every software project the team has to discover what the problem is. Then invent a solution. How can this ever be more rational than the scientific method?

Now, the general idea of scientists is probably that what they do is very rational and methodical, but let’s look at how the scientific method is explained. This is from the sci.skeptic FAQ:

  1. Observe some aspect of the universe.
  2. Invent a theory that is consistent with what you have observed.
  3. Use the theory to make predictions.
  4. Test those predictions by experiments or further observations.
  5. Modify the theory in the light of your results.
  6. Go to step 3.

Now, you don’t just “invent a theory.” It requires lots of experience about the subject, and the wider your experience in other, unrelated areas, the richer your source for analogies and metaphors that could serve as a foundation for a theory to explain what you have observed.

In inventing theories, you have to rely to a greater extent on your intuition, or “right brain”. Steps 3–5 are “left brain”, or where you get analytic and methodical. It’s a balance.

I’ll have to continue this later.

The above was posted to my personal weblog on August 13, 2003. My name is Peter Lindberg and I am a thirtysomething software developer and dad living in Stockholm, Sweden. Here, you’ll find posts in English and Swedish about whatever happens to interest me for the moment.

Tags:

Related posts:

Posted around the same time:

The seven most recent posts:

  1. Tesugen Replaced (October 7)
  2. My Year of MacBook Troubles (May 16)
  3. Tesugen Turns Five (March 21)
  4. Gustaf Nordenskiöld om keramik kontra kläddesign (December 10, 2006)
  5. Se till att ha två buffertar för oförutsedda utgifter (October 30, 2006)
  6. Bra tips för den som vill börja fondspara (October 7, 2006)
  7. Light-Hearted Parenting Tips (September 16, 2006)
Bloggtoppen.se