Any job requires a worker to perform various tasks daily. In some cases there is just one task that never changes. For example, a manufacturing line where workers are forced to do the same operation over and over again.

Most IT jobs however are not that simple, there is always several tasks in line, always the need to prioritize, always distractions of the office environment: multiple email accounts, several IM clients, colleagues arguing loudly in the hallway and THE WORST OF ALL: Internet at your fingertips!

When I started my programmer career my job resembled a manufacturing job closer than an office job: I had just one task, there were almost no deadlines, since I worked for a government organization, no pressure, NO INTERNET CONNECTION  -  Internet was blocked and I had to use books and MSDN documentation from a set of CDs.

Now things changed. I’m working for a successful private company on a “Senior Developer” position, where 30% or so of my time (according to Rescue Time) or less is actual programming (duh) and the rest is project management: scheduling, feedback, meetings, phone conversations, emails, IMs, requirements, etc. There were days when I work with no breaks and still don’t get anything done, which is odd  -  how can that be?

Procrastination!

Procrastination is exacly what the corresponding Wiki article says: putting off important stuff and doing small quick things because important stuff is HARD! Really?! Why? Because programmer folk are lazy turds!

This blog post I’m writing right now, for example, is one of such “hard” tasks, because it requires both imagination and deep concentration -  a “dangerous” mix. Majority of “hard” tasks that I perform daily only require one of these things, mostly deep concentration. And this is a problem, because in 2014 deep concentration is a rare resource. Internet taught me how to quickly skim though text, jumping between pages by clicking links  -  searching for interesting stuff: political commentary, disaster coverage, funny pictures and videos, celebrity scandals, new tech gadgets, IT rumors, etc.

Ask yourself:

  • Are these things making you better?
  • Do you achieve something worthy?
  • Do you move forward?

The answer is NO!

On top of that there is always a slew of emails from colleagues that take less than a minute each to reply, why not do that right now? I can work on that beast of a task later… Then comes lunch time and nothing important was done.

Procrastination cycle

GTD: Getting Things Done

When I was just a programmer I didn’t bother about GTD, now I have to.

There are many ways to improve your productivity, but I found the following working for me the best:

  1. No multi-tasking. I try to focus on one thing at a time whenever possible. To make it easier I disable notifications, move my email client and IM clients windows out of my sight. Recently I’ve installed a pesky Focusbar app on my Mac  -  I love it so far!
  2. Complete something important first thing in the morning. This sets my mood for the first part of the day: even if I couldn’t complete anything else before lunch — I already did something worthy, so I don’t feel bad while having lunch.
  3. Answer emails twice a day. Email is a single most distracting thing I fight every day: I get notified whenever somebody updates anything in the projects I’m involved in, I receive automated email notifications about problems with various deployed applications, etc. For that reason I keep my email client closed at all times, except for at 11 AM and at 3 PM  -  sorry guys :) My IM clients are always open, so in case of emergency somebody would tell me: “Alex, did you notice that our production is down since morning?” What would happen if you don’t reply your boss’s email within a minute? Would you get fired or punished? Think about it. At the end of the day you’re being productive, which is what matters.
  4. Work from a coffee shop. Removing myself from the office environment to where I’m “alone” helps me a lot. And I use “alone” in a sense that no one I know is there with me, so the only thing I can do is work. Ambient noise doesn’t matter as long as it doesn’t register in my consciousness. Working from home doesn’t help me much, because home has a whole set of other distractions: my wife, fridge, TV, powerful gaming computer. Even if I lock myself in a dedicated office at home  -  this doesn’t help: the chair is too comfortable, the view out of the window is divine…
  5. Don’t use 3 displays. I can fit ALL of my windows on 3 displays: IM clients, email client, browser, documentation, programming IDE, terminal, etc. With this setup my focus becomes blurry, I can’t help myself but notice the incoming emails, etc. See rule #1: “No multi-tasking”! Why do I need 3 displays if I don’t multi-task?
  6. Work on a daunting task every day. The longer the periods are between working on parts of a daunting task the harder it is get back on track and be productive. The rule of thumb is to work on it EVERY DAY, no matter how small the accomplishment is each given day. Renaming a few variables or methods is worth it, because it keeps my memory about the problem fresh. If an urgent issue comes around it is tempting and justifiable to switch to it and work on this issue full time for a few days, completely forgetting about that complex problem I was trying to solve earlier. Urgent issues are never a good excuse  -  I can always dedicate 15 minutes to that daunting task, no matter the workload.
  7. Decide today about the shortlist of tasks for tomorrow. It is awesome to start a work day with the exact prioritized list of things to do. I don’t have to force myself to think too hard about priorities in the morning, I know that I can take the first item from the list and start working on it with my hands while my brain wakes up. It probably sounds silly, but I’m dead serious: I start my mornings with less creative tasks to get into a working mood.
  8. Use RescueTime application. I learned a lot about my productivity patterns. RescueTime is an asshole-program: it watches me 24/7, records the stats about what I’m doing every second and it tells me what I shouldn’t be doing. I love it!

These are just a few things I use to fight my weakness and to be more productive. I have to be productive in order to be satisfied as a part of the society.

I hope this blog post explains some of my weirdness and I hope it would help a few people identify their own weak spots.

What tricks do YOU use to organize yourself?