It wasn’t all that long ago that I discovered that I had no time to get anything done, but was always busy running this way or that to get everything accomplished. It took a bit of Googling, but I eventually found this system that seemed to work for me:
1. Prioritize – Take all of your tasks and put a prioritization next to them. I labelled them from 1 to 5 with 1 being the highest priority and 5 being the lowest. Although this seems conceptually simple it really wasn’t once you consider all of the politics that surrounds a developer’s day, all of the outside influences and those dreaded obligations which constantly pop up. Once you get a good list, move on to the second item.
2. Toleration – Give yourself permission to stop pretending to be superman and trying to solve all of the world’s problems. Not to say that a single person cannot make a difference, but I realized that maybe I could not do everything I wanted in the timeline I wanted to. Once I realized this and gave myself permission to move the lower priority items to a “wish list” life became simpler. Personally I took everything that was a priority 4 or 5 and moved it to a wish list that I revisit on a weekly basis to check if priorities have changed.
3. Think like Lego, in blocks of time – So, it’s not rocket science, but it’s often forgotten by most. We are best when we focus on a single task at a time, for a period long enough for us to accomplish something. So, with that said I took my task list from above and set aside a reasonable amount of time to accomplish everything, looking at what needed to happen when. When you do this you have to keep in mind that you want to leave enough time for each task independently of everything else, and also consider when you are your best to do certain tasks. For instance I’m at my best to read about new technologies early in the morning because no one else is in the office and the chances of me getting disrupted mid-sentence is kind of slim, so for the first hour and a half each morning it’s set aside for reading, followed by half an hour for a blog entry on one of my blogs, and the rest of the day goes from there...
4. Systematize – At this stage you know when you’re going to do everything; you just have to look at how you’re going to keep your time goals. Well, the best advice I could find on this said that you should organize the hell out of your life. For instance make sure your desk is organized so that if you need a stapler you could reach for it without even looking where it is, because it’s always going to be in the same place. There is no secret that a cluttered desk is the first indication of a cluttered life, so why can’t it work the other way?
5. The Art of Doing Nothing – Ok, not quite but there is something about making sure you schedule your mental breaks that will greatly increase your productivity. As a rule of thumb they suggest that you schedule a break every 90 minutes, but I find that being a developer this number is slightly flawed. I typically schedule enough to have a break every hour, but I take them when I’m at a good resting place. This works nicely if you consider that for every hour of work, 50 minutes of development gets done and a ten minute break is taken at some point.
And there you have it. That’s how I went from working on tons of different things, to working on a few short things and actually accomplishing considerably more than before...