7 ms·
> Power users were happy with all the features and all the options, but the extra baggage made it harder for less technical people to use the product. Poor des
by maratd 14y ago
> Power users were happy with all the features and all the options, but the extra baggage made it harder for less technical people to use the product.
Poor design. Seriously. Simplicity is really really hard. Much harder than throwing a ton of settings, toggles, and switches at a user.
Your design has to be ridiculously simple, but be flexible enough to allow complexity when it is called for. It's hard to put into words, but I frequently spend months refining an interface to fit just right.
The best example of this is an operating system. Windows has to be simple enough for the least computer literate person to use, but flexible enough for you to configure anything you can imagine via the registry or command line. There is no link to the registry in the start menu. But every power user knows how to launch it. The complexity is possible, it's there, but it's hidden. It doesn't bother the new guy because he doesn't even know about it. Only the power use can find it.
If you prefer an example with Mac OS, the operating system by default is unbelievably limiting. There is very little you can configure via the settings. Pull out the terminal and you can change absolutely everything you can imagine. Again, the complexity and features are there ... but hidden. They don't interfere with the regular user experience, but they're there if needed by the power user.
Ditto for Linux.
- icebraining 14y agoIt's possible, but extremely hard. The OSes are a good example: despite many years of development, those 'divides' still leak immensely. As a user, I prefer a good UI that's firmly for one audience than one that manages to be both confusing and limiting, like oh-so-many are.
- tomp 14y agoAn alternative: have two separate interfaces, one for everyday settings (= simple), and another for "powersettings" (= configurable). A good example are the web browsers: some have a settings dialogue, where settings are presented logically, and they tend to simplify these dialogues, and then you have the about:config or about:flags page, where you can access a bunch of other settings as well.
- DanI-S 14y agoThis makes sense when developer time is not an issue, but if it is, favour simplicity.
- joe_the_user 14y agoI think you're missing what's good about what the gp is advocating. Even as a power user, I quite likely only want to change a few things "under the hood" and otherwise I appreciate a clean design. Further, the more programmers design an interface "for those other people", the more likely they are to make it purely brain dead. So you find up with two lousy interfaces instead of one well designed one (not just two interfaces take time but because you've started with the wrong attitude).
- lt 14y agoI'd expand - it's not enough to avoid throwing a ton of settings to a user, you have to design so they are not needed at all. For me, the fact that you have to hide the "power-user" options, be it on the registry, about:config or under an "advanced" dialog somewhere is a sign of something much worse. All those toggles increase complexity of the software exponentially as they can be combined affecting each other, increasing the effort of understanding the code, making changes, testing, even the runtime complexity. Lots of developers, when faced with a choice, make it configurable instead of thinking hard about it and making the choice. Developers are never popular when they decide against adding an option. I see it all the time on Google Chrome, or even on the iPhone to name some popular examples. But some choices, even if they are hard to make, should be made.
- DanI-S 14y agoThis is great advice. Chances are, you're not building an operating system. Since your software is less complex, try to figure out the decisions you need to make. It may require a few iterations, but it's the right thing to do.
- billswift 14y ago>Lots of developers, when faced with a choice, make it configurable instead of thinking hard about it and making the choice. It isn't an exclusive-or; if you want power users it needs to be configurable. What you need for beginners and casual users are really good defaults, which means doing the hard thinking to choose them. If you want both types of users, you need to do both types of work. ADDED: It also helps to make the configuration choices discoverable, to provide a path for new users to become power users.
- icebraining 14y agoDefine "needed". Much of the divide between casual vs power users is that the latter will want to use the software in every way possible, many of which you (the developer) won't even be able to imagine. In fact, those decisions are one of the main reasons why I, as a power user, don't use Chrome or the iPhone - because I crash against the limitations imposed by those choices every day.
- stcredzero 14y ago> Poor design. Seriously. Simplicity is really really hard. Much harder than throwing a ton of settings, toggles, and switches at a user. I think this is the key reason why "The Inmates are Running the Asylum." http://www.amazon.com/The-Inmates-Are-Running-Asylum/dp/0672316498 http://www.amazon.com/The-Inmates-Are-Running-Asylum/dp/0672... We programmers are much more immune to complexity than the average person. It's like when I was buying a flute at Seattle Folklife. There was this one maker who was a virtuosic player with amazing walking stick flutes. I couldn't get a sound out of any of them. The maker could, because he was an expert with a very strong embouchure, but it was just impossible for me. I ended up buying a flute from a different maker, who wasn't such an expert player. I could make a good sound on his flute from the get-go.
- fghh45sdfhr3 14y agoI ended up buying a flute from a different maker, who wasn't such an expert player. I could make a good sound on his flute from the get-go. Awww, you gave up :) But seriously, go back to that first guy and learn to kick ass with his flutes!
- freshhawk 14y agoOr you could track this flute maker down, learn how to use his flutes and then teach us what was being done wrong originally. Or maybe you're not interested in doing all that work in return for the expected benefit. Maybe you're just going to give up :)
- zizee 14y agoPerhaps he should learn to get better with the flute he has and then he can graduate to the more advanced tool. Perhaps there are different tools for different levels of experience. Much like software.
- colomon 14y agoIt's funny, it seems that many (most?) whistle makers aren't very virtuosic players. For the most part, I don't think it does their whistle-making any favors. Whatever they win in "ease of novice use" they lose in "ease of serious use", if you know what I mean.
- dredmorbius 14y agoWindows' market advantage is hardly a result of its simplicity or ease of use. And the ton of settings isn't done through toggles and switches, but through Registry settings. Which is sort of like changing gears by taking the gearshift lever to a shop and re-shaping it on a lathe. In the dark, by informing a deaf-blind paraplegic through Braille. The non-technical user has no clue, and the power-user bristles every time they have to deal with it. "Sane defaults" is the best way to accomplish ease-of-use. A mix of autoconfiguration to task-at-hand and reasonable interface expectations. At least CLI and assignment-based config files are both scriptable and manageable in version control (and hence, through configuration management systems such as cfengine / puppet / chef / etch, and source control (git, Hg, etc.).
- kpozin 14y agoYour car analogy made me chuckle. However, I think there are other items that it describes better than the Windows registry. For example, I remember using Ubuntu a few years back and discovering that the only way to change some system font setting (don't recall exactly which one) was to recompile a package from source.
- dredmorbius 14y agoYeah, I recall an internationalization bug that required me to patch and build from source as well. Then again, it was pretty beta code. I'll also add that I'm no fan of GNOME's bug-for-bug compatible reimplementation of the Windows Registry through gconf. At least the underlying data are slightly more accessible, but it's still a massive festering boil. One system that I find works pretty well is WindowMaker. Configuration is through a set of textfiles, but most functionality is exposed through a pretty slick configuration utility. Since all of this is based on Steve Jobs's NeXT interface, I'm not overly surprised that it works pretty well most of the time. When I configure a new desktop/laptop, I just port over the GNUstep directory. Every 6-12 months I may tweak a configuration setting, usually through the GUI utility. But if I want to I've got the full functionality exposed through files. A realization I had a few weeks back is that GUIs are ultimately limited in their surface area and dimensionality. There's only so much functionality they can expose, and in any sufficiently rich interface, some stuff will be buried deeply, and inevitably, two configurations you'll want or need to tune together will be in utterly different branches of the config menus/interface. With a CLI, all dimensions are uniform. If the interface is sufficiently broken, you can write a wrapper around it (a classic example is rlwrap, a readline wrapper around other commands, such as Oracle's utterly broken CLI SQL client). I'll frequently write one-off shell functions to put the argument I want to tweak at the end of a command line to make readline bash editing easier and more convenient. Granted, this is power-user stuff, but it's what makes the shell environment so damned powerful and flexible.