October 08, 2007

Sympathy for Mr. Software

No software does what the user is supposed to be doing, because that is not known to the user in the first place. Should that have become known, the person could have been replaced with a machine. Instead, software helps people by making small and routine parts of their jobs easier to do. Even that it does imperfectly.

The users constantly struggle to make the software do what they want, the way they want. Sometimes they find the features useful the way they are. Sometimes they adapt to their quirks. Sometimes they find ways around. And sometimes they dump the whole thing.

As such, software is a dumb servant. A very dumb one. It needs assistance by itself.

To be useful, software needs assistance from the user. There must be a way for the user to explain what he wants even though the software may not have this capacity.

But then, returning to the dumb servant metaphor, the user must be willing to help. Therefore, here is my point - the software should be appealing to the user's sympathy or even pity. The user should be empathically connected to the software. To help and not to throw it away should be its first reaction.

I don't have any recipes on how to build such software. Arousing human's sympathy can be difficult even for another human, not for a piece of software. The only answer that I have is that the user should like the software for what seems to be nothing in particular.

The way I see it now, software should be written in such way that the user likes it for no apparent reason from the first sight. If it's pretty and it behaves consistently and it doesn't jump in your face and it knows when to speak and when to shut up and it looks familiar and it looks novel and it has square buttons and it has round buttons, then perhaps the user likes it. But you never know.


Dima said...

The recipe is actually very simple: just try to not entertain yourself by writing cetrain "features", but think at the first hand about the people who will use your software. So the title should actually be "Sympathy for Mr. User" :)

There are numerous usability methodologies, that will try to focus you on your users.

And hey, you should also love your job :)

Dmitry Dvoinikov said...

Nope, the title is right. I was talking about users' sympathy to the software, not developers'.

Thinking about users is not the panacea. Again, the users don't know what they want themselves, and even less so do developers. The idea of this post was that the programs we write will never be ideal, therefore it'd be great if we knew how to make the users sympathetic to the poor Mr. Software.

Dima said...

Possibly, I put it wrong, sorry. Of course, the world is not ideal, users don't know what they want, etc. And we, as developers, are not ideal as well.

But what we can and shall do is to try to do our best. With all our current understanding of what our users might need. Not try to please yourself, but work for your users.

I know, this sound like teaching to love your neighbour. But the truth is that it is best thing you can do for yourself to make your users love your product. Possibly not everyone, but many of them. In case if you really care to please your users and not just to cash the money :)