Features vs. Usability

There seems to be an ongoing debate in the software world about features. You know, the “new toys” that come with software each time you get a new version. There was a time where you would always ask “what new features does it add?” when upgrading a software package. The end result of this practice was bloated software with more features than anyone could ever manage to use. A more modern practice is to “remove features” hoping to simplify software for the end user. Asa Dotzler’s recently said:

“I’d be pleased as punch if we could remove a couple features for the upcoming Firefox release. A feature is a flaming hoop we make our users jump through and if we’re doing our jobs — writing software that actually works for people — we’d be removing those hoops, not adding more.”

I’m going to respectfully disagree with Asa on this one. Partially on a technicality, and partially on theory.

First of all, I’d like to distinguish the difference between features and usability. Features can have a negative impact on usability, but there’s no written rule stating that must be the case. For example, web browsers added support for the PNG image format without negatively impacting the user experience (I’d bet most end users don’t even know about PNG, but it silently works). That is a clear feature. There’s really no UI to go along with it, so usability is not negatively impacted. No “hoops” to jump through as Asa put it.

On the other hand, you can have a “feature” like Microsoft Office’s Mail Merge. It’s messy, has an awkward UI, and doesn’t always behave as the user would expect. It’s often considered to be one of the worst features in the entire suite (besides Microsoft Access with is a UI disaster). I think that’s an example of the ugliness Asa hopes to rip out (though different product).

I disagree with the philosophy of removing features, instead I believe the best method is to revamp the user experience. For example, the “new window” ability in web browsers was a problem. Managing windows is a sore spot in many operating systems (in particular pre-Windows XP where it would appear as small specs rather than collapse into groups when many windows were open). Rather than limit the web browser to one window, a clever solution was to use “tabs”, effectively creating many windows within one. This alleviated the sore spot in most operating systems, and provided a more inclusive way of managing websites currently being visited.

About a month ago, I proposed we cut out the current bookmarking system and replace it with a more modern and usable Intelligent Bookmarking system. Such a system is actually adding many features (including machine logic), but would improve the user experience by getting rid of awkward menu’s and by intuitively letting the user auto-program (without any effort on the user’s part) the bookmarks system. It would essentially minimize (if not eliminate) the need to manage bookmarks. Is this adding or removing a feature? Would this be adding or removing hoops?

Innovation is about adding features within intuitive yet minimal UI. If you want a great example check out Mac OS X. It’s loaded with it. Lots of features to support everyone from kids and computer novices to expert hackers. It’s a great OS for that reason. It’s also one of the persistent problems with Windows and Linux. Both have some good features, but they are implemented in ways that are very hard for people who aren’t geeks to understand and use. rsync is way ahead of it’s time. But try explaining rsync to someone who doesn’t use a computer to often. Even most wrappers I’ve seen to give rsync a UI do a pretty pathetic job. They are complex, use technical language, are confusing and intimidate the user. Want to see why Apple’s .Mac does such a great job? Because it’s simple to use. It adds a feature (backup), but makes it easy to use (no hoops). Another great example is the PalmOS. It had two handicaps (no effective keyboard, and small screen), not to mention for the longest time PDA’s were mainly grayscale. But still it provided a robust usable experience with an easy to use UI.

Google has done a similar feat. Their homepage is still extremely plain, but you can do a surprising amount with their search box. They have kept a minimal UI, but allowed the user to do great things with it. They can add entire features without expanding on the UI. Google Maps added hurricane Katrina coverage with a single button. They added movies in a similar intuitive way. They didn’t create new services, vast menu’s, registration for these features. They integrated them tightly and made them easy to use. I don’t need to really learn anything new to use these add-ons. They just work.

Can mature products change? I see no reason why they can’t. Take a look at Netscape 6. It was a bloated immature product. Slow, very unintuitive and had menu’s that could confuse even pro’s. It took time, but it got separated from it’s sibling mail client, and both matured into much cleaner applications (Firefox and Thunderbird respectively). Are they done? I don’t believe so. They can still slim down their UI more. Bookmarking is in my opinion the ugliest part. The only reason it’s acceptable in it’s current state is because nobody has a really good system (yet). But there is still room to improve.

In conclusion, I see no reason to remove features, or even block features from becoming part of a product. I think the essential requirement is to get beyond the “ooh new toy” feeling and demand that the UI be minimal, and intuitive. Features are important. Could you imagine a web browser without FTP support? Needing to open another program to download a file. That wouldn’t be intuitive. But integrated into the browser and using the same download manager as HTTP downloads allows it to integrate so well most users forget what they are using. The same can be done for BitTorrent. We could add the functionality without causing a bad user experience. It’s essentially another protocol. The key is to not use a new or awkward UI, instead using the Download Manager perhaps just modifying to reflect the upload dynamic of the protocol. Other than that, it should should be completely transparent to the end user. They shouldn’t be able to distinguish what protocol they are using in any other way.

