How NOT to Design a Toolbar (Winamp Browser Extensions)

Okay, so it's true that I am a programmer, and pretty darned advanced at that... however... I've spent a great deal of time thinking about user interaction as well, a subject that it seems most programmers prefer to avoid if at all possible... I'm not most programmers...

A few years back I read Alan Cooper's book the Inmates Are Running the Asylum and I recommend it heartily for anyone in software. When I first started reading it, I thought Alan was being pretty darn harsh. I said to myself, "come on Alan! Surely SOMEONE who was a programmer once, during a full moon when the wind was in the west and mystics called on the ancient sages of the lost civilization of Atlantis for guidance, had a decent idea about user interaction. Maybe it was on a Thursday in Denmark in '87."

Old Alan seemed dead convinced that there's an impenetrable iron bulkhead separating the hemispheres of a programmer's brain, making them physically incapable of predicting the desire and/or behavior of a non-programmer. Wait, I take that back, it's not iron, it's made of one of those strange alien substances that you see on an episode of Star Trek where the engineer has to say "I'm sorry, Captain, we just don't have anything that can penetrate it". And it's locked tight such that not even the smallest and fastest of tachyon particles can eek through around the edges to tickle the neurons at the edge and give the programmer some faintest dream-like sensation that he's receiving signals from afar in Morse code.

I disagree. I believe I personally have the ability to see both sides and I honestly think a lot of programmers could, if they wanted. But the more I've used today's software, the more painfully in-tune I become with Alan's frustration. I've also talked to some other programmers and where Alan was very careful to be PC in saying that programmers aren't to blame and that they genuinely want to create useful, helpful tools for the users, I seem to have met and talked with a lot of programmers who are in spite of the recent interest in "web 2.0" and "AJAX" or "RIA", actively HOSTILE toward the people who're spending good money to purchase their software. (Though honestly, I've seen similar pent-up hostility in other industries, so I'm not certain it's unique to software.)

I seem to be different from a lot of the programmers I've met in that I've never shared or understood that hostility. And any time I've noticed that someone was struggling with an interface I designed, I've given serious consideration to what caused that rift. Frequently that consideration has contributed to a fairly large body of work around the idea of eliminating the frustration with software. One salient example of this actually applies to something I did for other programmers (including myself) recently with this 3.0 release of the onTap framework in which I spent several hours weeding through my own code, replacing instances of <cfmodule template="#request.tapi.xhtml()#"> with <cf_html> just to make it more legible for people. I wonder how many other people in our ColdFusion community or even the software industry in general would have taken those several hours to do that, knowing that the existing code was already working?

In other words, I fixed what wasn't broken. But then I've always fixed what wasn't broken. For that matter, I take issue with the notion of "if it ain't broke don't fix it". Given that notion, we would all still be sitting around with candles and keroseen lanterns, using an abacus to calculate our taxes. Hey! Those things still work! They didn't need any fixing! There are still AMC Gremlins on the road, but I'm not going to drive one.

But that change in particular was a convenience for myself and for other programmers -- it was something to simplify our lives, not the lives of our clients. Generally speaking, the things I do to make the lives of my clients easier take more time and are much harder to accomplish. Which may be another part of the reason why other programmers don't tackle a lot of those interaction issues, because it takes time and given that they're already disinterested, they're even less inclined to spend much time on those endeavors...

But I digress...

I'd been waiting (not very long, but I was) for a winamp plugin for Firefox. Why? I have Firefox open all the time for work, and it would be more convenient to have the pause & play buttons there than to go through the icon in the system tray, which while functional, doesn't provide a very convenient interface via the right-click context menu.

And now it's here! Huzzah! And my god, it's CRAPTASTIC!

For starters, half of the items on that toolbar are things you're not going to use. Skins and Plugins, right off the bat! Who changes the skin for their radio often enough to want it on the toolbar?! Much less the search. I understand that the search feature was probably an outcropping of the ability to search your media library or possibly radio station lists, but it defaults to searching the web! Which you probably already have in your browser! (Yep, defaults matter.) But even if it didn't include the web search, there are buttons on the other side of the toolbar to open the media library where that search would be more appropriate, yet isn't found. (As an aside, who thought building a complete browser into the WinAmp player was a good idea?)

You can't see it in the screen-capture, but there are tool-tips on those buttons on the right, the ones that you can tell from conventional symbols are for "play", "pause" and "stop", you know, the ones you actually want in this toolbar. The tooltips don't display what the buttons do. Instead they display the title of the current song! Umm... Aside from the fact that I'm not sure why moving my mouse over those buttons indicates that I'm interested in the song title moreso than moving my mouse over the toolbar in general, some of those buttons do things that aren't intuitive and could really use to be labelled.

Just to the right of the "next track" button, there's a button that looks to me like "eject", which I thought was odd... It doesn't eject the CD tray like I expected, it opens the file dialog for you to select a playlist. Great IDEA! Awful execution! Label the button for starters... but then there's the ShoutCast item to the left, which is also part of what I was actually interested in a WinAmp toolbar. That lets me switch the radio station (which I should but can't also do from the previous / next track buttons, since my playlist contains all radio stations, instead of individual MP3s). The open menu in the above screen capture is the ShoutCast menu, but let me rephrase, it almost does what I want. It does let me select the station, but there doesn't appear to be a way to edit the list of available stations, and they're not tied to anything significant or useful, like oh I don't know say... a playlist? Or maybe even stations I've listened to recently?

The "stations I've listened to recently" would be nice, like the "files I've edited recently" that we get in things like Photoshop or Word. It's also something I've integrated into the contact manager I've been working on this past year, particularly uncommon amongst web applications. But to simply slap a menu of radio stations up there in such a random and hideous fashion is just cruel and unusual. Let's let them change the station! To a predefined set of random stations we choose in various different languages they may or may not speak. WTF?!

Give me a list of recent and/or playlist items, let me change the playlist, label the buttons and over there on the left where you're going to remove all that crap nobody will use, add in a HUD for the title of the current song that shows the media search to add items to the playlist when you click it.

If I'd been paying closer attention, I'd have expected these issues, since they were already there in the Internet Explorer toolbar. Oddly, although the IE toolbar was available first, it seems pretty obvious the folks who work on WinAmp are Firefox fans because the IE toolbar has a different set of graphics with really bad anti-aliasing. Maybe what WinAmp needs is some good stiff competition. Someone who knows how to create a decent interface.

So okay, this article isn't related to anything specific with regard to the onTap framework or even ColdFusion programming. It's just a very good example of very bad interaction design and I think programmers in general (self included) can use to learn from these kinds of mistakes. These are issues that affect us daily. An interface that keeps tools you rarely use constantly in your face for example, like the skins & plugins options in this toolbar aren't helping anyone. They're at best a distraction from the task at hand most of the time and actually, empty space in the interface would be preferable to distracting people with things they don't need. And a lot of the ColdFusion software I've worked on over the years suffers from that same issue, so I think it's a good thing to remember when we're designing our software. A fly-out menu containing lots of options for different things you could do for example might not serve the user as much as a link to the most frequently used item and neighboring link to a page containing navigational access to less frequently used tools. There may be situations in which the fly-out menu is really useful and makes a lot of sense, but most of the time I would wager if you can avoid it, your users will thank you.

Comments
MNVikesFan's Gravatar I actually worked on this toolbar, and glad to read your suggestions. Sorry you thought it was 'craptastic.' This was the first iteration of the Winamp Toolbar, and we'll think about some of your suggestions for future versions.
# Posted By MNVikesFan | 3/12/08 8:46 PM
ike's Gravatar Oh hey! Sorry ... not sure what I was thinking, I actually hadn't expected any of the folks who work on WinAmp to read this blog. :P I guess I tend to expect just ColdFusion programmers to read it. Anyway I'm hoping you didn't take any of my comments personally, I know I can be somewhat abrasive when I'm venting my general frustrations about usability.
# Posted By ike | 5/9/08 10:01 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.5.006. | Protected by Akismet | Blog with WordPress