Monday, November 29, 2010

Project SoundBoard

My dad and I have this tradition whenever we hang out: we each choose a couple of albums that we love, and we just put them on. We sit, listen, analyze, compare. It's a lot of fun for us but probably no one else. I mean, seriously, who does nothing but hang out and listen to music? Still, this is something I've wanted to do with some friends for a long time. So last night I came up with an idea that would allow me to have my cake and eat it, too. I know there are friends of mine who love music, so I thought of a way to do this that could be fun for everyone.

I figured that this would work best if I combined it with another activity, since I'd probably have more luck inviting 10 people to a ritual killing than to sit in silence in my living room for hours on end. Board games seemed like an obvious choice, hence the name Project SoundBoard (if you're *facepalm*-ing, then I've done my job correctly).

Basically the idea is people would come over on a biweekly basis and bring food/booze/games and, of course, music. Specifically, they'd bring over an album that they really loved and wanted to share with people. Albums would get played in a random order, with preference being given to those who didn't get to play something the previous meeting. We'd keep going until people got bored and wanted to go home. Good music, good games, good people. Not a bad idea, no?

I field tested it with a small group of friends whom I felt would be more likely to be into such a thing, but unfortunately it has so far drawn more crickets than participants. But there has to be someone I know that's interested in this kind of thing. I mean, I'm not that weird, am I? (... Don't answer that.)

Sunday, November 28, 2010

On Questioning Authority

Being an armchair quarterback is, at the very least, an American tradition if not irrevocably part of the human condition itself. It's really easy to question the actions of someone in charge - be it the President, a Senator, a Mayor, your boss, etc - and to say what you would've done differently. We all do it. Myself included. And why not? We (presumably) have most, if not all, of the same facts at our disposal. If we can see the solution, why can't they?

Yesterday, I was thinking of one of the pearls of wisdom that Bill Adama (from the re-imagined Battlestar Galactica) sometimes produces (usually as if it's by accident), and I couldn't help but think of another. I'm sure many of my readers (all 12 of you) know the show but those who don't may need a little context; I'll try not to give too much away. At one point in the series Adama is no longer in command of the Galactica and his XO takes command of the fleet. Under his command... well, let's just say things don't go so well. One of the reasons is his wife, concerned mainly with herself and her own social status, keeps manipulating him, second-guessing any decision that might make him (and her) look "weak." She is doing exactly that during a conversation with her husband when Adama unexpectedly walks into the room, interrupting them, unintentionally eavesdropping on the meat of the conversation.

After she excuses herself, Adama says to his XO: "Never had much use for people who second-guessed my decisions. Especially if they've never held a command. They don't understand the pressure."

I believe in Timothy Leary's mantra "Think for yourself; question authority." I think it's everyone's duty to do so. Many leaders - the good ones, in my opinion - even welcome it. But we should remember that we often lack context - of the situation, of experiences, of knowledge, etc. As a result, when we question authority I believe we should default to doing so with respect. Just try to remember: if authority can be wrong, then so can you.

Wednesday, November 24, 2010

UX Quickie: Toggle Consistency

This is something I see all the time, most commonly in Android application menus and video games (anecdotally speaking). When there are several buttons/switches that toggle things on/off, they are often done inconsistently. Here's an example from the otherwise fantastic Dragon Age: Origins to demonstrate what I mean:


These two toggle buttons are in the upper left of the HUD, right under the icons for each character in the party. As one would expect from their placement, they allow you quick access to party-wide commands. The one on the left lets you toggle back and forth between "Select All" and "Select One" and the on on the right lets you toggle back and forth between "Move Freely" and "Hold Position." If you play RPGs or strategy games you'll likely immediately see the utility of these however, every time I come back to the game after a long time off, they always confuse me. Here's why:

  1. The "Select All/One" button's icon indicates the result of the action; it attempts to communicate what will happen when the button is clicked.
  2. The "Move Freely/Hold Position" button's icon indicates the current state; it attempts to communicate what is happening now.
Can you see why that can get confusing? Two toggle switches right next to each other, both of which toggle back and forth between only two options, but are difficult to figure out because their feedback methods are perfectly out of phase, resulting in cognitive dissonance.

If you're building toggle commands into your website/software, double check that the feedback/communication is consistent. Which method is best? That's hard to say. When in doubt, do some user testing. Honestly the method you use - whether it's one of the above or something else you've come up with - matters a lot less than making your method consistent because, even if it's confusing at first, the across-the-board consistency means people only have to figure it out once. 

Monday, November 22, 2010

Song of the Moment: "Hide and Seek"


"Hide and Seek" by Imogen Heap, found on Speak for Yourself

I tend to be a real sucker for layered vocal harmonies. It follows, then, that somber, moody, A Capella pieces tend to produce some of my favorite musical moments. The end of The Canyon Behind Her by dredg and A Perfect Circle's cover of Fiddle and the Drum are two of my very favorite examples, along with this masterpiece by Imogen Heap.

The layered vocals, the dynamics, the deliberate morphing of her voice into sounding ever-so-slightly like an instrument... oooh, sheer heaven. This song makes me want to grab a good good, hop in the tub, and just play it on repeat for about an hour.

Wtf Metro

Miss Cranky Pants over a Publicola is right to lambaste the county for pulling real-time bus info out from under anxious bus riders on this unusually snowy day in the Pacific Northwest. Seriously, Metro, that was just plain bone-headed. You've clearly planned ahead for this storm much better than you did for Snowpocalypse 2008, I'll grant you that, but you've clearly not correctly anticipated the needs of your riders, which is arguably your first priority.

It really wasn't that hard to do this right. You add and remove routes from your database all the time, and clearly OneBusAway already anticipates this. Would adding snow routes to that database and letting things continue as usual really have been that hard? I mean, you've only had 2 years.

I've Got a Blank Spot

Some time ago I bought a black 16"x16" picture frame for a poster that I thought was 16"x16" but actually turned out to be 17"x17". However, I decided to keep the frame because I liked it and because I didn't think it would be that hard to find a poster to fit it somewhere down the line.

Truth be told, it had just sat in my closet for a long time and I'd completely forgotten about it. Now that I've just moved to a new place - and one with less closet space - this empty frame has become more apparent. It just sits on the floor, leaning against the wall, all day, every day, blank, empty, alone, staring at me, wondering why I don't love it.

Today I finally decided to do something about it. Any project manager/usability professional worth their salt can write a pretty good use case/scenario around this particular need, because my needs and goals are extremely well-defined here. Hell, my information need/goal is so well-defined, I doubt if anyone reading this, irrespective of profession, would be surprised at the information seeking behavior that results from my problem: I need to browse 16"x16" posters so I can choose one I wouldn't mind framing and putting on my wall.

In other words, whether by searching or browsing, I need to first restrict the subset of posters on a site to the ones that are exactly 16"x16" and then use my usual human fuzzy logic to browse through and pick one I like. Simple, right? So simple, in fact, that it's not actually possible to do on any of the major online poster stores.

Go ahead and try. A Google search for "posters" will yield the following stores on the first page of results:


None of them support the kind of information seeking behavior I'm talking about. I grant you that trying to find posters to fit a specific frame can be dismissed as an edge case, an idiosyncrasy that perhaps wouldn't be in the "80% case." But is it so crazy to think that people would want to be able to browse by size? Or at least sort search results by size? Is it really so rare for people to look at a blank spot on their wall and think "I'd like a poster that'll fit right there" and then go out in search for one that'll fit the space? Common sense tells me it isn't (but hey, I've been wrong before).

Two of the sites seem to offer this ability but then soon reveal themselves to be false prophets. Here's the homepage for IcePoster:
Hey, baby, you're just what I've been looking for...
Ignoring for the moment that this site seems to deal exclusively in celebrity posters, thus limiting my choices more than I'd like, at first glance that top banner seems to suggest that you can get most posters on the site in a variety of sizes. That seems like a pretty good start. So I click on a couple of the names featured on the front page, and the sorting options for all of them are the same:
... damn beer goggles.
As it turns out, this site isn't going to help me out, either, as it doesn't quite seem to offer all the options its homepage originally promised. I will give it some props for giving customers a choice on poster sizes for pretty much everything they sell, however. That choice at least attempts to solve the "choosing by size" problem by making size not matter - "you can choose any poster you want, and chances are we can give you a size that'll fit the space you're thinking of."

BareWalls comes so close to allowing the kind of information seeking behavior that I'm talking about that its failure to deliver makes it so much more frustrating. I noticed that BareWalls is the only service to have a little "Advance Search" option on their search engine. I clicked it and almost shouted in glee when I saw the resulting page:
Sweet!
Look at that! I can narrow both width and height to exactly what I need! And I can even specify a price range, something I honestly hadn't quite thought of until I saw it but turns out to also be kind of an important consideration. So I fill in the fields:
Narrowing my seaaaarch, la di daaaa
And I hit "Search":
ET TU?!
There are two reasons why that result is really, really bad UX:
  1. The user (me, in this case) had no idea this was required. If a field needs to be filled in before a search can work, they need to tell users in advance. I'm actually really surprised I even have to mention this since this is like, web forms 101. 
  2. It just doesn't make any sense. Why do they need a keyword? In the context of my information need, a keyword isn't important to me, so why is it important to them? Seriously, it's easy enough to get a database to return all the relevant rows based on my search sans a keyword that I can't think of any reason why they'd flat-out require this for every advanced search.
Oh, well. I guess finding this poster will take more work than I thought.

Monday, November 15, 2010

Facebook Events Upgrade Needed

Today the Twitterverse and Bloggospher are abuzz with news about Facebook Mail. It sounds... interesting. But, after reading about it, I don't "get it." Maybe I'm not supposed to? I guess I'd just rather they be spending time fixing Facebook Events.

Don't get me wrong, I love Facebook Events - it's pretty much the easiest way I know to invite people to things. Pretty much everyone I know is on there, I can add people to the event by browsing/searching for names rather than trying to remember email addresses, co-hosting is easy since I can add someone else as an admin, and I can push the events calendar feed to my Google Calendar so the events have some context. That said, there are some really obvious features that are missing:

  • Conflicts - When I get a new event invite, Facebook will display it to me on the homepage. What it won't do is tell me if said event conflicts with other events. This should be something that's really easy to do and is sorely needed because the context of "what else is going on that day" is usually pretty important when figuring out how you respond.
  • Scheduling - I'm planning a housewarming party in my new place, and the first day I picked just happened to be a day that no one could come. Event planning this way is often a crapshoot. Wouldn't it be nice if Facebook helped you pick dates based on availability? I mean, I realize this would be limited, but it'd at least give you something to work with.
  • Reminders - Self-explanatory and a no-brainer. Pretty much every calendaring system worth it's salt has some kind of reminder feature and I'm constantly perplexed at it's absence here. I can't even get around this using the version of the event in my Google Calendar, because if someone marks the event "private" (which happens a lot) Google can't actually access any details or metadata and therefore can't decorate it with it's own.
  • Nagging - I used to run a group on Meetup.com and one of the features I really loved was being able to automagically nag the maybes and not-yet-respondeds. Just once, of course - there's a fine line between reminding people to commit and being an ass sometimes. But this is very necessary for all kinds of reasons. The first is that people often procrastinate and for whatever reason don't respond to the event right away. (I do this all the time.) The second is that if an event organizer is trying to figure out how much space/food/drink/Rockband copies are needed, these people will be especially interested in letting the stragglers know that they need to shit or get off the pot.
  • Integration - Imagine if you could manage and respond to Facebook Events directly from the comfort of Outlook, iCal, Google Calendar, or whatever it is you use to manage your daily life. Hell, I'd be happy if they'd just realize the account I'm using to pull data into my Google Calendar is the same email as my Facebook account so that Google can show Facebook events as something other than "busy."
[/rant] :)

Wednesday, November 10, 2010

Creating Strong, Usable Passwords

Ah, passwords. Every system admin hates weak passwords, and every user hates having to remember 35 million strong passwords in their heads for every tiny little website that they use, and never the twain shall meet. Or will they?

I've got a lovely little system that ensures I have a strong, unique password for every website/service I use, but almost never forget a password.

Full disclosure: most of these ideas probably aren't mine. I'm sure I've compiled this system from a lot of people I've talked to and things I've read over the years. I've just been using it so long that I don't quite remember how the hell I came up with it. But I'm gonna share it all with you just the same.

The secret is to keep some knowledge in your head and some knowledge in the world, allowing you to lessen your cognitive load. Instead of remembering a bunch of passwords, you're basically going to remember a formula for deriving your passwords. The basic formula is like this:

[remembered passphrase] + [connector] + [service-specific abbreviation]

Here's how to do it:

1. Create Your Passphrase
It's cleverly called a passphrase as opposed to a password because it's a single, made up word generated from a phrase as opposed to a real word slightly jumbled. It's a bit safer as someone attempting a dictionary-based attack will have a harder time guessing the passphrase.

Doing this is pretty simple. Just write down a phrase that's relatively easy to remember. Perhaps it's a favorite quote, or about a summer you spent in France. It really can be anything that you're fairly confident wouldn't be hard for you to recall (and, if at all possible, wouldn't be something people would easily associate with you). For instance, let's say you choose the now-famous Spiderman quote "With great power comes great responsibility."

Now that you have your phrase, represent each word with a character (or series of characters) and eliminate the spaces. A very simple way to encode the above phrase would be:

wgpcgr

This isn't a word in any dictionary, so you're already ahead of the curve if you stop right there. But, if you can, try and make it a little more complicated. A good strong passphrase will have at least one of each of the following:
  • an uppercase character
  • a lowercase character
  • a "special" character
  • a number

Using a leet alphabet you can easily translate letters to numbers or special characters. Here's another pass at translating the phrase "With great power comes great responsibility", but applying the guidelines above:

wGPwRc(4

In addition, I shortened "power" to "pwr" instead of just "p" to make the passphrase a bit longer. Shoot for somewhere between 6-8 characters for this phrase since 8 characters is about as long as you can be reasonably expected to remember (also some archaic systems - most notoriously university systems - still have the "type a password between 6-8 characters" limitation, and in those cases you can simply use the passphrase instead of the full password system we're generating here).

2. Create a Connector
The connector is the thing you use to bridge your passphrase with the abbreviation (discussed in the next section) to create your full password. This can be as simple as a dash ("-") or a plus sign ("+") or whatever you want. Have fun with it. It's just got to be a  character (or series of characters) you can remember. If you're stressing out about this, I'd highly recommend just going simple, as the end result of this process will be a very strong password no matter what you choose here.

For our running example, I'll choose something relatively simple to be our connector, the dash

-

3. Thinking up Abbreviations
The last part of this is to think up a prefix/suffix to your passphrase that's based on the site or service you're using. It doesn't need to be complicated. it just needs to be something that is strongly associated with the service and something you can remember. Go with the first thing you think of. As a simple, example, let's say your email password prefix/suffix is "em", or "@" if you're feeling clever. Again, the key to here is the ability to keep this knowledge in the world - it should be immediately recallable when you're sitting at that website and about to type in your password.

Our running example will use the example of an email password, using the abbreviation:

em

4. Putting it All Together
Alright! You've got your passphrase, you've got your connector, and you've got a service-specific abbreviation. To put it together, you've got a few options. You can use your abbreviation as a suffix:

passphrase + connector + abbreviation

a prefix:

abbreviation + connector + passphrase

or you can use both in some creative ways. Here's a few ideas:

abbreviation + connector + passphrase + connector + abbreviation
1st half of abbr + conn + pass + conn + 2nd half of abbr

Let's make this concrete. Remember, our encoded passphrase is wGPwRc(4, our connector is -, and our abbreviation for our email program is em

Here are the possible passwords that result from the formulas above.
  • Suffix formula: wGPwRc(4-em
  • Prefix formula: em-wGPwRc(4
  • Prefix and suffix formula: em-wGPwRc(4-em
  • Half-and-half formula: e-wGPwRc(4-m

Just make sure you pick one formula and stick with it. If you keep switching the formula, it'll just be self defeating. See? Using this method you can have your cake and eat it too. And I'm ending this blog post here because now I want cake.

Tuesday, November 9, 2010

Netflummuxed

This is Netflix's current home page.
Digital crack.
See the problem? No? How about now:

Netflix streaming is down. Has been for a good 30-45 mins from what I can tell from the Twitter stream.  They know about the issue, they're working on it, but they're not alerting the many, many, MANY of their customers that still don't know about this yet through the one place you can almost guarantee all of them will go: their website.

To ensure good UX, you can't just design it and then walk away. You need to make sure you have the systems in place to respond to unanticipated events. You don't have to fix it before anyone notices or even be able to anticipate every event ... you just need to expect the unexpected and be amongst the first to alert your audience when it happens.

Tunesday, Vol VIII: Dry Kill Logic, Head Like a Kite, A Fine Frenzy, more

Rent!

I recently moved into a new place (which explains my blogging absence - sorry about that everyone), and that obviously implies lots and lots of changes. One change in particular has inspired a UX-related post: changing who I pay rent to. I find this to be an interesting UX story because it's not simply about me interacting with a machine, it involves me interacting with both a machine and a person. A lot of people building software don't think about the fact customer service can factor into a user's experience, but it most certainly can.

Aside: Before I begin this review/critique, I'd like to first mention that Verity Credit Union is an excellent bank and that my experience in this case is not typical of the general experience I have had with them over the past few years. In fact, if you're looking to change banks (and if you're not already with a credit union I'm not sure why you wouldn't be), I highly recommend you consider allowing Verity to safeguard and manage your money.

In the past two places I lived, I used Verity's bill pay service to automatically schedule my payments to my landlord. Each month on the 1st they'd get wired the appropriate amount of money directly from my account to theirs. It was pretty sweet; they always got their rent on time, and I never really had to think about it.

The new apartment building I moved into isn't set up to make those kinds of transactions, but the rental agent/receptionist on staff told me that setting up something similar that worked via snail mail instead shouldn't be that hard. I don't have any checks (I haven't written one in like, 3 years) and I don't want to have to bike up to Wallingford just to pay rent every month, so this sounded good. I go to my credit union's website and I try to make another Payee like usual:


There seems to be only one form available, which is kind of confusing because things like "Name on Account" and "Account #" aren't necessary if they're just mailing a check to someone. I try moving forward just leaving it blank, but the form won't let me. I use their in-system email service to shoot them a message and ask how to set up a snail mail version of paying bills. The message I got back almost literally sounded like they were talking to a 5 year old. Here's a snippet:
1. Click on the "payees" link under the "payments" tab. 

2. Please choose  "An Individual" - If the payee you wish to add is an individual (e.g. friend, family member, etc.), select the "An Individual" radio button and then click the "continue button." 
Now, I've worked a help desk before and I know exactly why they do this: they cater to the least common denominator so that they can be certain that they're understood no matter who's on the other end. But just because I understand it doesn't mean I don't hate it and find it mildly insulting. I mean, people just don't talk to  each other like that in every day conversation. Imagine your friend dragged you to a party at a stranger's house and you asked the host where the wine glasses were. How would you react if instead of him just telling you "cabinet left of the sink" he also gave you detailed instructions about how to open said cabinet just in case you hadn't run across that technology before? Right, you'd think he was being condescending (and you then may or may not be planning on how to make sure the contents of your wine glass "accidentally" end up on his carpet).

I don't blame whomever it was that sent me that email. They were probably instructed to talk like that. But it's ridiculous to treat every single user who asks a question like a n00b every single time. Because then you're Clippy. And you don't want to be Clippy.

Go away. No one likes you.
In this case, had the technician done a little homework, they would've seen that I've created 5-6 payees before, and have scheduled many payments, both single payments and recurring. I may not be an expert, but I know my way around the block. It would've been nice to be treated as such.

Anyway, back to my issue: paying bills via snail mail. The technician did answer the question - and the answer is kind of hilarious.
You can input your name or address in the account number field or any other type of information you would like to share with your payee.  I noticed some customers will input the reason for the payment in the account number field, they will input "Happy Birthday" as the account number.
I'm gonna be honest with you, Verity technician person: that's just weird. I can't leave the account number blank if there's no account number, but I can type in random nonsense that has nothing to do with an account number and that's kosher? Any librarians or information architects reading this are probably tearing their hair out about now.

Here's how I would fix this.

Quick Fix: Make the account info stuff on the form non-mandatory, put a box around it to specifically call it out and put this text in the box in bold: Fill in these fields to have payments sent electronically. Otherwise payments will be mailed to payees. I'd also recommend adding an optional "Memo" field instead of weirdly making the "Account #" field play double duty. Is it not conceivable that someone would want to pay a bill electronically and leave a memo? Plus, labeling it "Memo" mirrors the vocabulary used on checks, and so most people will automatically know exactly what to do with it.

Real Fix: If they've got the time to do some real work on this, the first thing I'd suggest is doing some user research to see how people think about paying bills via snail mail vs. electronic bill pay. I want to say that people are not going find using the same form for both things intuitive. I want to say this because I feel like these are two different goals. "I want you to pay them by mail." "I want to pay them electronically." The method is the differentiator in the goal and so my gut tells me that's the hook people are going to hang their tasks on. There probably are people who just want to pay a bill and don't really care about how it's done behind the scenes, of course. I wouldn't expect the two options to confuse such a person; I would think they'd simply choose one and move on. But they should do research to confirm whether or not these educated guesses are true and update their forms accordingly.