Features are good. They set Firefox apart from others, and attract users. What bothers users is features that don’t have a mature user interface. The solution should be to fix the interface, not drop the feature.

21 thoughts on “Features vs. Usability

  1. The 95% case just wishes that the JavaScript console had a better interface? I don’t think so. For the overwhelming majority of users, it’s nothing but in the way no matter how mature the user interface.

    - A

  2. @Asa Dotzler: JavaScript console has a stratigic value to many. First for small time web designers it’s useful, and they wouldn’t know to custom install it. And for end users it’s sometimes used when a webmaster wants more information about a compatibility complaint. I had more than one who was aided by me dumping the error into an email for them.

    What makes the JS console great is that it’s only an option in the menu (no 10 points of integration). And technically that could go away (I personally call it via a bookmark for “javascript:” in my Bookmark Bar.

    I think a bigger issue is something like the current bookmarks system. Or the still somewhat confusing (tough easier than hand editing) about:config.

  3. I think the challenge for Firefox 2.0 is this: It is those of us that are considered “geeks” and on the fringe that are driving the adoption and use of Firefox by the “non-geek” community. I don’t use the Javascript console myself, but fully appreciate the outcry from thousands of people who use it daily if it was “ripped out”. That is a huge problem for Firefox as while those thousands of people are statistically ‘insignificant” their influence over the general browser population is huge, and anything that gives them a bad feeling towards Firefox is NOT benificial!

    In the end, I think it is impossible to design an interface that pleases everyone… What is so wrong with a simple pref that says “advanced menus” that is off by default, and for those of us wanting more, we simply flip the switch and have all these additional tools at our disposal.

    And don’t go down the path of “well, that’s for an extension” The extension system is powerful, and I use a dozen of them, but there are certian features and flexibility that are needed in the core product…

  4. “In the end, I think it is impossible to design an interface that pleases everyone… What is so wrong with a simple pref that says “advanced menus? that is off by default, and for those of us wanting more, we simply flip the switch and have all these additional tools at our disposal.”

    I agree. For instance, there could be a Developer Tools menu or something similar. Safari, for instance, has a debug menu that contains the DOM tree, the JavaScript Console and a User Agent Switcher. You can enable the menu with a simple command in terminal. Having something similar in Firefox would be great.

  5. The reason I don’t understand the “remove the JS console” argument is that nobody has been able to show how it interferes with average joe. At this point it’s only 1 menu item (which isn’t really necessary since you can access it by visiting javascript:). How does 1 menu item negatively effect user experience? Especially considering the scope of things like the sometimes confusing password manager, or bookmark system.

    Removing things just to say you cut out X items doesn’t fix any problems. Unless the changes positively improve the product… your just wasting keystrokes.

  6. Well, you ask how one menuitem can interfere with Joe.

    Maybe not that menuitem specifically. But the fact of the matter is that the tools menu is getting a bit too long as it is. Removing JavaScript console would make it 10% shorter, with the default installation.

  7. David: i’m not disputing the menu option, I’m disputing the feature (which some want removed).

    The other issue is View Source (which has been in every browser).

  8. “JavaScript console is a total dev/geek feature, and should/could be ripped out of the default installation.”

    It’s a dev/geek/tech-support-person feature. Removing or hiding the menu option for it would be fine, but there needs to be some way of the user passing the information onto a dev/geek person when they need help.

    It could be changed to a reporter-type thing where the user just has an option to send off a log file without actually needing to see the content (and then of course offered as an extension for geeks), but if you just rip it out then you prevent geeks providing support to the 95%, which isn’t good.

  9. Removing the javascript console would be the the last straw that killed extensions.

    Maybe I’m overexagerating a bit, but whenever one of the extension I have written breaks or is in conflict with another extension, I ask the ‘average joe user’ to copy past the errors they see in the javascript console.

    Hell, I even have to tell them where it is to do that, they do it, and done, I can fix their problem.

    While I admire Asa’s goal and view on ‘simplifying’ firefox. He must remember he’s viewing this from his own small window.

    I could go on and on about how the majority of Firefox users are smarter than the average IE user, how it’s important for debugging extension, etc, etc. But I won’t.. all I ask is, Asa… let it go… there are hundreds of other places in Firefox that need to be polished and or fixed/removed, so let your obsession go! (You’ll sleep better, I promise!)

  10. What utter madness. Keeping the JS console for the sake of tech support is like shipping debug builds by default. The only person who is important when considering what the ship is the end user.

    PNG support isn’t a UI feature, so it doesn’t count. Intelligent Bookmarks is an ideal example of how to add functionality without messing up the UI, so it’s definitely a good shipper.

    Almost everything can be explained in terms of “fix the interface without removing things”. The Go menu, for instance, is just an awful way of accessing recent history. In this particular case it serves no purpose whatsoever, so should be excised.

    The Go menu, bookmarks-in-the-sidebar, Live Bookmarks and all the mail integration besides “send” should be cut out of the default build. Context menus everywhere should be viciously attacked. The Options UI should be given no mercy. None of these things make Firefox less usable. They might very well make Firefox sufficiently great that it makes Epiphany obsolete, which I would like very much.

    – Chris

  11. “Keeping the JS console for the sake of tech support is like shipping debug builds by default. The only person who is important when considering what the ship is the end user.”

    Er… so you’re saying that end users don’t need or want support? I’m not saying users want the JS console, I’m saying it’s needed until there’s a better way of getting the information out of it to people doing support.

  12. Please, not the JS console thing again.

    So what if 95% of the users don’t use it. For the remaining 5% of the users (the developers which actually make the content that the remaining 95% consume) it is not just a gimmick, it is a very useful tool. They shouldn’t be told to resort to extensions for every little thing.

    Robert, implementing new features like Google does it can seriously hurt the discoverability of the feature. And if the users don’t know about feature x, the usefulness of feature x decreases a lot. For example, they let you search using inurl:something, but you have to know it is there, you can’t just find it. Their documentation about that isn’t particularly great either, but ideally it can be found without documentation anyway. So you’ll have to watch out with overdoing the ‘smart addition’ of new features.

    Btw, I really love you bookmarks improvement suggestions, and I hope they will be implemented!

    ~Grauw

  13. Er… so you’re saying that end users don’t need or want support?

    Outlook Express insists on giving out a mangled string of completely opaque internal error messages when it fails to carry out some action. A trained support agent can identify the experienced problem and prescribe a solution just by having this string read out over the phone. Does this mean that the OE error results box isn’t a zombie abortion from hell? No, it does not.

    The JS console isn’t and wasn’t ever meant as a support mechanism. Its intended purpose is to have a quick syntax checker for hackers. Hackers are not normal people. Kill-kill.

    – Chris

  14. The problem with killing the JS console is there would be no way to aid end-users with problems. Without it… you insist on them fixing problems on their own, as they can’t provide an error.

    I don’t think removing error dialogs is a good way to improve a product.

    If MS changes the color of the blue screen… that doesn’t fix the crashes.

    /wonders why this hit planet again.

  15. Bob: “You know how there is that little lever under the steering wheel that pops open the hood? It needs to go. My car has so many buttons and levers as it is I really wish that Toyota would have left that thing out. I mean, 95% of the people I know never touch it. Sure, geeky car guys use it, but that lever just frustrates me! When I get into a car I want to see a steering wheel a gas pedel and a brake pedel. On the dash there should be a spedometer. A red light should come on when I’m getting low on gas. That’s it.”

    Sally: “Does it really get in your way though? It doesn’t bother me, tucked away under the steering wheel. I mean I only ever see it when I’m pulling the cat out from under the seat in the parking lot at the veterinarian.”

    Bob: “Sure, I see what you’re saying… out of sight, out of mind… Well, I guess its a little different for some of us. When I’m driving I think about it, the lever, that is. I know its there. Its hard to explain but its makes me feel edgy. My car is so complicated as it is, I just wish I could…”

    Sally: “But Bob, its a car and cars are complicated things. Most people seem to be able to use them alright. Well, I guess I could relate to your situation better if the lever were instead a big flashing red button in the middle of the dash, but its not, its out of the way, just like is should be.”

    Bob: “But its still there, which doesn’t seem right. I don’t use it, most drivers I know don’t use it, and cars should be designed for drivers right?”

    –POW!!–

    Sally: “Bob! What was that?”

    Bob: “Err, its just…”

    Sally: “Bob! Look! Smoke is coming from under the hood! Pull over! Oh, no! …what should we do!?”

  16. Pingback: BSBlog » Blog Archive » Mail Merge

  17. “Outlook Express insists on giving out a mangled string of completely opaque internal error messages when it fails to carry out some action. A trained support agent can identify the experienced problem and prescribe a solution just by having this string read out over the phone. Does this mean that the OE error results box isn’t a zombie abortion from hell? No, it does not.”

    Indeed. But do you think it would be better if it displayed no error at all, and just silently failed, so the user sits there clicking buttons and getting no feedback at all?

    The bookmark manager UI sucks – should we strip the bookmarks feature out of the browser completely?

    I’d be quite happy to see the JS console disappear from the UI in its current form, but it should be replaced by something which can do the support job better.

  18. [quote]Indeed. But do you think it would be better if it displayed no error at all, and just silently failed, so the user sits there clicking buttons and getting no feedback at all?[/quote]

    Ideally it would fix the damn problem itself. It astonishes me that mail clients still aren’t intelligent enough that if, say, authentication is disabled and the server returns an error indicating that auth is required to send mail the client will spit out an error message (ranging from useful in Mozilla to completely hopeless in Evolution) rather than turning on auth and trying the user name and password used for incoming mail. The issue is removing the cruft in most cases. See the m/b prefs removal.

    – Chris

Leave a Reply

Your email address will not be published. Required fields are marked *

Connect with Facebook

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>