“Crunch Mode” and Sleep

by Joey deVilla on May 24, 2005

Why Crunch Mode Doesn’t Work: 6 Lessons is an article that I meant to link to ages ago, and is presented here for the sake of completeness.

“Crunch mode” — working extra hours each day for extended periods in order to meet a (usually arbitrary and unrealistic) deadline — is a term that’s familiar to programmers, especially any who’ve worked at a small firm or start-up over the past 10 years. Unfortunately, with the rise of concepts like “Internet Time” and the apparent need for companies to do more with fewer resources, crunch mode is becoming such an accepted way of life — in fact, one company even boasts about its “crunch mode accomodations” [my thanks to Jason Della Rocca's entry in Reality Panic for that link].

The belief that crunch mode works may stem from the fact that our work doesn’t look like work. Programming is most often done in a seated position, and being a labour of the mind, a programmer may be wrestling with concepts that drive the engines of commerce or an airliner, but appear to others only to be staring into space. Like our work, the end-product is also invisible. As David Allen astutely points out in Getting Things Done (considered by many geeks to be a must-have book):

In the old days, work was self-evident. Fields were to be plowed, machines tooled, boxes packed, cows milked, widgets cranked. You knew what work had to be done — you could see it. It was clear when work was finished, or not finished. [from page 5 of Getting Things Done]


Visible or not, it’s still labour, and labour is tiring. Sooner or later, the Law of Dimishing Returns comes into effect. The graph below is taken from Why Crunch Mode Doesn’t Work and shows worker productivity over time:

Crunch mode productivity graph

This graph is an approximation of a one that is almost 100 years old — one taken from Sidney J. Chapman’s Hours of Labour (1909), excerpts of which can be found here.

The x-axis denotes increasing work hours in a day, while the y-axis shows increasing value. The curve P represents worker productivity, for which we’ll accept a simple definition: “output per unit time at a given number of hours worked per day”. The graph shows that for a certain amount of time, a person can actually get real, useful work done, and that work is represented by the blue area under the P curve. After a certain point, the worker can still get work done, but not as much or at the same pace as before — this is represented by the yellow area. The red area represents negative work, in which the worker’s output is of the “one step forward, two steps back” sort, and happens after more than a reasonable number of hours of work.

You’ve probably experienced this either at work or in school — after a certain number of hours of work, you become more mistake prone, and spend an increasing amount of time correcting mistakes. Sometimes, you don’t catch those mistakes until the next day and spend time correcting them, making for less productive time doing today’s work. I know that I’ve looked at code or documents I’ve written during crunch mode and thought to myself: “Which idiot wrote this? Oh wait, that idiot was me.”


Another unseen consequence of working long hours is that non-work tasks creep in to compensate. Errands you would have run from home are now run from work, thus negating the reason for the late hours at the office.


Finally, there’s the matter of sleep. We programmers have an anti-sleep culture; just count the Starbucks mugs or bottles of Coke, Mountain Dew or Red Bull in any office with coders. Better still, visit ThinkGeek, an online shop catering to programmers, systems adminsitrators and other computer types and note that they have a whole section devoted just to caffeine.

We’ve known for a long time about the detrimental effects of lack of sleep. Even in popular culture, the lack of sleep leading to odd or insane behaviour goes back hundreds of years — at least as far back as Lady Macbeth. Those of us who’ve caught some documentary footage of sleep deprivation experiments have had a good laugh at the test subjects as their behaviour became increasingly erratic as the experiment wore on. Sleep can often bring about clear thinking — there’s a reason we have the expression “Let me sleep on it”. There’s also been some research suggesting that sleep inspires creativity.

In spite of this knowledge, we still work hard at fighting sleep. In writing this article, it dawned on me that we view sleep in a way similar to the way anorexics view food — not as a necessity of lifenand one of its great pleasures, but as a necessary evil, if not an enemy to be defeated. Consider this slightly-edited-for-anonymity post from an anorexic’s blog:

I’m bummed out right now. I’m doing really “well” and losing lots of weight. I’m getting lots of compliments on my looks; everyone’s going on like “[name deleted], what’s your secret? I need to start doing what you do!”

If only they knew. I have no idea what to do anymore. It doesn’t matter what I do; I won’t be happy. Sometimes, I think about what I’m doing to myself and realize that it’s sick. I’m really just hurting myself. I just want to stop and get better, but if i do that, I’ll gain back all my weight and be ugly again. Anorexia — maybe it’s a disease, but it’s one that makes me beautiful. I’m not ready to give it up.

The problem is: I’m miserable. My entire life is about being skinny.

What the hell kind of life is that? I want to be thin and beautiful. I’m certainly much thinner and and more beautiful than before, but am I happy?

Thats it for now. I hate sounding so negative, but on the bright side, hey, I’m still losing weight.

Your first reaction was probably one along the lines of “Hey, that poor kid needs help!”

Now imagine substituting anything related to food and eating with sleep and exchanging anything related to thin and pretty with productive, a skilled coder, “1337″, a valued employee and worthy of a raise or candidate for promotion.

Pardon the pun, but it’s food for thought.

Leave a Comment

{ 1 trackback }

Previous post:

Next post: