Computers should be reasonable

Dan Christian
Sep 4, 2018 · 2 min read

There are many things that we take for granted with people that computers don’t — but could be — doing.

“Be Reasonable neon signage” by Victor Garcia on Unsplash

People will happily (try to) answer any of the following questions:
* What are my options?
* What is happening now?
* What did you mean by that?
* Why did that happen?
* What does ___ mean?
* Could you explain ___ in more detail?
* I understand ___, could you explain the ___ part?

Now ask yourself when was the last time you saw computer software doing any of that beyond the first one? We take it for granted that software is completely stupid and can’t answer even basic questions. In fact, software only works if the users (that’s you) are smart enough to work around its profound limitations.

Some of this does happen some of the time:
* Hovering over a control or button may show some text explaining what the icon is supposed to mean; however, this doesn’t work on mobile platforms.
* You can do a Google search for the meaning of terms, but some terms are ambiguous or have a specific meaning in the program’s context.
* More internet searches might find either more detailed or more user friendly explanations about what is happening. Without the internet and a good search engine, most modern software would be completely opaque.
* Menus and toolbars are great for listing options, but it’s impossible to find out why some options are grayed out or missing.

I’m one of those gray haired types that remembers “the good old days” of text interfaces. They left a lot to be desired; but you could often answer the above questions, while today’s “user friendly” software is often harder to understand. It may involve a (much despised) manual, but that’s better than depending on some kind soul on the internet providing the answer in a searchable forum. In an attempt to hide complicated software, “modern” user interfaces just hide as much as they can; but that mean that questions like ‘why did that happen?’ are now completely opaque.

Here is my appeal to all software developers: ask yourself if a user who has never seen your software before could answer the above questions. This applies not just to graphical interfaces, but also to command line and APIs (application programming interfaces) as well.

Complexity is software’s Achilles heel. Communicating clearly can help to reduce the pain.

Written by

Life, software, the structure of organizations, forming community, robotics

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade