The Tyranny of CSS And Ajax, A Timex Watch And A Barrel Full of Rocks
Thursday, January 24th, 2008A beep; a pause. Another beep; another pause. Third beep; third pause. Eleven beeps in quick succession. Listening to the kid in the row in front of me reset his Timex following our flight one time-zone westward helped me understand why building web apps has been so so little fun recently.
Two buttons provide enough of an input mechanism to set a $10 drug-store watch. Hold down one button, wait for the LCD numerals to start flashing (or, fancy-schmancy, listen for a beep) and plug away at the other button until you’ve cycled forward to the right value. Hold down that first button down if you want a different column of numbers.
By any measure, that’s a crummy UI. Thing is, it’s good enough. It’s good enough for the bottom-of-the-line digital. Moving up-market the UI gets even worse: my REI bought analog watch uses a single rotating stem to set six hands on spread over 4 dials. That’s an arguably worse UI still. But again, it’s good enough.
Sometime in the recent past we traded in “good enough” web UIs for UIs measured against desktop applications. Google is widely credited with ushering in this era. They showed us that it was, indeed, possible to build beautifully interactive web applications using JavaScript to manipulate the DOM. While we were at it, we traded in the limitations of tables and simple HTML for the granularity and rigor of CSS.
Working with CSS and the DOM is aggravating. Plenty of reasons for that [1], most defendable is probably the inconsistencies between browsers. Naturally you can overcome most of these things by exerting effort. That’s effort spent working on something that is, in all likelihood, ancillary to the purpose of your application.
I suggest we take back “good enough” and justify it by applying Barrel of Rocks metaphor of market segmentation.
Sink uses a barrel to represent the total market for installed software. The barrel gets filled with stones whose size represents the size of the market-opportunity. Operating systems and office-applications are boulders; there’s only room for a few of each. Here, a glance, the barrel is full. But, of course, there’s lots of space between the boulders. This space is can be filled with rocks, and the space between rock with pebbles and so on.
With the barrel representing the total market for web applications everything becomes clear: Google, whose applications set the broad market standard for installed-application-like UIs, is a boulder. They want people to switch from installed software to their broad market web applications, so they need these fine interfaces and their market opportunity justifies the time/cost/complexity.
Are you building a boulder, a rock or a pebble? You’re not very likely to be directly competing with Google, nor is your application likely to be a installed-to-online switchover application, so good enough ought to be good enough.
Start simple and carefully add your application-like features later. Focus on features that offer substantive depth (e.g., keyboard shortcuts) over flashy eye-candy to promote power users of your app — see Kathy Sierra’s Engaging Users essay for inspiration.
[1] For a more technical slant on this, you might like Neil Mix’s Beyond Dom article.