Recently, while explaining over dinner what I do for a living, the people around me began relating horror stories about Web sites and software, complaining about the difficult experiences they have every single day with so-called productivity tools.
For one person, it was one of those new-fangled accounting packages that's supposed to make the job of managing client and employee records more cost-effective. For another, it was a library catalog. Hors d'oeuvres were passed around. Jokes were made. Drinks were refilled.
With each complaint, the voices grew louder. Everyone began speaking over each other, cutting each other off at every opportunity with new anecdotes.
Conversation turned into frustration. Friendly words turned into overwhelming disdain. Feathers were ruffled.
I nodded my head at the recounting of each awful experience. I understand their frustration. I've seen it myself. I hear the grumbling that results from constant exposure to difficult interactions. In fact, part of my job is to listen to these complaints and decide what to do with them.
When my recent dinner conversation calmed a bit, I tried to describe the typical design and development process and expounded a bit about it.
I explained that good Web-based software design is about understanding the principle activity your product is meant to support so you know what to build, and more importantly, what not to build. It comes from knowing the best ways to implement each feature so they make sense to the people using them. It comes from a deep understanding of the Web and how it works. It comes from knowing how people use computers, and having the ability to create something that works with users instead of against them. And I said great Web applications come from knowing what qualities make great Web-based software great.
I carried on for a little while. I tend to ramble when I think I'm saying something intelligent. But somewhere in there, I stumbled across a phrase that seemed to elicit a look of enlightenment on the faces of those listening. In a very Zen moment, I said:
"It's about designing the obvious."
And with that, agreement entered the dialogue. Frustration turned back into conversation. Overwhelming disdain turned back into friendly words. Feathers were unruffled.
Everyone agreed it would be lovely if I could do something about the particular products they lose arguments to on a daily basis. I can't, of course, because I have my own products to worry about, but I can do one thing.
I can tell you how to make your products better in hopes that someday Web developers and users will happily coexist, and communication between these fighting parties will be successfully bridged by the one thing they have in common: the interface.
See, the Web has exactly three layers.
The Web world is divided into three layers: people, data, and the interfaces that stand between them.
The first layer is the people layer. There's nothing in this layer but people. People, people, and more people. People who have information, use information, and want more information.
The third layer is the data layer (I'll explain the second layer in a moment). Everything in the cyberworld that people need to know lives in the data layer: All the customer records, statistics, bookmarks, reference materials, finances, movie times, gas mileage, and popcorn cooking instructions live in the data layer.
The second layer is the one we deal with the most as Web developers. It's the interface layer. The applications used to connect people with data are in the interface layer. Everything from Flickr to Amazon, from Google to Basecamp. These applications manage data and present it to us. They let us play around with it, churn it up, spit it out, translate it, decipher it, encode it, and sleep on it. The only difference between these applications is what kind of data is used and what people do with it.
Interfaces stand between people and their data, providing access to the data like a door from one room to another. But no application I've ever seen is as simple to use as a door.
It's time that changed. And that's what this book is about.
That said, let's get on with it.