Warning, /multimedia/amarok/HACKING/usability.txt is written in an unsupported language. File is not indexed.

0001 === USABILITY ===
0002 
0003 This article was originally published here:
0004 
0005 http://amarok.kde.org/blog/archives/1132-Micro-Options,-Many-Options,-No-Options-A-practical-guide-to-help-you-decide..html
0006 
0007 
0008 
0009 Not very long ago, Aaron wrote an article about improving our user experience, stating that
0010 "Micro-Options Suck". Coincidentally, an article appeared on dot.kde.org only a few hours later, stating the
0011 following: "Choice Is Not A Usability Problem".
0012 
0013 Ardent readers will notice that there is possibly a contradiction here. In this
0014 article I would like to explain why this is not really a contradiction, but
0015 rather a misunderstanding. To get us started, let's make a jump back in time
0016 (using Flux Capacitor technology):
0017 
0018 The year is 2004. It's cold. You are alone. There is a house in the north
0019 (called "KDE"), and a house in the south ("GNOME"). Press "n" or "s".
0020 
0021 > n
0022 
0023 You have entered the house of KDE. It's a big house, full of obscure items. The
0024 sheer number of items is highly impressive, but you get confused. It is too
0025 much. What is your next step? Press "n" or "s".
0026 
0027 > s
0028 
0029 You have entered the house of GNOME. This house is neat, clean, but also kind of
0030 empty. There are very few things to play with. You get confused. What is your
0031 next step?
0032 
0033 > I give up. User reboots into Windows.
0034 
0035 
0036 The gist of this little analogy:
0037 
0038 KDE was wrong. GNOME was wrong. Also - they both were right!
0039 
0040 
0041 This is quite obviously another contradiction. Obviously this means that Mark is
0042 not quite right in the head! Well, you're possibly right on both accounts, but
0043 let me explain why it actually makes sense: The truth is somewhere in
0044 between.
0045 
0046 KDE has historically been known for being "the nerd's desktop". Basically, we
0047 were so proud of having our own desktop that we quickly determined that giving
0048 everyone as much freedom as possible is ideal. After all, the competition
0049 (Windows) did not offer this. Developer A came along, going "Hey, I have this
0050 fancy idea. It's a bit weird, but let me show you!". Developer B was quick to
0051 reply: "Hell yeah, why not? After all this is our own desktop. We can make all
0052 of our dreams come true. Let's do it!"
0053 
0054 GNOME has historically been known for being very sparse with options. They did
0055 this for a good reason: Someone smart realized that KDE was totally going
0056 overboard with options. Too much is too much. Let me show you a classical
0057 example:
0058 
0059 http://amarok.kde.org/blog/uploads/crypto_ssl.jpg
0060 
0061 
0062 Now let me show you an example of the Dolphin settings dialog:
0063 
0064 http://amarok.kde.org/blog/uploads/dolphin_settings.png
0065 
0066 
0067 Dolphin has won 2009's Akademy Award for "Best Application". The above
0068 screenshot demonstrates one of our reasons for choosing it: Peter Penz realized
0069 what generations of GUI developers (both in KDE and GNOME) got wrong: The true
0070 secret to getting your settings right is choosing the essential ones, while
0071 making good choices for defaults that don't need micro-options.
0072 
0073 Unfortunately, this is not easy, and it separates the good GUI designer from the
0074 bad one. In fact making these choices is bloody damn hard, I kid you not. It
0075 requires a lot of thought, experience, and taste. But in the end, you, as a
0076 developer, are responsible for making these choices. Creating software is not
0077 about giving the user a LEGO blocks game. If options get too complex, the users
0078 might as well learn programming and do it all by themselves. That's because, if
0079 you think about it, choosing an option is programming: You make the
0080 program use one code path, or a different one. This is essentially the same as
0081 an "if() {}; else() {};" block wrapped in GUI sugar.
0082 
0083 To sum it up:
0084 
0085 Before adding an option, think hard about it. Could the same be achieved with a
0086 smarter algorithm? Often options are bad excuses for deciding between one bad
0087 implementation and another bad one. Find a good one!
0088 
0089 Don't try to solve the problem by removing all options. Some options are very
0090 useful, and they are actually needed. Finding out which of these are needed is
0091 the developer's task. It's a hard task, but it can be done.
0092 
0093 Consider asking professionals. We have a KDE Usability team, comprised of real
0094 experts on this topic. Among them is Celeste, a member of the KDE board. She
0095 knows what she's talking about, and she's generally very helpful. Don't be shy,
0096 ask them!