Monday, September 26, 2011

Deadlines, computer scientists, and showers

Last week I had a conference deadline. The last few days were busy trying to tighten or strengthen some results and tidy up some proofs. As always, there was a little bit too much to do for the time imparted. I get caught every time. Why do computer scientists always have to wait until the last minute? It seems almost impossible to avoid: a draft is prepared well ahead of time, then, when the deadline approaches, proofreading opens up new possibilities, and then there is a mad rush to explore those possibilities before the deadline.

My students are already learning the pattern, with assignments routinely submitted in the last few minutes before the deadline. I try to scold them, but to no effect: there is a culture of doing things in a rush.

The office that checks grant proposals says that computer scientists are among the worst offenders, in terms of giving them sudden spikes of workload right before a deadline. Other disciplines are not as bad.
I have often had the chance to work with mathematicians, and have seen them watch, bemused, as our work style shifts to crisis mode when a deadline comes close. What really perplexes them is that it is not an accidental occurrence but almost the norm. Mathematicians do not work in that way.
Some years ago I prepared an application for an award and discussed it with a physicist friend. He said in passing: "When my application was supposed to be about ready, as the deadline was getting close, two weeks before the due date ..." - I thought: two weeks? That's a really long amount of time in my field!
How come those last-day marathons do not happen to scientists in other fields?

One might ask: what is wrong with those projects completed at the last minute? Well, even if, with experience, one learns to (usually) submit results that are correct and readable, there are still a lot of negatives to this way of working. It disrupts the usual routine, and other things fall by the wayside: friends and family are temporarily ignored, lectures are poorly prepared, sleep and exercise take a setback, emails stay unattended, etc. It's stressful and it surely cannot be good for us.

Sometimes, if I happen to pass by the department late at night, I peek into one of the computer labs. I see young men (and women, but, really, mostly men), their faces unshaven, their unwashed bodies covered with torn jeans and stained T-shirts, either with their eyes fixated on the screen, or talking animatedly about arcane programming topics. I disapprove of the way in which they let their interest in programming take precedence over things that, in most of society, are considered basic requirements of a normal social life. But at the same time, I cannot say that I do not understand them.


  1. Procrastination is tightly linked with work avoidance (as, more directly, are skipping showers and growing beards). I've come to believe that those of us averse towards work make good computer scientists. Which isn't to say we aren't hard workers. We're just more interested in putting the effort in to optimize what we do (and trimming a beard monthly is far less work then staving off stubble daily).

    But that's what computers are about. Can we automate this? Does this code really need to spend so much time searching through lists? Computational Complexity is core to the field, and in a sense just seeks to delineate when it's worth the effort to find a faster algorithm, and when you should quit now.

    Same thing in writing large systems. If you don't put lots of effort into figuring out what you can get away without building, you never finish.

    I picked up regexes originally not because it was good for a computer scientist to know, but because I had a job in highschool involving simple data cleanup, and I knew there had to be a better way than editing huge files by hand.

  2. Paul, there is also the fact that humans tend to heavily discount future costs. They give priority to their immediate gratification (as was mentioned at some talk I attended just today), and are notoriously bad at taking into account properly future risks due to present behavior. That is a much less satisfactory explanation of procrastination!

    But I must say that you are at least offering an explanation of why computer scientists behave differently from other scientists. I find it hard to believe, but I don't have a counter-argument coming to mind immediately, and it does propose a conceivable answer to that puzzle!


Note: Only a member of this blog may post a comment.