Tuesday, August 3, 2010

Noxious Feed

Shortly after I began this blog (like about 10 minutes), I wanted to find a way to automatically push posts to Twitter in what is sure to turn out to be a very hair-brained scheme to become rich less poor and (Internet) famous. This is the unfortunate and somewhat humorous story of a malnourished user experience getting in the way.

The first result I got after Googling "twitter feed" was (wait for it) Twitterfeed. This seems to perfectly meet my goal as a user:
 I want to push my blog's RSS feed out to Twitter one post at a time. 
Keep that goal in mind, it's important for the UX lesson we're about to have. (Oh, that's not what you were after? Here, go play some flash games while the adults talk.)

Here's what I saw when I first started to set up my feed (or when I edit an existing feed, which is technically what I'm doing to get this screen):

Descend into chaos in 3 easy steps.
It all seems simple enough. There's a space to name my feed - useful for those with more than one blog - and then a space to paste in the URL for the RSS feed. After entering in that URL, I happened to notice there's a button off to the side.

Aw, man. I knew I should've studied instead of playing Diablo
Ah, this lets me test whether the feed is parsing correctly before I continue. Handy, that. Although, if I'm allowed to quibble a bit (and I am, this being my blog and all), since being able to parse the feed is kind of a pre-requisite for being able to push it somewhere else, I think I'd have preferred this to be a forcing function. Or, even better, automagically checked when the user tries to move on from step 1 to step 2. Anyway, I clicked it, and got a nice re-assuring message that I had done at least that much right.

That done, I logically went to click the "Continue" butt- Wait! Oh, hai!

Were you scared?
Would ya look at that, it's an advanced settings button. As a bit of an aside, I actually don't mind when advanced settings buttons are a bit tucked away, assuming that they did their research and these actually are settings that would only be appropriate for advanced users. Anyway, on my first go through, I went ahead and clicked on it (like an idiot). A little AJAX magic reveals this pane:

Twitterfeed's Advanced feed options.
I'm sure there are some great arguments to be had over a lot of these items, but I think it's safe to say at least most of them are firmly in moderate-to-advanced usage territory (YMMV). A few of these, however, I'm glad I notice before continuing. Specifically, the Update Frequency options were good to discover.

I saw this and I thought to myself Ohhhhh. I can specify how often I want my blog pushed out to Twitter! I was pretty excited about this feature. People on Twitter don't seem to care if you tweet a lot, but my Twitter account pushes to my Facebook account; I knew from experience that some of my friends are whiny crybabies suffer from information overload and like my updates to be at a manageable frequency. In UX speak, my goal as a user has now changed to reflect posting frequency:
I want to push my blog's RSS feed to Twitter one post at a time at a maximum frequency.
The keen observer will notice that this isn't a very explicitly defined goal - there exist fungible terms such as "maximum frequency" - but our goals often aren't as explicit as we think they are after the fact. It's like Steve Krug says in "Don't Make Me Think", we tend to get a vague idea of what we want and then go with the first thing that seems to fit the need. Anyway, I thought about this, played around with the options in the drop down menus for awhile, and finally settled on this:

Specifically tailored for princesses with peas under their mattresses.
I found it highly unlikely that I'd be posting to this stupid thing more than once every six hours, but I foresaw the occasional afternoon of making several quick updates and wanted to make sure those were spaced out. Just to make this explicit, my mental model of how this worked was something like this:
Yes, I used MS Paint for this. Big whoop, wanna fight about it?
As it turns out, I was completely wrong. (How anticlimactic was that?) I found this out on my 3rd post with the service. A mere couple of hours after I posted this, I posted this. As I expected, nothing got pushed to Twitter since six hours hadn't passed. Hooray! I checked again later that afternoon - nothing had been posted still. I thought this was odd, but I figured I must've made that second post just outside the polling window, so it'd be a full six hours until it was pulled in (as a user experience professional might say, I got off on the wrong foot). I decided not to worry about it and just check in the morning.

I did check in the morning. It still wasn't there. What the hell is going on?

Why you holdin' out on me, muthafucka?!
I went to my "dashboard" to investigate.

Quiet. Too quiet.
Huh. Nothing seems wrong. No error messages. No status of any kind, in fact. Just one fewer post than there should be. I explored a little more and I got lucky enough to hover over the title of the feed with my mouse:

Oh, hey, Mr. Hyperlink. Didn't see you there.
I clicked and got this page:

Open sesame.
I then had three thoughts simultaneously:
  1. See above lolcat
  2. Why did you hide that link from me?
  3. Why did I even have to click that link to get here? Why isn't this the dashboard?
Then I took a closer look at the feed status message. "Feed checked OK but stopped processing due to update frequency." Huh. I guess those really were advanced settings after all. I clicked over to the advanced settings again to check it out, hoping to find a more detailed problem description there.

C'mon, baby. Talk to me.
Huh. Nothing there, either. Finally I went to the support forums and holy crap, there are quite a few people that have run into the same issue. After nosing around, I figured out what was wrong with my mental model. In that screen, you are not telling Twitterfeed how often to forward blog posts to Twitter, you are telling Twitterfeed how often you will post and you cannot post more than that. It's the complete opposite of the mental model I had formed. You saw that above, here's something closer to the implementation model:

Just what I'd always wanted.

Ok, so I broke the thing inadvertently. Great. How do I fix it? I went back to the page-that-ought-to-have-been-my-dashboard.

Nothing is really clueing me in. I looked for a "restart processing" button or something similar, but there's nothing. Again, how do I fix it? Oh, wait - I can't. Read through that thread a little and you'll find that the way the employees deal with this is to manually reset the offending feeds behind the scenes.

Read the thread a little more closely and you'll find several people just ditching and finding alternative solutions, like dlvr.it. I followed suit, not because I was necessarily expecting this new service to be any better, but because I really didn't feel like waiting around for however long it would take them to fix this just so I could post to my blog again.

Ok, let's recap:
I was allowed execute a series of actions that would turn out to irreversibly kill the service, I was given no warning about what I was about to do, and no recourse after I had done it. Furthermore, it was going to take long enough to fix that I ditched them for a competitor. 
This is why it pays to do usability testing regularly. Judging by the number of forum posts they've gotten about this, all they would've had to do to save themselves countless hours of headaches and dozens of lost customers is host a couple of usability sessions asking people to play around with feed update settings. It might of slipped through even still, but I almost guarantee it would've been caught and maybe even caught early. (I can already hear a PM somewhere arguing that this won't affect that many users, it can be fixed later - if your UX is bad enough that any users are ditching for a competitor, it ought to be a crime.)

And what of said competition, I can hear you asking. I've only been with dlvr.it for about half a day - so far I like the feature set, and it does seem a bit more powerful while remaining relatively user friendly. But, lo and behold, what do I find lurking within one of the menus:

So. We meet again.
And you know what? There's no way I'm playing around with those settings. I clearly have no idea what they do. The "Trickle items over time" feature hints that their implementation model might be closer to the mental model I had earlier, but I'm still gun shy. This leads me to a few final points:
  • If you have a competitor, do your homework. Do competitive usability testing on their sites/products, find out what their issues are, and don't repeat them. 
  • Also make sure to test your site/product with users that have used your competitors' services before. Not only will this help you to know how your product differentiates itself, it will let you know what kinds of baggage people will bring with them when they (hopefully) ditch the competition for you.
  • If an action a user can take carries a big risk, build in a preview feature or some other way to roll it back. In the dlvr.it example above, I'm gun shy about making those changes not just because of my experiences at Twitterfeed (i.e. not just because I'm worried about hosing my service), but also because I'm aware that my mistakes will be seen by the entire Internet. No user wants to look that stupid.
And with that, I bid you adieu. See you on Twitter (I hope).

No comments:

Post a Comment