Relax and Code Better

Somehow it still isn’t understood that programmers don’t produce their best work during any specific set of hours or only when they are in the office. Programming is an activity cognitively closer to philosophizing than it is to elementary math or physics. The best work doesn’t get done between 9am and lunch, with Sue from HR or Bob from management interrupting at 10:30. These statements are blatantly obvious to me and many other programmers, but somehow they still aren’t understood or recognized by those who employ or otherwise work with programmers. Until now I didn’t have a concrete way to describe the crucial intellectual difference involved with the programmer’s ability and productivity. Now I do. It’s called free juxtapositional thinking.

Thanks to Alan Carter over at The Programmers’ Stone I have a way to describe what I have long been talking about. He has done a great deal of research and writing on the subject and has explored effects at the organizational, social, individual and even neurological levels. For me this is fascinating stuff and I’m glad that someone is pursuing the science behind the mythical programmer productivity stories. “What’s the gist of it?” you may ask.

Essentially, programmers working on complex problems are most productive when they are able to back away from the problem and see the many intricacies in a system simultaneously; hence the term “juxtapositional”. This type of thinking is opposed to the more mundane ordered and structured thinking that many people use in day-to-day tasks. A programmer will have a much harder time coming up with an elegant or efficient solution to a problem by following an ordered set of steps, testing the solution, then starting over when it fails. Solving problems in this field requires multiple levels of indirect thinking and wrangling of abstract concepts. For these challenges the programmer must be allowed to relax and let the brain fall back into its juxtapositional state.

The results of these findings should be plain: programmers are at their worst when under stress, interruptions disrupt juxtapositional thinking that takes long periods of time to engage, boredom and fatigue are detrimental to quality of code and, inversely, happiness is incredibly powerful. There are very tangible policies to be implemented based on these: individual offices with doors for programmers, flexible (better yet, non-existent) office schedules, telecommuting, liberal vacation time (five weeks per year minimum), 100% benefits so programmers don’t have to worry about insurance or savings, catered meals, transportation and relocation paid for, first class air travel to industry events or training of the programmer’s choice, and whatever else you can think of to reduce the friction between a programmer and the most juxtapositional thinking time possible.

Of course that list may sound extravagant and unfair to many people, but the gains to the company are just as extravagant if not more so. A company with a team of programmers who are all producing at a near optimal level is several orders of magnitude more productive than the company where their programmers are just above the mail boy on the totem pole. So even while one of the programmers is vacationing in Greece and another is attending a tech conference in New York while staying at a 5-star hotel, the company just shipped a better, more reliable product, five times faster than any of its competitors could get it off the ground. The implications for profits are clear. The problem is not that this strategy isn’t feasible or hasn’t been done; it’s that so few people know about it that hardly anyone is even attempting to implement it. The question you should be asking yourself is: “How can I afford not to implement this strategy?”

Alas, the reach of these concepts is limited by traditional bureaucracy and the ideas are dismissed by overconfident managers who lack any programming experience whatsoever. It’s not clear whether these strategies will ever be implemented on a large or majority scale, but in the meantime there are at least a few companies1 who are already realizing the benefits and raking in the profits.

  1. FogCreek Software

Originally published:
January 14, 2008

Archived at:
http://h3h.net/technology/relax-and-code-better