I’ve found a nice metaphor: the living system. Any system should respond to user actions as a living being.
Normally, web apps are emotionless. Their work is too straightforward, at times they ignore user actions and/or respond very selectively. In general, they are very much like robots. A good system should create an impression of the life within. It should signal if it feels good or bad, gets angry, annoyed; have fun, relax — just show its (or her?) emotions.
I think there are 2 levels of designing apps.
The Trivial Level (Elementary)
This is about an adequate response to user actions. The system should show what you can do with it. Buttons should look like buttons and tremble, quiver or flicker for mouseovers. The animation should be fairly smooth and natural, exposing the dynamics of a living being. Let’s take a closer look at the drag and drop behaviour.
- Mouseover: pulse/enlarge effect
- Drag: the object changes its color, rises against the background (the shadow effect) and turns over
- Move: nothing happens
- Hover to the drop destination: destination gets highlighted, the element changes its color
- Drop: the element changes its color and slowly returns to normal.
These small things create a deeper sense of engagement, making you feel like you work with a real, tangible system.
Quite many apps are designed on the trivial level.
The Level of Emotional Empathy (Advanced)
This one is far more complex. If you can implement it, your web app acquires its own personality. The main trick here is to keep the integrity of your solution. How does your system react to errors? How does it tell users what should be done next? How does it acknowledge successful actions?
There are bugs and tasks in our system. Sometimes — too idealistic — there are no bugs and tasks. No bugs — life’s good. The app should be happy and say: “Wow! I found no bugs!” If there are no tasks, it can cheer you up: “You’re done for the day! Now you could take some time to read news on TechCrunch”. Or it can troll you: “You’ve got nothing to do? Are you sure? Do you want to add new work?” “add new work” opens up the new task creation screen.
Another example, the system shows 500 open bugs and mocks at you: “Aha... 500 open bugs!"
You want to assign a task to John. But somehow he’s already working on 19 tasks. The system can take mercy on this guy: “Poor John is struggling with his 19 tasks, and he’d hardly get them all done soon. Should we re-assign John’s tasks to someone else?” There goes the link to John’s dashboard with tasks.
To make the system behave this way, one should understand every small turn of user scenarios and strongly empathize with end users. To my regret, we’ve got “0 items found” responses all over TargetProcess. That’s so excruciatingly boring.
Siri is a cool example of a nice living system. Well, it’s got voice interface, etc. Nevertheless, I’m sure we can breathe life into TargetProcess. Just like Pygmalion gave life to the statue he created. That’s what we’re going to do in TargetProcess v.3.
English version by Olga Kouzina