in reply to Time management, multitasking, and programming, oh my!

The problem with multitasking between several different jobs is that it takes some time to get up to speed in whatever job you're currently working on, and that time is wasted time. It's much more efficient to do whichever job has highest priority and then move to the next. However, a lot of programmers (myself included) have trouble prioritizing based on urgency, and tend to do the most interesting job first while neglecting everything else. This isn't good either, since getting started on the painful jobs is going to be difficult.

What I would suggest is this. If the jobs are small, do them one at a time after prioritizing based on urgency, not how fun they're going to be. If you have to break the boredom, take 15-30 minute breaks and do something else that doesn't require a whole lot of thought. If you hit a total obstacle, move to the next most important job and sleep on it. The answer willl usually be there in the morning.

If on the other hand the jobs are large, and you have to show some sort of progress in each one to the client, make yourself a schedule based on priority and how much programming time each job is going to take. Stick to it. The schedule should never have you going for more than a few days without working on a particular job, and never have you working on more than a couple jobs per day. Keep a log for each job and write down where you are in the job and what issues you're currently addressing, so you can pick up where you left off with minimum downtime. Comment your code as much as you possible without significantly affecting your programming time.

Above all, put in x number of hours per day whether you want to or not. Getting started is the hardest thing to do.

  • Comment on Re: Time management, multitasking, and programming, oh my!