You can create a great UI, but it will always piss some users off. The more flexible your UI, the more complex it will seem. So what's the best thing to do? Create a simple UI that's easy to use for most people, or create a flexible UI that's hard to learn but always does exactly what the user wants?

  • 1
    As somebody said long ago: people don't want your UIs, a big red button with "do it" notice would be their beloved application interface if it was possible.
    – naugtur
    Commented Aug 19, 2010 at 13:00
  • Well, a "do it" button would probably just result in people pressing it and being mad when your "it" turned out to be different than theirs. I guess that's a call for good documentation.
    – Kzqai
    Commented Sep 7, 2010 at 23:30

14 Answers 14


I don't think they are mutually exclusive but in the cases they are you have to look at what your customers want / need.

Any interface can be made simpler by moving complex functionality out of the way to some other place. I think that is the main trade off. To make it easier to use for the average user you have to make it more complicated for the power user. They have to do a few more clicks to get their stuff.

But of course quite often the software can be made easier for both power users and casual users without sacrificing usability for any of them. A key thing is to create orthogonal features than can be combined easily. Often software is complicated because there are a lot of overlapping features. Instead by making a few distinct features that can be easily combined the software can be made a lot more flexible and simpler.

Figure it out by making an object / action matrix. List the number of different objects in your app along one axis and the actions you can perform on them on another axis. The matrix should not be too sparse.


I don't know if there is an easy answer to this question. But there are some great quotes that reflect my opinion on the subject.

You can often find this quote inside books and articles concerning usability and design:

"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." - Antoine de Saint-Exupery

Taken out of context this may seem to advocate simplicity above all else. It's a great quote and it is indeed a great exercise to remove useless bits from your design to make it more intuitive. But I think the idea behind it is incomplete when it comes to user interfaces.

I think this sums it up best:

"It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience." - Albert Einstein

Or, to put Einstein's words in plain terms:

Everything should be made as simple as possible, but no simpler than is necessary.

I constantly try to think from this perspective. Do we really need this thing in our application? Most importantly, will anyone really miss it if it's gone? Conversely, what's missing from the application that we know everyone wants? Those decisions are all made based off of what the majority of users really need to use your software effectively, and nothing more.

Personally, I suppose I would make the UI just as clean, simple, and easy to use as possible for your given functionality. Then, if lots of people complain about this feature not being collapsible, or that toolbar not being movable, then you can address that when it comes.

  • 1
    That's one of my favorite design philosophies and Antoine de Saint-Exupery quotes.
    – milesmeow
    Commented Aug 12, 2010 at 17:35
  • 5
    Another one, attributed to Blaise Pascal: "I would have written a shorter letter, but I did not have the time." Commented Aug 30, 2010 at 21:03

Eric Burke on Simplicity:

enter image description here

  • And what results will you get in a case of google search and in a case "your company's app"? ;) (many unusable information and concrete action) :)
    – igor
    Commented Aug 10, 2010 at 10:30
  • 'Your Company's App' looks a lot like Googles 'Advanced Search'
    – JeffO
    Commented Aug 30, 2010 at 18:15

To an extent, you can do both. Keep it as simple as possible for most users and use progressive disclosure to reveal the more advanced options for users that need them. Keep in mind, however, that more does not always equal better. Option overload occurs when there are so many choices that the user feels overwhelmed and frustrated.

  • Progressive disclosure would work brilliantly for an application like Terragen. Commented Aug 14, 2010 at 23:04

I'll reproduce here a small rant about the evils of advanced UI flexibility in the last 4 or 5 paragraphs of this entry on my blog about an aspect of Outlook's UI.

Now, there are those who might see this as a triumph of Microsoft usability. After all, I had a problem, and thanks to the flexibility they built in, I was able to fix it. Yay Microsoft! right?

Well, not quite. See, the trouble with customisable interfaces is that they occasionally get customised.

See, now that I have made this alteration, if any of the rest of the 99.99% of highly habitualised Microsoft Outlook users who not only haven’t modified their toolbar, but don’t even know it can be done, attempt to use the one I have now changed, they will have a much harder time finding Reply to All.

Also, if I was to actually get really, really used to it, and perhaps even began to rely on it, I would also have a moment of confusion when I went to use an uncustomised version - which will inevitably happen, if only when something gets reinstalled sometime and the setting is lost. So although I have indeed been able to try a solution, it is not likely that I’ll make using it this modified way a truly instinctive habit. Doing that would just be inviting problems for myself further down the track.

A better approach from a usability purist’s standpoint would have been just to get it right in the first place :-)

Of course, 'getting it right' is easier said than done.

  • 2
    I disagree with the conclusion here, that all interfaces can be made simple. Having worked on a software project where the program is only used by a small number of experts, I have seen many cases where a complicated and customizable interface is better. Before this work though, I would have agreed with you... Commented Aug 10, 2010 at 16:17
  • 1
    That's not my conclusion. In fact, I would argue that we need to break complexity into 'intrinsic' and 'unnessary' complexity, and eliminate the unnessary and not the intrinsic. Making the UI itself changeable, however, is almost always unnessary complexity.
    – whybird
    Commented Aug 12, 2010 at 2:27
  • Not a massive problem though. Do a lot of other people use yout Outlook toolbar? Commented Aug 14, 2010 at 22:56
  • No, but I wind up reverting to the standard one surprisingly often. It's just not worth it.
    – whybird
    Commented Aug 15, 2010 at 0:43

