Inconsistency killed the cat

Lime cat

Can you imagine if some cars had the accelerator on the right and the break pedal on the left (not too hard I’m guessing) and others had it the other way around? It would be a nightmare! What about if the accelerator and break functions switched when you were in reverse so that sometimes you had to break with your left foot and other times with your right? Consistency is incredibly important when it comes to any human machine interface and this is as true of computer interfaces as it is of car interfaces. Consistency with other similar interfaces (in this example other cars) and consistency within an interface.

The importance of consistency was brought home to me recently when I was asked to take a look at the UI for Documentum – an enterprise content management system. Now the UI for Documentum is generally OK but two things really annoyed me. One was the constant page refreshes (come on EMC – haven’t you guys heard of a little known technology called AJAX) and the other was the lack of consistency, both within the system and with other web apps and applications. For example sometimes a right click on an object brings up an action menu, sometimes it doesn’t. Sometimes a search filter appears on the left of the page and sometimes it appears on the right. Sometimes you have the option to edit values, other times you view the values to edit them (i.e. they are editable on the page). Also unlike pretty much every other web app and application out there the main menu (i.e. displayed at the top of each page) is contextual, but not obviously so. The options change depending on where you are in the system, but not in a sensible and visible hierarchical way like Microsoft’s Ribbon interface or a lot of web app menus, it simply hides and shows menu items willy nilly.

When designing the UX for any system consistency really counts – consistency both within the interface and consistency with other similar interfaces. If the interface behaves differently from other similar systems then it’s more likely to confuse users because they are going to have to re-learn how things work. Equally inconsistencies within the interface don’t just make the interface look half finished and a bit slap dash, but force users to think more than they should have to. Hang about – on the last page this item was clickable but on this page it isn’t! Designing a consistent user experience is a no brainer but it’s not as easy as you might think. Here are some things to think about to help maintain that all important consistency.

Find out what your users are used to

Before you start designing the user experience take some time to find out what other similar systems your users are likely to have used. That is, what mental model (or models) are they likely to initially apply and what inconsistencies with this are likely to cause them problems? For example, if you’re designing an ecommerce website, users will expect your checkout to be consistent with the checkouts of other sites they use, such as Amazon, John Lewis and Tesco Direct. Of course you don’t need or even want a design that is exactly the same, but you must be aware that users will probably expect your system to behave in a similar manner. The more consistency there is between your system and other similar systems, the easier it should be for users to use it straight away.

Use design patterns

Design patterns can be incredibly useful for maintaining consistency, both within a system and with other similar systems. By building up a set of design patterns for your own system you can not only save yourself a lot of time by not having to constantly re-invent the wheel, but can also ensure that the UX across the system is consistent. For example, errors are reported in the same way and paging works the same across the site.

By taking a look at existing design patterns out there (why not use this nifty design patterns search engine) you can also ensure that your design is consistent with other sites and applications (of course which design patterns to use and when is the tricky bit!). Chances are that users will have encountered these design patterns on other systems, so should have a head start when it comes to using yours.

Componentise your design

By breaking up your UX design into components you can identify common components and in turn help ensure consistency across the system. For example, you can identify the different tables, forms and alerts used across the system and ensure that there is consistency across these. This is especially important for Agile projects where it’s all too easy to create an inconsistent UX design because the system is created in a piecemeal fashion (checkout my Tips for bringing UX to the Agile party article for more about including UX with an Agile software development). By setting the UX design for shared components and interactions early on you can help maintain consistency when everything ultimately comes together.

Checkout any OS UX guidelines

Most operating systems (OS) will have an associated set of UX guidelines for designers and developers to follow (e.g. Microsoft’s Windows User Experience Interaction Guidelines, Apple’s Human Interface Guidelines and Nokia’s Design and User Experience Library). The Microsoft’s and Apple’s of the world don’t write these for fun (if you’ve ever tried writing a UX style guide you’d know that it would be hard to describe writing it as ‘fun’) but because they want software within their operating system to provide a consistent user experience. It’s important to read and where appropriate adhere to these guidelines (notice I said appropriate because you should never blindly follow guidelines) so that your application is indeed consistent with other applications for that operating system.

Create a UX style guide

I said earlier that writing a UX style guide can hardly be described as ‘fun’. Whilst this is true (unless of course you’re the sort of person who gets pleasure out of writing 10,000 word essays, in which case you’re just weird) a UX style guide can be very important when it comes to maintaining a consistent UX within a system. It’s especially important if there are going to be lots of different people designing the UX for the system, or if it’s a system that is likely to be built up over a period of time. Without a UX style guide it’s all too easy for inconsistencies to creep in to the system and these can rapidly become very apparent and damaging to users. Of course you don’t have to spend ages crafting a massive document detailing ever conceivable style of interaction within the system, but you do want something that people can quickly and easily refer to. A wiki type UX style guide could be a good idea and you’ll certainly want a person (or persons) to have ownership of the UX style guide so that it can be kept up-to-date and in good order.

Ensure that new screens are always reviewed

Having a UX style guide is useless if it’s not being used or adhered to. Getting the style guide used is (usually) a case of education and encouragement – letting developers and designers know that the style guide is available and encouraging them to use it (bribing them with confectionary often works well). That’s the carrot. The stick is ensuring that new screens are reviewed against the UX style guide and beating (metaphorically of course) people that don’t adhere to it. Usually it will be the UX designer undertaking these reviews but it doesn’t need to be – it could be testers, developers or even product owners. The most important thing is that someone (or ones) has ownership of the UX of the system and are able to stop designs going forward if they are not consistent with the existing or intended UX design.

Test, test and test some more

It’s very easy for small inconsistencies to slip through the net, such as different labels being used for the same thing in different parts of the system, or buttons with differing casing (e.g. ‘Add new’ and ‘Add New’). Users might not notice all of these small inconsistencies, but add them all up and they can not only lead to usability issues but will also make the UX design appear less polished and professional. This is why it’s so important that thorough testing is undertaken throughout a project – not just of the functionality but of the entire UX design. Make sure that areas such as terminology, casing, tone of voice, visual styling and even error messaging are checked and reviewed to ensure that a consistent user experience is delivered.

An inconsistent design team will lead to inconsistencies

An obvious one really but if your design team keeps chopping and changing, with people constantly coming and going your chances of delivering a consistent user experience will be significantly reduced. Invariably most of the UX design for a system resides in people’s heads so if say the lead UX designer leaves the project it can be very hard for some one coming in to pickup the UX design and maintain that all important consistency. Have a consistent design team and they should reward you with a consistent UX design!