Sunday, April 29, 2007

How To Crunch


Crunch time here at AI. We're launching many, many websites at the same time. (Why the hell am I writing this? I should be debugging something...).

Let me be clear: I don't like crunch times, and I think the first step is prevention: try not to have to much stuff happen at the same time, have reasonable deadlines, properly staffed projects etc. However the best laid plans of mice and men oft gang aglay, and sometimes crunches are inevitable.

There is an art to surviving crunch times. If one isn't careful one can easily burn out. Burn out is hard to recover from, and can lead to various problems down the road, including health and psychological issues, as well as simply not being very productive afterwards.

So how to survive a crunch?

Pace Yourself

Its a marathon, not a sprint. Ignoring the problem up until the last minute and then trying to work around the clock is a recipe for disaster. Increase the hours gradually weeks ahead of the deadline, so you can get enough through the pipe that the end isn't totally out of control. Figure out the number of hours a day you can sustain. For me I know I can do about 12 hour days for weeks as long as I get enough sleep. However, if I go over that number, or if I can't get 8 hours of sleep, I'll start to spiral down. And make mistakes.

Take Care of Yourself

Get enough sleep. Drink liquids. Eat well. Do all the things that you're already supposed to do to take care of your body. You need it to function in order to think. There is working hard, and then there is just messing yourself up. If you work 24 hours in a row then you will not be getting anything done the next day. Make sure you're not just stealing time from yourself.

Measure Your Progress

Make sure you have a way to track what you're accomplishing, and to be able to track what needs to be done. This means that someone needs to pause momentarily to maintain a list of things to do: checking off items that have been accomplished, adding items that are outstanding and so forth. This is essential for two reasons - first, it allows everyone to get a real sense of how much work is left to do. Without that there's usually a lot of unfocussed anxiety surrounding the project. The second reason is it provides a sense of accomplishment when people see how much work they've already done. This is an important part of morale in the project.

Clear Your Mind

When you go home at night you need to get the project out of your head. This allows you to rest properly and recuperate. Find something very antithetical to the nature of the project - something that exercises some other part of your brain. For computer-bound information workers, this could be something really physical, or something otherwise low tech. I like to cook and play guitar. When I don't do this, I inevitable wind up having dreams about whatever I'm working on. I hate that.

Reward Yourself

Ah, so much psychology. Give yourself little rewards as you go through the crunch period, for being a good little worker bee. "If I work until 9 pm again then I get to have a beer when I get home." Um, look at the second point, Take Care of Yourself again, though.

Hard Stuff When You're Fresh, Easy Stuff When You're Burnt

During the course of the crunch time, you'll have moments when you're pretty awake and sharp and moments when you're not so awake and sharp. You need to be doing the right kind of work in both areas. The rule here is easy: do the hard stuff when you're sharp, and the easy stuff when you're dopey. This is the best way to avoid making bad mistakes and wrecking stuff when you're too far gone for anything more complicated than operating a dessert spoon.

Thats it for now - please feel free to add your own tips for surviving crunch times. Remember - if you're crunching all the time then something is seriously wrong (bad management, not enough resources etc), but occasional crunches happen and can be handled well if you're careful.

Friday, April 6, 2007

Good Enough For Me

I use a Mac. Lots of the people in the AI office use PCs. Ho hum.

I think the lack of excitement these days over operating systems is kind of interesting in itself. Various major Linux releases pass in the night virtually unnoticed. The reaction to Windows Vista has been lukewarm at best, and I find myself strangely disengaged from the prospect of the upcoming OS X Leopard release.

I believe this is because we've passed the "good enough" line with operating systems. Unlike a few years ago, they now work: they don't crash, they don't seriously impede our workflow and they generally get out of our way. Like cars, doorknobs and can openers - the problem has been substantially addressed. Oh sure, there's always room for improvement, but the burning need is gone. The sense of "this could be so much better!" has been replaced with incremental improvements. Yawn.

Now on the other hand, take web apps. Thats exciting. Web apps are cutting edge, offer exciting new possibilities, and enable us to perform at a level of productivity we've only dreamed about before. There's only two problems with them:

1. They don't work.
2. We don't know how to use them.

Or in other words, they are not "good enough".

Clayton Christensen and and Michael Raynor, in The Innovator's Solution, refer to technology that is not good enough as having a "performance gap", and technology that has passed the "good enough" line as having a "performance surplus". They assert that the rules for properly managing that tech are significantly different depending on which side of the line you're standing on. For example, tech with a performance gap favors vertical integration, with one vendor offering a complete, inter-operable or integrated solution, whereas performance surplus tech favors best-of-breed players inter-operating independently.

I'd like to add that the "not good enough" tech is where the fun is. That's where the opportunity for innovation truly lies.

For example, in web apps - we want to have our cake and eat it too. We want apps that are every bit as good a desktop apps. We want them to work whether or not we have network access. However, we also want all the benefits of Metcalfe's Law, of the natural collaborative nature of online apps, and of the relative platform neutrality of the user interface. And a pony.

Until we deliver that, and probably a bunch of other stuff that we can't actually think of right now, web apps will be "not good enough". They will have a performance gap. The day that they pass that mark, the world will be a more productive place, and there will be a lot less people talking about the Internet.