Sunday, January 18, 2004

Physiology of Software Development

I was wondering today: what would a doctor think if he was watching my stats while I was programming? Would my heart rate go way down? Way up? Would an EEG look really strange?

I wonder for two reasons:

  1. When programming, I often enter a weird state of super concentration, where I'm aware of little going on around me, and the code in front of me ceases to be a sequence of characters and takes on a much more abstract realization. I'm not claiming this as a unique experience - I think this is a common experience for many developers.

  2. Sometimes when I'm writing code, I get really hot. I have a thermometer next to my desk, and the temperature rarely varies by more than one degree. So as a guy that's generally quite cold, getting warm is a sign that something is unusual. I haven't linked it to one particular activity yet (e.g. debugging, design, etc.), usually because I'm too distracted by being in state #1.

A quick Google didn't turn up anything on studies in this area, but I have to wonder if there's been some work done here.


  1. Number 1 is called "the flow". It is pretty common among programmers. The worst working environments are exactly those that prevent you from getting into the flow.

    I've never noticed number 2 myself. Is this before or after you punch your fist through the keyboard? :)

    Anyway, if you google with keywords programming and "the flow", you'll get a few hits. E.g.:

  2. Another name for "the flow" is "the zone" - and its pretty common across many types of jobs - not just programmers. It's an altered state of conciousness typically resulting from deep concentration. People can achieve this through meditation as well, but you don't produce anything (ie code) when you meditate, so, what's the point. Typically, your heart slows and blood to your extremities diminishes as well, forcing most blood to your brain. Breathing slows as well - sometimes when I'm in "the zone" I snap out of it because I forget to breath (weird hey?). When you are in the zone, time has no meaning.

    It's a good place to be. Work places should be designed for people to get into and stay in the zone with little effort. Minimize distractions (email, messenger, phone, google news, people) and you should be able to get into the zone. People who live with distraction (Sales, PM's, Doctors, etc) never get a chance for exclusively introverted thought, and don't understand the zone.

    There has been books written on this - mostly about how older culters were able to harness the zone in practical every day life... which is cool.

  3. > People can achieve this through meditation as well, but
    > you don't produce anything (ie code) when you meditate,
    > so, what's the point

    I love engineers. :)

  4. Face it, programming turns you on :-)

  5. The zone rocks. It's not just programming... several years back, after a trip to Russia, I was completely phase-shifted - working between the hours of 9 pm and 8 am on some pretty hard core stat mech HW sets. That was fun.