Aim for a Single Way to Achieve a Single Task

When it comes to user interface design and user experience, I’m no expert (nor have I ever claimed to be). I’m barely an intermediate. if even that. I’m fortunate enough people to have peers who are willing to review certain projects in order to help tighten up certain aspects of my work.

I don’t think we should ever be afraid or ashamed to ask people who are more skilled than us in a certain area to help us out (or to pay them, even!). After all, we have nothing but to benefit from it.

This doesn’t mean that a couple of ideas, rules, and general practices haven’t come up over the years.

For example, one of the rules of thumb that I have whenever I am working on a user interface is to try to make sure the user only has one way of achieving something.

In other words, I don’t like it when there are multiple ways to do the same thing. I think that it confuses the user, it complicates the code, and it makes it more difficult to maintain over time. The code aspect of this is enough content for another post.

For now, it’s just about finding a single way to achieve one task.

A Single Avenue to Achieve a Single Task

This post could get exceptionally long, but that’s not my intent. Instead, I thought I’d use a practical example to show what I mean and then I’d elaborate a little bit from there.

When I released the first version of Mayer, there was no “edit” link visible to post administrators in the post meta when they were logged into their site.

No Edit Anchor
There’s no ‘Edit’ link in the post meta data below the title.

The rationale was that you could either navigate to an individual post and then click on the ‘Edit Post’ option in the toolbar, or you could access it from within the dashboard by going to ‘All Posts’, finding it, and then editing it there.

As it turns out, there are ways in which people will ultimately use your work that you may not anticipate. Who would’ve thought, right?

Case in point: One of the tickets that I received in a previous version of the theme was to introduce an ‘Edit’ link for each of the posts on the index pages (this includes listing for categories, archives, etc.).

Easy enough to implement, but there was one caveat: I only wanted it to display on pages that listed posts – not on individual posts; otherwise, the user would have two ways to achieve the same task.

Edit Anchor
An ‘Edit’ link in the post meta data below the title.

So there’s a balance to be struck: Introduce features that bring a feeling of balance to the experience. That is, give users to ability to achieve many of the common tasks that they are able to do through the core application – such as editing a post – but only expose the option when it doesn’t already exist.

Avoid Redundancy

This isn’t a UI law – perhaps it’s a general rule of thumb – but whatever the case, I think that I think it’s worth thinking about everything you’re considering adding a new button, anchor, or element to your user interface.

It’s about reducing redundancy: If what you’re going to add is going to create multiple ways to achieve the same thing, then ask if you really need to do it.

Personally, I lean towards being more conservative with introducing elements. After all, there’s a chance that your users are willing to give you feedback on little idiosyncrasies  about your work.

We all have our own thoughts about tools and applications we use from other vendors – why would our work be an exception for others?

1 Reply to “Aim for a Single Way to Achieve a Single Task”

  1. Totally agree with you. This was partly responsible for what made learning using Github a nightmare for me. There are 15 ways to create a repo in some places, and then when you factor in initializing both local and remote repos, it can become overwhelming to some people.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.