Thursday, November 12, 2009

Why Design Cannot Ignore Performance...

I have been using OmniFocus for a full year now. I track hundreds of items in it and use it daily (multiple times per day) to get things done. It has become an essential part of my life.

Lately I've become fed up with OmniFocus. Well, actually I've been fed up with OmniFocus for several months. But I've kept using it because the cost of switching is so high. No more. I bit the bullet and committed several hours recently to replicating all of my action items into Things.

What was so egregious about OmniFocus?

It comes down to one thing really - how long it takes to record a new 'to-do' (or task) for myself.

Consider this: From the moment you hit 'new task', it may take you 10 seconds to record a new task like 'pick up the dry cleaning'. In a lot of situations where you're in conversation or doing some other activity, taking a 10 second break is acceptable. Your spouse will wait for you. (Your boss might not, but your spouse will.)

But suppose it took a full minute to launch the application and get a usable entry screen? Now we're talking about a break long enough for the other person to engage in their own time-filling activity. It's completely disruptive.

To be fair, it doesn't take OmniFocus on the iPhone a minute to launch. Though it can take 10 or more seconds. It likes to 'optimize' the database before giving me any control. Then once I get control, I don't actually have control because it starts syncing with a remote copy of the database and the UI is unresponsive. This is where it goes way beyond the 10 seconds. Why must syncing take all available CPU so that the UI is unresponsive until it is done? And why must it 'optimize' the database before I get a usable entry screen? Regardless of why, the end result is way too many seconds until I can make a new entry.

As it turns out all of these extra seconds are not just 'less seconds' out of my day. Rather, I noticed myself actually skipping the recording of a new task thinking, "I don't have time to wait right now. I'll do it later." This of course completely defeats the purpose of the list - to get stuff out of your head!

About syncing...

I use OmniFocus on the Mac together with OmniFocus on the iPhone. The iPhone version is the more important user experience because that is always with me. But I use the Mac version to do more comprehensive reviews where lots of screen real estate comes in handy. So I have to sync the two.

OmniFocus syncing is severely lacking. It routinely takes a full minute or more to sync even when I've only changed a couple of action items. The algorithm appears to transfer a lot more data than necessary. And I've had more than one occasion to have OmniFocus tell me that it couldn't resolve something and that I would have to choose to start fresh from either the local database or the database on the server. (At which point I'm supposed to remember what I edited since the last sync so that I can make this choice wisely and minimize re-entry. This also kind of defeats the purpose of making a to-do list in the first place).

As a programmer I know that syncing does present interesting challenges. But this is a problem that has been solved quite well by many people. The folks over at OmniFocus need to invest in an overhaul of their sync algorithm or this is going to continue to frustrate users.
I could share many examples of great syncing experiences I have with other products that just work. But the list is pretty long, so back to OmniFocus.

I thought for a while that part of the problem might have been the fact that I was syncing OmniFocus through MobileMe. But after trying the local sync option for a while and experiencing the same problems, I can no longer blame MobileMe.

The OmniFocus sync solution may be 'good enough'. But because of the interplay with launching the app and getting a responsive interface, 'good enough' isn't.

Now that I've switched to Things, I never have to wait more than a few seconds for a sync to finish. The folks at Cultured Code got this one right.

I'll cover more differences between OmniFocus and Things in a future post - after I've had a year to live on Things. For now OmniFocus lost for failing at the most basic task - quick entry. They designed a good quick entry screen. They just didn't start measuring quickness from the moment the user taps on the application icon to launch it.


  1. Joel - It seems like this comparison is not at all fair, since the FAQ on Things website indicates that syncing is only possible (other than creating an ad hoc network) with all devices on the same wifi network. OmniFocus lets me sync wherever I have connectivity. My iMac stays synced at home, my MacBook at work and my iPhone wherever I happened to be, even without wifi through 3G.

    While Things does have a very nice interface it does not appear as powerful as OF with respect to perspectives, notes and contexts (no nested projects or contexts). The one great thing it has that is missing in OF is tags. If OF had tags and multiple contexts, I believe it would be nearly perfect. My thoughts anyway.

    I just finished an eight-part series on customizing OF that might interest you at

    I have no syncing problems but I am judicious

  2. Do I understand you correctly that you shutdown/startup OF several times a day? If true, I'd argue you're process is broken, not OF. For example, most of my tasks originate from Mail and Firefox. Because of this, using triggers in both apps to clip entries into the Quick Entry box is a must...but would be DOA if OF wasn't running.

  3. I mostly don't use iPhone OF as a capture tool. Something like reqall or jott is much easier on an iphone or even my notepad. While OF iphone can capture, I find it is a tool better used for just showing my lists when I am away from my office/computer (I think it does this very well)..

    I can capture into Mac OF if I want to (I leave it up all day), but sometimes paper into my physical inbox is just faster and easier. I usually process that once or twice a day anyway...

    The place where OF shines for me is the weekly review. The review perspective and the process it supports is quick and easy and stays out of the way.