Obsessive Efficiency Disorder

Profile image of Mattias Geniar

Mattias Geniar, March 31, 2015

Follow me on Twitter as @mattiasgeniar

Having had a few talks with colleagues about this, it's clear I'm not alone. In fact, many of us who are working at a high pace and functioning at a high level seem to experience this.

We have the need to constantly find the most efficient way to get a task done. No matter how small or big the task is.

Small Efficient Routines

I notice this behaviour mostly in my common routines. The little things you repeat on a daily basis.

For instance, it takes around 1 minute for my coffee to be ready at the office. The machine also needs a 10-15 second warm-up, when it hasn’t been powered on yet for the day.

So that leaves me with 2 options: I either wait for my coffee to be ready and continue my day, or I try to be more efficient. I choose the latter. Those 60 seconds during which my coffee is carefully prepared, I can setup my laptop, start unloading the dishwasher, …


I just saved around 60 seconds.

Looks ridiculous, right?

Optimise Everything

The coffee example is perhaps an obvious one. If there are tasks in my day that consume more than 15 seconds, I’ll probably do something else in the meanwhile. The delays are little enough that they don’t warrant a multi-hour project for automating it entirely, so I must deal with the waiting.

For instance, this is my typical “git commit && git push” push routine. Committing code, pushing it upstream and starting a Pull Request.


Normally, one would git commit, wait for the pre-commit hook to validate everything, then start browsing the git repo and start the PR. As soon as the git commit is typed, I start working on the PR text.

There’s no reason it should have to wait until my pre-commit hook is ready. Especially since I’m using a puppet pre-commit hook, that validates a lot, this is too time-consuming to wait on.

Single-tasking vs. Multitasking

I look for those kind of multitasking routines everywhere. But I don’t like to consider it multitasking. It’s more like sequentially single-tasking, you leave a task alone and start another one that takes just enough time to fill the gap.

There is a rule, though. The secondary task needs to be finished during that time period. I need to be able to put it out of my head, as soon as it’s finished. That way, I don’t get distracted with too many tasks actually running at the same time.

This is micro-optimisation. All day long.

ADHD vs. Concentration

You may think of this as some form of ADHD. Well, it isn’t.

I deliberately chose to start a new, small, task during my waits. Tasks that I know I can finish during that timeframe. I’m not distracted, just highly focussed on getting it done. It even acts like a personal deadline, I know how much time task A will keep me waiting, so whichever task B I start in the meantime needs to be finished before task A requires my attention again.

You’re Nuts

I don’t think so. In fact, I believe many people in IT are doing this exact same thing.

It comes from a necessity. Most of us have extremely busy jobs and schedules. We need ways to optimise the time we spend every day, to make the most of out of it.

If you’ve already improved or automated the big inefficient tasks in life, then what’s left besides a lot of small tasks in which to find more efficient methods?

Distractions Are Killers

This kind of jumping from task to task does take its toll. If you’re distracted halfway a routine, it can end up taking more time than doing each task sequentially. A coworker asking a question, a push notification on your phone, an e-mail popup on the desktop, … a lot of things can interfere with your flow.

I find that if I’m in my zone and am actively blocking outside incentives, this constant switching between small tasks to fill the waiting-gaps is helping me get a lot more done in a day. It takes more energy and more focus, but that’s exactly the kind of tradeoff I’m looking to make.

All in all, it’s a bit like OCD. Just more efficient.1

1 A joke, obviously.

Want to subscribe to the cron.weekly newsletter?

I write a weekly-ish newsletter on Linux, open source & webdevelopment called cron.weekly.

It features the latest news, guides & tutorials and new open source projects. You can sign up via email below.

No spam. Just some good, practical Linux & open source content.