How to Make a Great Software - The Lore of Consistency

If You ask me what is the most important in software design, I would tell it's a software consistency.

Usability experts describes consistency as a consistency of interface elements inside single project. In this article consistency is described in wider perspective, not only as a consistency of interface elements, but as a consistency of previous user experience. If You, as a software developer manage to implement consistency of previous user experience, You will make a great software which is intuitive and easy to use.

The consistency in software design means the synergy of usability design and visual design. If function and behaviour of some interface element is the same, its look&feel must remain the same. For example, if you have a media player which has a button for play a song in Controls window, but also a button with the same function in a Playlist window, these two buttons must looks the same or a user will wonder if a button in Controls window does a different thing than a button in a Playlist window.

Consistency must be achieve not only inside software, but also outside. This means that developer must respects user experience from Operating System, but from similar software which users may be using also. For example, I respects a lot developers of Mac OS, because their professionalism. They published a fantastic manual for developers, which describes all interface conventions in Mac OS. On this way they helps developers to achieve consistency between Mac OS and their products, but also between their products and other software which target audience may be using.

Consistency with user experience is necessary because it provides a smooth flow of user cognitive process. Cognitive process can be simplify to four basic activities:

  1. defining a task,
  2. planning an action,
  3. realisation,
  4. verification of results.

For example, user wish to send an e-mail. This is the first phase of cognitive process. Than user planning how to do it. He is planning to press some new mail button, type a text, enter address and press send button. User experience can be good if user plans for sending an e-mail goes smoothly. If not, user will get frustrated. On the end, user expects some feedback. So, if he doesn't get a feedback, something like a "Message sent", user will wonder if task is done and get frustrated.

All this means that user always has some expectations based on previous experience. If a software doesn't have a consistency with previous user experience, user will be disappointed and frustrated.

I took a participation in State competitions in presentations and software development for primary and secondary schools pupils, as a jury member. The majority of this projects were really bad designed, because lack of consistency. For example, when I asked a kid why is the button for next slide different on each slide, it said:" To be more interesting." It is OK to make a product interesting, but interface must be obvious and intuitive, not a puzzle to be solved. Work of these kids is under great influence of their teachers, who are the project mentors, and they should know to guide these kids better. Some of these projects are really interesting but with such bad design no one will use it...

As usabitity experts recommends, if it is possible to implement some feature using standard interface element, don't make custom interface solutions. Anything new, without consistency in previous user experience, may cause serious usability problems and it is highly recommended to be proper tested.

If You are developing a software for a specific target audience, pay attention on consistency with their terminology, workflow, real-life metaphors, habits, etc...