Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In the industry, there are few standard checklists on how to make a web application more :

  1. Scalable
  2. Easy to understand/maintain
  3. Perform better
  4. Robust

etc. etc.

Are there any standard checklists for how to make an app more 'intuitive'? This of course will differ from app to app...but I am sure there will be some generic ones that apply to all.


migration rejected from Sep 17 '13 at 1:40

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as off-topic by gnat, MichaelT, GlenH7, Kilian Foth, Dan Pichelman Sep 17 '13 at 1:40

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – gnat, Community, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

You may check too… and this very clever blog about usability – Frosty Z Mar 4 '11 at 10:03
probably better suited for – GSto Mar 4 '11 at 18:29
Belongs on – Kilian Foth Sep 16 '13 at 6:40
up vote 0 down vote accepted

There aren't going to be standard checklists for "intuitive", any more than there are checklists for "beautiful" or "stylish". It's a matter of experience, creativity, and knowledge. That said, there are a couple of things to do.

One thing you should do is know what the usual design elements are, where they are typically placed, how they look, and what they do, and not deviate from that without a good reason. There's no inherent reason Word should be intuitive, but word processors that generally do thing Word's way will seem to behave intuitively because it's what people expect.

Another thing is usability testing, with test groups of three to five people who haven't seen the app before. You need to try to impress on them that you want their complaints, that if they feel like they're not intelligent enough to "get" the app that it isn't their fault. Then pay attention to what they say and do.


Usability evaluation, like programming, can be learned, but some people (not myself) have it by instinct.

A good resource on usability is Nielsen.

However, I would suggest as a first step Norman's "The Design of Everyday Things". While not specific to computers, he makes you think generally about the topic, and I feel that's a useful step before domain specific guidelines.

Well, TDOET is actually from the 1980's and doesn't deal with software at all (my copy, at least). It's an analysis of the psychology behind industrial design, and it's far more useful in that field. Still a good read, just not as relevant to software usability, IMHO. – markh Mar 4 '11 at 20:58
@mhazen: It has nothing to do with software, that's the whole point. As software people it's hard for us not to think of things in terms of software and engineering, rather than how people see the software - as a tool. That's why some schools have it as the first reading in the curriculum prior to any HCI studies. – Uri Mar 5 '11 at 21:47
Uri, I like the part of your answer about learning things in programming from non-computer-specific resources; and the opposite can also be done, learning lessons in life, from programming and computers. – Abbafei Mar 8 '11 at 21:15

See this article, especially the section "Make It Intuitive" (which is on the second page), at the end of the section specifically (the part about testing it on real people). (the article is about games for young kids, but its information can be useful for a lot of programs besides kids games)


  • Thinking about what it would be like to use the program as a "user", without knowing or having access to anything a programmer knows,


  • Asking people who are not familiar with the program to try it

, or a combination of these, can go a long way towards making a program more intuitive.


Not the answer you're looking for? Browse other questions tagged or ask your own question.