The number two UX slogan is to keep it simple.
This is the truly fundamental principle
of interaction design.
The fewer features you have,
the easier the product will be for the users.
The fewer options you have for a given feature,
the easier that feature will be to use.
Any time you add something, usability goes down,
because the user interface becomes more complicated.
Of course, we should remember the old quote
attributed to Albert Einstein.
"Everything should be made as simple as possible,
but no simpler."
Unfortunately, as is often the case with famous quotes,
what Einstein actually said was not that pithy.
The true quote is,
"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."
Well, if you compare Einstein's original saying
with the rewritten version that's usually quoted,
it just proves the point.
Simpler is better and more likely to be remembered.
In any case, you should make the user interface
as simple as possible, but no simpler.
The problem is that we do need the product
to have some features.
Usefulness requires both usability and utility.
So your design must be easy to use,
or people won't use it.
But it must also accomplish something people need,
or they still won't use it.
So we do need features,
and some features do need options
so that we can deliver strong utility.
The challenge is to avoid featuritis
and keep the user interface as simple as possible.
This is a challenge,
because there's always a good argument
in favor any additional feature.
After all, there will probably be some users
who will like that additional feature.
The key point is that any additional feature
will hurt the usability of all the existing features.
This means that in the beginning,
we have almost no features,
there'll be a net gain from adding high-priority features.
The benefit of each important new feature is high,
and the penalty from hurting a few existing features is low.
Later, as you keep adding features,
the next feature on the priority list
will be considerably less important,
and the penalty from hurting a bigger set
of critical features will be high.
At some point in this process,
the net gain from an extra feature becomes negative.
And so don't add it.
Why do new features hurt the existing features?
Because each additional element
in a user interface is one more thing
for users to ponder when they want to do something.
It's one more thing to scan,
and it's possibly one more thing for people
to use wrong and get into trouble.
So extra features slow down users,
they make it harder to use the existing features,
and they increase the error rate.
And if you have any form of manual or instructions,
the extra features also need to be described
and thus load up the documentation,
which makes it harder and slower
to find the information users need.
Remember, extra features reduce usability
and hurt the existing features.
So, keep it simple.