Monday, January 17, 2011

Does everything suck?

I read this article last week about how gamers are spoiled; we keep getting better games, but we keep being disappointed because we find such small things to latch on and to say that it ruins the experience.

I also saw this comic about how to make the web design of your shopping cart suck less. The points made in this cartoon are great, and they really apply to all forms on the web, not just shopping carts.

At some point, I begin to question my own ability to be upset about the small things. On one hand, I feel like I've been trained to make mountains out of mole hills. If I don't latch on to the tiny things that collectively add to an overall more seamless user experience & complain loudly about them, then the odds of these things being noticed by people who have the power to change them is practically nil. But constantly complaining is tiring and thankless; even if I get to see all of what I want fixed, odds are there will still be more to do in the next version.

This is how I'll always have work as a software developer: there's always more work to do. But from the consumer side of things, it's just a lot of stuff that doesn't work that well.

Take Kinect, for example. I can essentially talk to my TV and have it start playing a football game from last week, while I'm standing in the kitchen & cooking. It's miraculous. This is the future.

Then I try and play music. Wait! You haven't downloaded the Zune app, do you want to download it? Suddenly my Xbox is deaf and no matter what obscenities I shout I can't get it to download the app to play me some damn music without washing my hands, finding the controller, and pushing a button. What is this, 2010?

Or I'll stand in front of Kinect and wave my hand so it knows I want to gesture at it. Then I launch a Kinect game, and it forgets that I was just talking to it. I'm standing right here. I have to wave frantically again for you to remember that I'm the only person in the room? You know what, eff it, I don't want to play this game anymore. It drops me out to the Kinect Hub and once again, forgets who I am, and makes me wave my arms frantically to control it yet again.

These experiences are terrible, the magic of modern technology aside. They're disruptive, they get in my way, and they give me something to complain about. But these aren't minor technical issues, these are serious breaks of customer flow that frustrate me.

It's my fault, really. They built a magic box. I wanted to have a magic box immediately. They got some stuff working really well, and then had to decide if building a seamless MagicBox experience was worth not giving me a magic box that worked well enough in some cases right now. They probably even asked me and I said "RIGHT NOW GIMMIE GIMMIE" but then somewhere along the line (probably with marketing) they neglected to tell me that everything wasn't diamonds & unicorns. They didn't pare down my exaggerated expectations and left me to discover for myself that what they had built wasn't actually a magic box but actually just a new kind of joy stick.

But some things really can't even be placed on marketing setting expectations too high. I expect that if I click on a label next to the checkbox, that the website will know that I mean to click the checkbox. I expect that if I press the 'tab' key, I can cycle through the important input fields in a page. These aren't lofty expectations, but since they're always secondary to the person building the website, they often get overlooked. Then I try things, find out my moderate expectations weren't met, get frustrated and have reason to complain.

One final example. It's review time at Amazon. The free-form field inputs are a wonderful expanse to let me express where I believe my peers have excelled, and where they have the opportunity to improve. But these expansive anecdotes must then be categorized into one of twelve Areas of Leadership. These are short titles with lofty explanations to show that you Save Money(tm) and Care About The Customer(tm).

They're also checkboxes without labels. But that's not my point.

The lofty leadership categories are in no way indicative of the qualities that I need to see in my coworkers. They're not the ones that they need to have in their core skill set. They're just a good-sounding collection of words that suit movie posters or book covers better than performance reviews.

And at the end of it, I have about 16 more qualities that I have to rate the person on, either "Agreeing" or "Disagreeing" (perhaps Strongly) that it is a quality they posses. Except these are all vague lofty technical qualities that we pretty much screen for in the interview process. "Writes Good Code"? "Seeks The Root Cause of Problems"? "Communicates Effectively"? If they didn't, why would they be here? This reduces all of my responses to a combination of "Agree" and "Strongly Agree", which they even obscure further by trying to compute a mathematical average of my judgements, pretending that has value.

And for the ones that I don't list Agree with, there's no room for feedback as to why. Because in reality, everyone has these traits, but some of them can use more improvement than others. Only having "Agree" and "Strongly Agree" is not enough variance for me to help them. So I have to lie and say I disagree with things, but I can't say why.


So when it comes down to it, this is what I see all day. Varied products and projects and tools that I have to interface with. Some design or implementation detail that hinders my intended task, and then a world of frustration and things to complain about. Does everything suck like this? Is there no product that really nails the full end-to-end experience and gets out of my way and lets me do my thing?

No comments: