Friday, April 12, 2013

K is for Kindness

Whereas joy (yesterday's post) was an outcome, an effect rather than a cause, kindness is most emphatically a state of mind to be actively cultivated.

Be kind to your users

What does that mean?

More specifically, what does that mean in concrete terms in software design?

Let's start by eliminating a few suspects from our inquiries. For a start, I am assuming that the software does what it is supposed to do, i.e. it functions correctly. Also, I'm assuming that it performs well, and is secure and robust. That is not kindness, that is just doing your job. Take it as given.

But if it does all those things, what's left?

Consistency: When you are driving somewhere you've never been before, and you approach an intersection, do you panic, wondering how traffic is going to behave? No, you should know what to expect from the layout and the traffic signs. Road signs are consistent and traffic follows standard rules. All you have to worry about is which turn to take. The same should be true when a user comes to a screen or starts typing data. Completing a transaction should not mean clicking "OK" on one screen, hitting a "Save" icon on another, and a drop-down menu on a third. Clicking an "Exit" option should not save your work on three screens, but discard unsaved changed on the fourth. Be kind. Be consistent.

Comprehensibility: I wouldn't expect to drive around Victoria and find road signs written in Russian, or speed limits posted as fractions of the speed of light. Nor should your users be presented with instructions requiring a degree in astrophysics to understand. This is a business application you're writing. The only language that has any right to be shown is the business language that the user talks.

Clarity: Cluttered screens, scrolling windows within scrolling windows, nested layers of menu bars and ribbons ... space shuttle pilots might be able to cope. Not all of us are space shuttle pilots.

Tolerance: Kindness to your users means being tolerant of mistakes. A person should be able to hit a wrong key or click the wrong button, and be able to recover from the error. Many applications have an "Undo" feature, a good example of tolerance. But if you've finished a transaction and there's nothing to "undo", there should still be easy ways to correct mistakes, and to cancel or reverse entries.

Escape routes: Would you get away with designing a building without any means to escape a fire? Every step of the way through your application, there should be a way out. And, yes, it should be consistent.

Enterprise applications I've worked on in the past had a control or function key that unfailingly returned you to a menu.

The same key.

On every. Single. Damned. Screen.


  1. There are plenty of software publishers who could learn a thing or two from this post, never mind writers. Great post.

    Moody Writing

  2. I wish I could get our company to take lessons from you.
    Our systems are so unkind in every way

  3. Hello...Oh, Man! I agree with you on that, for sure. I just wish I were more knowledgeable about all of it. We all like to be able to depend upon signs, directions, and consistency. Best regards to you, my friend. Ruby

  4. Absolutely!

    I can tell when a developer was thinking about the user experience and not just sticking to the specifications of functionality alone.

  5. I agree that a lot of thoughtful consideration should go into any product intended for others to use.

  6. Thanks, mood!

    Mynx, that kind of thing makes me angry. It's so unnecessary.

    Grammy, that's what the developers often forget!

    Melanie, nice of you to say so, though I'd say that was a bit of a stretch :)

    Diane, yeah, functionality is vital, but it's not the whole story.

    Michael, true, but sadly lacking in so many spheres of our consumer world.

  7. I'm a big fan of the undo function. :) I use that. A lot.

  8. Jean, I do, too! But it's amazing how many places on the computer that not only is there no ability to "undo", but it can take days of effort to put right all the damage you just did with one ill-advised little click.

  9. It was KIND of you to stop by my blog this week. I loved your message for today's post. Thank you kindly!!!

  10. Software or computers aren't always kind to this user. :) They freeze or slow way down. So, I just restart and that seems to work. Probably not good for the machine -- wish I were more patient.
    Silvia @ Silvia Writes

  11. STFu - thank you :)

    Silvia, when they do that, usually the only thing you can do is restart. It ain't going to get better by itself, no matter how patient you are.


I love comments. Please feel free to join in the discussion.

I also try to respond to comments. I usually do so during the early evening (Pacific time) which may be many hours away from now!

So if you leave a comment and return some time later and I haven't responded yet, please don't think I'm ignoring you. I'm not. Honest.

Related Posts Plugin for WordPress, Blogger...