The Power of Focused Applications
Most of us engineers have puzzled over Microsoft Word, specifically: how can a word processor be so mind-boggling huge and complex? It's like they took every possible feature that could be somewhat related to words and stuffed it into the app. And yet most users I know, those just writing simple documents, loathe Word. How can this be?
The answer, of course, is complexity. Microsoft, in their obsession with features, tried to make Word do everything a user could possibly want. In the process it grew into an unwieldy beast that's hard to use for simple tasks.
Lately I've been paying attention to a new breed of applications whose focus is, simply, focus. They take one task and make it dead simple. The application is small, lean, and stupidly easy to use. Then they stop.
Boy, I sure hope this is a trend.
Exhibit A: Ta-Da List
Any of the web-based applications from 37 Signals would make a good model for this discussion. Let's take Ta-Da List. Its focus: to-do lists. Not just lists for you, but also lists you can share. Go watch the video. Ever see a web app that's easier or faster to use? Didn't think so.
So what's the focus here? It's twofold:
- Easy, low-overhead management of simple lists. Usability is not often a strong suit of web applications, but with some AJAX magic 37 Signals pulls it off beautifully.
- Sharing with others. This is the power of the Internet, and the unique value that Ta-Da List can offer as a web-based app. For each list you can share it with specific people or make it completely public.
Speaking of Sharing...
If you use focused applications, you'll probably use many of them in your day-to-day work. A frequent downside of using multiple applications is interoperability. Since the dawn of computing we've fought format wars -- PostScript, Word .doc, RTF, PDF... just how are we supposed to share a document again? There's also the related issue of vendor lock-in: if you keep all your text in .doc files, can you ever really switch away from Word? Most applications which "read .doc files" don't do it exactly right.
The latest hot data format used in productivity-focused, simple applications is... just plain text files.
In Ta-Da List you can email yourself a list. It comes as plain text, each entry bulleted using a simple "*" character. One might think, "How primitive. Have we really come this far, just to go back to the dark ages of plain, unstyled text?" That brings me to my next exhibit:
Exhibit B: Markdown
Nothing beats just plain text for writing or sharing. It's fast, easy, and comes with no weird gotchas. It leaves something to be desired for presentation, however. Enter Markdown, a tool which translates an easy-to-write text format into HTML. Here's a sample of this article in Markdown format:
Exhibit A: Ta-Da List --------------------- Any of the web-based applications from [37 Signals] would make a good model for this discussion. Let's take [Ta-Da List]. Its focus: to-do lists. [...] : http://www.37signals.com/ : http://www.tadalist.com/ So what's the focus here? It's twofold: * Easy, low-overhead management of simple lists. [...] * Sharing with others. This is _the power_ of the Internet, [...]
The text is easy to read and write, and stands by itself as a good style for writing documents. Then it translates into clean HTML exactly as you'd expect. Markdown integrates into Movable Type (just drop it in the "plugins" folder) and tools like TextMate and Ruby on Rails have built-in Markdown support.
Compare this to authoring web content in a do-everything tool like GoLive or Dreamweaver. I tried GoLive for a while, and it was a pig of an application. Features didn't work as expected (or at all in some cases), and for 95% of web tasks it was not an efficient solution for the task at hand.
These are just a couple examples from a huge pile I could have chosen. With these and other focused applications I use regularly, I see a couple common themes:
- Sacrifice features for focus (obviously).
- Understand that the user will use their data elsewhere, so provide easy import/export in a no-gotchas format like plain text.
- Also provide import/export in an easy-to-automate format like RSS. This lets power users chain several simple apps together with amazing results. (In Markdown's case, text is the automation format.)
- The last two points sum to: integrate into the user's workflow. Don't try to replace the user's workflow.
- Gotta be cheap. A user might justify paying $500 for Photoshop, but with simple apps, cheap is essential. I'll gladly pay $10-$30 for a simple application that does just what I want, and does it just right. Both of the examples here are free.
Now that the Internet has greatly lowered distribution barriers for small software vendors, I hope to see this trend continue. This isn't just a trend for the small-time vendors, either: contrast Google's home page to Yahoo!'s. In 1999 who would have thought Yahoo! could be bested by some new search engine with one image on their home page?
Users are rebelling against do-everything applications. Now it's "just do what I want" applications. It's like taking the lessons of Unix and applying them to a new generation of apps. I, for one, welcome them.