Monday 31 March 2008

Why does productivity software still ask us to save our own work?

In a technologically advanced world, there isn't exactly a paucity of disk space. Disk is cheap.

True, this was not always the case. Fifty years ago, hard drive storage cost around US$10,000.00 per MB. That's right, ten thousand US dollars per megabyte. (That was a lot of money in those days, what with the US kicking the crap out of the Nazis not too long before that... those war reparations went a long way, not to mention all the clever boffin Germans that the Yanks poached.) Compare that to today's prices, where you can get a 1-terabyte external hard drive for US$229. That's 22 US cents per gigabyte!

We can see that hardware is making advances in leaps and bounds. Not a day goes by that some gadget is released that's smaller, cooler, faster, and pretty much better than anything that's gone before. The changing technology is causing societal changes, in the individual and the collective... not a decade ago, disk space still cost around US$20 per gigabyte. There's no way that the majority of people could have kept more than a couple of small games and a few office documents on one of those old drives; it's just too prohibitively expensive for the average consumer.

But what do we see now? Schoolkids, students, even office ladies... pat them down and you can find between 1 gigabyte and 80 gigabytes of memory on their person at any given time. What do they use all that space for? Not just spreadsheets, baby. Movies and entire TV series. Dozens of albums worth of music.

Frankly, I see no reason to be stingy with disk space. Even the smallest cheapest laptop harddrive has a capacity 60GB or 80GB. You can store a lot of documents on that much hard drive space, even if you leave space for your operating system, a couple of TV series seasons, and your mp3s.

That's why I get irritated when a text editor in which I am editing a 5-kilobyte file asks me "Would you like to save this document?".

If I didn't want that information around for a little while, I would not have taken the time to type or paste it in a text editor, now would I? Is it worth breaking my concentration, interrupting my train of thought, for 5 kilobytes?

I say, NO. I say that that entire mode of thinking is outdated. If I close a window and my work is unsaved, then save it for me, there's a good program. If I haven't given the file a name, then by all means use the first 5 words of my document. If the same document hasn't been accessed by me or any other programs for a week, then compress and store it somewhere. Stop asking me stupid questions, I'm trying to think here. The answer should be obvious. I'm having enough trouble concentrating as it is; I don't need additional distractions from the bloody software I'm using too. We are too set in our ways; we unquestioningly accept this as the norm. The entire "conserve the scarce disk space resource" model of thinking and programming, is an anachronism.

The scarce resource in our world of today is attention. Concentration. We live in a world of distractions, with every waking moment full of things that want our attention.

The entire point of any productivity software is to make you more productive. Why, then, do I often feel like I spend more time battling with the software than concentrating on my work? I'm sure that's not the way it's supposed to be.

I want to propose a few rules for interface design:
  1. If you notice the interface, then the interface has failed in its purpose.
  2. Software should be designed to make the best possible use of these scarce resources:
    1. The Zeroth resource is Concentration.
    2. The First resource is Time.
    3. The Second resource is Memory Usage
    4. The Third resource is Hard Drive usage.
  3. Software should simplify the life of the User.
  4. Software should simplify the life of the System Administrator.
Please feel free to leave comments with rule additions. I'll write the rules up sometime soon.

5 comments:

  1. The only issue I have with automatic saving is that it might overwrite something I want to keep with garbage.

    The simple solution to this is to put everything in a version control system of some kind and every save is an autocommit. Thus, you trivially get all the old versions kept safe for the price of a bit of disk space and can easily say "show me what this doc was like last Tuesday".

    Unfortunately, this requires some broad-reaching changes to pretty much everything, so I don't see it happening any time soon.

    ReplyDelete
  2. I think I had some sort of versioning in mind, but this was written at 5AM or something, so I wasn't exactly at my most eloquent.

    You're right about it not happening anytime soon, but that's why we need to start now.

    It took some pretty broad-reaching changes to abolish slavery, to get rid of taxation without representation, apartheid, etc. (We're still working on getting rid of celebrities, but they spawn faster than Doom 3 monsters on Nightmare difficulty).

    Tiny changes, over time, change the world.

    ReplyDelete
  3. This is a feature of One Laptop Per Child's Sugar desktop environment. Instead of a filesystem, the UI has a Journal. (Of course, the filesystem still exists beneath that.)

    Software ported to use the journal, autosaves on quit or alt-tab to something else. The versioning is elementry at the moment but full revision control-like versioning is planned.

    In the journal, you can see what you worked on when, and "resume" any entry. Resuming an older entry "loads" that older version.

    See more at OLPC HIG.

    ReplyDelete
  4. That's great morgs, thanks for the info!

    This kind of abstraction is a huge step in the right direction, IMO.

    ReplyDelete
  5. The next issue is to then find your file later.

    The search-based world says just search and ye shall find. But for us old-timers (or anyone who use a hierarchical file system) careful saving is the only way to keep things sane. Nobody wants to dive into a swamped directory full of unrelated junk unless you have to.

    ReplyDelete