I recently had an opportunity to work on a relatively high-profile project with a crazy timeline. A coworker and I spoke with the client for the first time around lunchtime on a Friday, and the client needed a completed website, complete with a relatively sophisticated design (which had, at that moment, not yet been delivered by the designer) and a relatively sophisticated data model, by mid-day the coming Monday. That’s 72 hours to build and skin a fully functioning website.
I realize that “fully functioning” doesn’t tell you much about the scope of the project, but we live in a world of non-disclosure agreements. Suffice to say, it was a non-trivial amount of work.
Keeping in mind that the two of us had already worked 36 hours of our 40-hour work week on other projects, we agreed to take on the project. Between the two of us we worked about 60 hours that weekend, most of it solo, and had the site finished at start of business Monday morning. This might not seem particularly heroic (particular to anyone who writes software for the game industry), but keep in mind that at Pivotal we believe strongly in the concept of sustainable pace; we really do work eight hour days, five days a week. People working late at Pivotal is relatively unusual; people working weekends is almost unheard of.
The thing that struck me about this project was that I enjoyed it. I had a little rush of excitement when I agreed to give up my weekend and work late into the night as necessary. Even as I was doing it, bleary-eyed and mentally dull, I felt the high of accomplishment.
I spent the next several days trying to get my sleep schedule back to normal, and feeling generally tired and worn out. At the same time the two of us on the project spent a fair bit of our time, unsurprisingly, regretting some of the decisions we had made while working late into the night. Also during that week I came to something of a startling realization: I’m an addict.
I knew when we agreed to work on the project that the amount of sleep I would lose would make me miserable. I also knew that putting in a bunch of time over the weekend would mean starting work the next week without a day off, without time to do the non-work things I need to get done. More directly, while I was working on the project when I hadn’t taken a break all day and hadn’t slept the night before I knew my focus was poor, I knew my decision-making skills were compromised, and I knew I was prone to cutting corners I shouldn’t have cut; I consciously thought these things to myself at the time. And yet, I continued to work, without taking a break.
I don’t claim to be an expert on the psychology of addiction, but I do know that I’ve met a lot of people with drug and alcohol problems in the past. Lots of them talk about how they know that drinking/shooting up/huffing/whatever is hurting them, and hurting their friends and family, but they do it anyway. Because they’re addicted.
How many programmers work past the point of fatigue at which they can continue to make effective design decisions, to clearly think through scenarios, or to correctly differentiate between a reasonable trade-off and a regrettable hack? How many do so when they know their judgement is compromised, because they’re getting their fix of problem solving?
Proponents of “flow,” like Joel Spolsky (whose credentials for “writing great software” appear to be a summer internship at Microsoft and a silver tongue) will tell you this is a good thing; starting the flow of a great programmer takes so much effort you want it to go on for as long as possible. I’m not convinced; I know when I’m sharp and when I’m not, and I don’t even trust myself to stop the magic when I’m not doing my best work. And, this is a bit like an alcoholic explaining the health benefits of vodka.
Addicts most commonly manage their addictions by talking with other addicts. Maybe that’s an as yet unheralded benefit of pair programming: someone to cut you off when you’ve had one too many.
Good points. — About me: I have a family. They wouldn’t let me. (But I usually stay away from extremes) — Stephan
December 7, 2009 at 12:54 am
Really awesome story. Don’t know that I would have taken the project, but then, I’m not an addict.
December 7, 2009 at 5:36 pm
Knowing someone who went though AA and NA, they talk about “addictive personalities”, meaning that a person may kick one habit, only to replace it with another. The implication is that a person swaps a drug addiction for an alcohol addiction, or gambling, etc. Things that have a negative connotation to them. I think people can be addicted to “good” things too.
I once wrote this after working ridiculous hours to meet a deadline:
> A place where people work late not because they have to, but because they want to do good work and deliver on time. It’s a euphoric feeling to be at work the same time the next day as when you got there and to want to work the rest of the day.
The magic came from making the choice. We committed to the feature set, our reputation, our pride was on the line. We did it, not because someone told us to, but because it was the only way we could come to work and hold our heads high.
December 8, 2009 at 11:26 pm
Last year I had a very similar project. It was a significant contract for our company, yet completely unrelated to our business focus. We managed to convince ourselves that it was a good idea to build it because it could lead to connections that would be valuable in our future. What that meant was that I would work all night, build the site, and deliver it the next day. At 6a.m the next morning, it was done. It looked fantastic. It blew everyone away. I was exhausted. As expected, I slept most of the day. It took several days to return to normalcy and regain my usual productivity and focus.
At the time, I was very proud of the work and accomplishment. It was a product of a dare, in a way, as the feat was considered to be impossible. Having proven what is possible, I will never agree, nor ask any team or individual that I am responsible for, to do that again. Why? First, it wasn’t necessary. I could have taken five days to build it rather than one. The deadline was, as most deadlines are, arbitrary. Second, in hindsight, it was a terrible idea. It was not only misaligned with our biz objectives, it distracted us from what we should have been doing and damaged our more important projects. The impact to our general culture is still felt to this day. That evening, we stopped being highly efficient, hyper focused technical ninjas and turned into money chasing monkeys. We just recently came back around. I’m not entirely sure if we lost something or uncovered something but I would definitely say it reflects an addictive tendency. Third, we were never fully paid, as far as I know. We are still hosting the site on their behalf but I have no idea if the company even exists today. I know they haven’t done anything they said they were going to do – paying their invoice the least of them.
My advice, to anyone who considers killing themselves over a website: don’t. If your boss ever says, “we’re just going to have to start burning the midnight oil,” its time to confront the situation for what it is: desperate. Of course, learning your limits has value.
On the other hand, and this is presented with caution, working through the night can be both productive and inspirational. I’ve produced my best work in the middle of the night. The difference is: know when to say when. If you start to feel sketchy, if you are making mistakes, if you stare at the screen too long without moving: go to bed.
December 10, 2009 at 7:50 am