Tuesday, April 25, 2006

How I Concentrate

Jeremy asks if people can concentrate. I find this an interesting question and something I've been thinking quite a bit about lately. My job involves a lot of interruptions, usually related to urgent issues (helping someone keep a system online) or URGENT issues (getting a system back online). Pretty much everything falls into two buckets: "now" and "soon." I'm always interested in staying productive.

This works if tasks are short-lived, fire-and-forget, such as quickly fixing a script or responding to an email. More often, though, things aren't so quickly resolved; that script may need to be tested thoroughly or that quick response turns into a long, drawn-out thread. Add onto this long term projects which need to be done, but don't qualify as an urgent task, and things get hairy very quickly.

So, I concentrate by accepting the interrupts and minimizing their impact. I keep a todo file of "today," "this week," and "sooner or later." Every day I check the "today" list and possibly migrate things back and forth in the list. I try to get through the "today" list, well, today, but usually I don't. That's okay -- better to aim high and miss than always shoot at the easy targets :)

Whenever an interrupt occurs and I'm doing something else, it goes on the list. Like a stack, push, pop, push push push, pop push pop pop pop. This more or less works, with the goal being if something isn't so urgent as to need immediate attention then it can wait until my next planned context switch, at which time I reschedule what to do next (gee, sounds like a computer... I guess I'm a bit digital sometimes).

Interrupts aside, here are some other things I do to concentrate:
  • Close my email client - or at least put it on another desktop
  • Ditto with instant messenging
  • Put headphones on and play familiar music (for me, a good beat helps)
  • Shut my office door
  • Work a half or full day from home
  • Schedule fake all-day meetings to keep other meetings from popping up
  • Read the excellent Time Management for System Administrators, though I'm not a sysadmin
  • Tell people to get out of your office so you can get work done (this seems rude at first, but when you then get something done they wanted done, they quickly start being happy when you tell them to buzz off!)
  • Only read RSS feeds at home, not at work

The key is to minimize the external distractions as much as possible, drown out your surroundings (I'm disturbed how much code I've written to Lords of Acid over the years... ahem), and to develop good work habits that prevent, say, that quick check of email (which, suddenly, you see an awesome thread on some inane detail not actually job-related that you simply must respond to, oh, and there's an IM about some interesting gossip, oh, and the people outside your office are commenting on the whiteboard project you're working on, oh, and ...).

Sometimes, though, you have to multitask. I'll blog next how I deal with things where I simply have to stop and find something else to do (such as waiting on a long build). In a way, it's the opposite of concentrating; intentionally losing focus but organizing your approach such that the cost is minimal and getting back onto the task at hand is easy.