They're not necessarily mutually exclusive. For instance, GMail is a complicated UI that is easy to learn. Excel is a rich, deep UI that has many hidden complexities - but the learnability is high due to its immediate shallowness (all you need to do to use it is click in a cell and start typing).

I think the question touches more on issues with discoverability. If you create a simple UI but hide all the interactions behind menus, you can still mess it up, even if the menus aren't very deep. Similarly, you can create a really easy to use UI by focusing on the right things and using graphic design elements well (such as weight, typography and colour) to focus the user's attention on the right things.

There's a lot to draw on from videogames. One thing they do well is have players learn the "interface" in self-reinforcing loops that grant high satisfaction. A great example is in Super Mario, where jumping is a basic gameplay verb, but the user can easily discover a more advanced form of jumping by doing so several times in succession. Each time a successive jump connects, the player is given a small reward in the form of Mario whooping more loudly with each jump. There's definitely a shortage of short feedback loops like that in modern UI design.


What do you choose? :)

enter image description here

My answer: simplicity UI. But it is difficult to implement. But it is nice.

  • -1 I don't know. Depending on the situation I might use either one... This isn't an obvious answer. Commented Aug 10, 2010 at 16:19
  • @sgnewson My answer is simplicity UI. I don't need in so type of comments, thank you.
    – igor
    Commented Aug 10, 2010 at 17:52
  • 3
    I'd choose the first one because it's much easier to use. Not the simplest though. Commented Aug 10, 2010 at 21:29
  • @Jouke van der Maas "It's much easier" for whom? for developer or for user? I think you understand that owner of application should investigate user's experience. Simplicity is very subjective. I spent much time and got -2 for my answer. So I am stopping this senseless discussion.
    – igor
    Commented Aug 11, 2010 at 6:56
  • 1
    Ok, in your new example I would agree that the last choice would be simplest. But it still isn't the only correct answer. Seeing an empty text box in which to type, I have no idea what sort of things I can put in it. I have to see someone else put in dates before I think to do so myself. In the first choice, it is obvious that I can put in dates. Thus, in it's own way, it is more usable. (You have changed the example, right? I remember something different.) Commented Aug 12, 2010 at 7:03

Im all for simple UIs.

Most users prefer a simple, clean and simple to understand UI.

Think Google. Think IPod.

How many people do you know that take advantage of UI settings?


IMHO, flexibility is too often an excuse for not implementing a UI well in the first place.

However, you can have both. Write a simple UI in a fairly easy to understand language, like Lua. Give parts of the interface a tiny button which a user can press to bring up the Lua code for that bit. Then they can freely edit the UI.

  • 1
    Yes, or load parts of the WPF xaml at runtime. I was thinking about that too. Commented Aug 15, 2010 at 10:04

This is an interesting related article by Mike Rundle: http://flyosity.com/iphone/kill-the-settings-build-opinionated-software.php Even if it's not of help, it's still a good read.


Go for simplicity and forget flexibility, Microsoft has done research about this when they developed Office 2007, I'll give you two quotes from this post

What users say: ...talking to some of our expert users within large companies, who in several cases assured us that "everyone" customizes their UI...

What actually happens: In fewer than 2% of sessions, the program was running with customized command bars.

Forget UI customization, you'll get better result from focusing on making the "default UI" better.

Edit: Let me clarify, what I'm saying is that given you have finite development resources, if you spend those resources on optimizing the default UI the application will be better than if you spend the time building UI customization.

The application will be better for the 98% that never use customization and the application will be better for most of the 2% who do customize (to work around a UI problem you can solve for everyone).

As a result of having an application that is nicer to use you will get more sales (including from the 2% who would have used customization).

When was the last time you said "Application A is a pleasure to use and application B has a crappy UI, but I prefer B because I can rearrange the toolbars"?

  • But those two percent are the geeks who tell the other ninty-eight what software they should use. See Firefox. Most of it's users don't use extensions but the geek crowd loves it because of it's extensibility and they are vocal about it.
    – Christian
    Commented Aug 10, 2010 at 8:36
  • @Christian - maybe, it all depends on what app you are writing, if it's an accounting package those geeks wouldn't use it anyway, on the other side if it's an open source alternative to a Microsoft product those geeks would use it with or without the flexibility.
    – Nir
    Commented Aug 10, 2010 at 11:25
  • -1: As others have said, flexibility and simplicity are rarely mutually exclusive. You just have to think a bit harder. And those 2% of people will probably be responsible for a much higher share of usage, due to their influence over non-tech people.
    – Zifre
    Commented Aug 29, 2010 at 21:06
  • +1 I agree with the philosophy that the UI designer is responsible for choosing the right default and not downstreaming those decisions to the end user.
    – Rahul
    Commented Aug 30, 2010 at 11:36

The key to providing good simplicity is to have good modularity. http://www.ted.com/talks/george_whitesides_toward_a_science_of_simplicity.html is a good talk on the topic.


Every user request is simple in their mind and if you just did what they wanted, you'd have all the flexibility in the world.

Which is why you should start simple and only offer flexiblity in the simplest form they will accept once you've been able to get at the root of what they really need.

Many answers have used the Google interface as an example of simplicity, but what about the 'Advanced Search' functionality. Seems like they've managed to make it simple for most, but offer a more complicated solution for others. Obviously they have the resources to do both and have baked their code over many years.

  • And a piece of unmanageable software. Commented Aug 28, 2010 at 14:46

The answer is always "Don't Make Me Think."
I read this book over 10 years ago. It is still one of the best books on the web design. I don't think the author's ideas apply to everything, but they are helpful. Read it. "Don't Make Me Think: A Common Sense Approach to Web Usability"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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