In defense of resting

I have been watching recently some documentaries about software development, including the classic Triumph of the nerds (available in YouTube in three episodes, 1, 2 and 3) and Indie Game: The Movie. They are both very good  and I’d recommend them not only to developers, but to people interested in technology and/or entrepreneurship in general.

But they are very good exponents into something very present on the software scene, which is presenting crunch mode, working insane hours, in some sort of glamourised way. It is part of the usual storytelling and, and probably, part of the hard work -> ??? -> profit logic.

Let me told you something. When I was starting my career, on my first long term job, we once had a very strong deadline. This made us work in crunch mode for a long time (around 2 months). That meant working around 12 hours or more per day, 6-7 days a week. The very last day (a Sunday), I started working at 9:00 AM and went home the Monday at 6:00 PM, only stopping for eating something quick and going to the toilet. The rest of the team did similarly.

All we had to do on Monday (since around 8:00 AM) was finishing some docs (around 50-60) updating the cover with the following data:

  • Date
  • Name of the author (and signature)
  • Name of the reviewer (and signature)
  • Number of pages

We were so exhausted, that we weren’t able to do all the steps properly. There will be some errors on the number of pages, or someone will sign the wrong cover, or the date will have a format error and you have to start the process again. Simply, our brains weren’t working. My work during the rest of the week (we took the Tuesday off) and quite some time after was in “recovery mode”,  and not much work was done for a while. Being mentally exhausted is not very pleasant, as you feel the dumbest person on earth, incapable of focus. That wasn’t the last crunch mode on that project, but was the worst without a doubt (and probably the worst I will ever do).


Entering the “Sweet Dreams” mode in Vim. Press ESC to return to Normal mode.

Looking at that in retrospective, the quality of the work after the first two weeks, was really bad, and we had to fix lots of bugs and issues during the rest of the project. To put it clearly: It was not worth it. On the long term, instead of doing more work in the same time, we made crap code that needed a lot of fixing. Sure, we were able to check the To Do list, but was cheating ourselves (and our customers). And, of course, there were other (even worse) issues with a very bad long term effect, like damaging the relationship with management, a significant personal life cost and, in general, the feeling that it was a mistake. Keep insisting in those mistakes was one of the things that made me leave that job.

Software development is a long distance race. Just as you cannot sprint during a whole Marathon, you need to keep a sustainable pace when developing, including proper rest. By the way, I am not totally convinced about the term “sprint” in Agile because it gives the impression that you will run, probably something like “stage” (like cycling) will get a better idea of “sustainable pace”. But I digress.

As with other works, specially intellectual, the productivity increases are achieved more through improvements in the way of working, being more productive, than trying harder. There are lot of things that will increase the productivity, even on short term, like getting a clear view of what needs to be done or removing obstacles. Instead of focusing in keep cutting trees, the focus should be on sharpening the axe from time to time. For that, you need to take a break from your work and think about how you’re doing your work.


Totally scientific graphic showing the decrease in productivity without proper resting.

Of course, crunch mode can be unavoidable some times, specially on an startup environment, but that should be short or it will achieve exactly the opposite than intended. It should be treated as a “necessary evil”, not business as usual.

I get the impression that, as part of the narrative in those documentaries and other sources, like blog or news articles, is great to create a narrative in which “our heroes” (the developers, the entrepreneurs) overcome all the problems through really hard work and obsession. It also generates deep personal bonds forged in pizza and long night time hours fixing problems. Finally, at the verge of exhaustion and bankruptcy, all that hard work pays out into a wonderful, successful product that everyone loves (and buys). Even if there has been bad times and conflict, it has all been worth it, and our heroes, now acclaimed and wealthy, look into the sunset while the credits roll and Techcrunch writes an article.

We love those stories. But the sad truth is that, most of the times, all that extra effort is wasted and it just adds problems, both in the quality of the work and, even worse for the long term, in the quality of the working environment.

Work hard, follow your dream, but, please, remember that stopping and catching your breath doesn’t slow you down, but helps you to get further.

PD: Thanks to Daniel Foreman-Mackey for his tool to generate XKCD-style graphs, in JavaScript.

One Comment on “In defense of resting

  1. Pingback: Compendium of Wondrous Links vol II | Wrong Side of Memphis

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: