Dirt - Sparks - Code

Self indulgent rambling. Minimal redeeming attributes.

HomeHome

On the importance of a good developer work environment

Stu Pocknee
Stu Pocknee
tags coding

This is an article I like about this subject: http://www.paulgraham.com/makersschedule.html

It rings true to me as it reflects my experience both as a coder, and as a manager.

My own general view of coding time goes like this: For seriously productive coding you need to be in (what I call) the "Zone".

This is a state of mental concentration where:

It takes time and energy to enter the "Zone". Once you are there, good things can happen.

A graphical representation of this:

The problem with the "Zone" is that, while it takes time to get into it, it takes no time to be bumped out of it. This looks like:

If you are coding in an environment with distractions the net effect on coding is much worse than the sum of the time of the actual distractions. The distraction only has to last a minute to blow away the next 30 minutes of productive 'Zone' time. If there are enough distractions and they are spaced strategically enough you may well achieve nothing despite spending all day at the keyboard.

For those who do not know the joy of the "Zone", it is like REM sleep. If you are woken up every 30 min during the night, you are not going to sleep well, and you are going to be cranky.

No male coder alive can be in the 'Zone' and be doing anything else. This is a "no-multitasking" state of existence, definitively. Females may be different. I couldn't say.

Every coder is different. Some people can hold the Zone through a fucking hurricane. Some guys can't focus if there is an inconsiderate wanker breathing in the same room.

A non-exclusive list of things that aren't don't help:

What do you need to be in the zone. Are you getting what you need? Would headphones and elevator music help? Do you need an locked down environment with no outsiders? Have you taken the battery out of your phone and blocked anything that resembles a social media account from your computer?