User Experience for Developers
UX shouldn't be the purview solely of UX specialists; a well-rounded developer can become a UX professional, too. The "T-shaped" professional, who has both the breadth of skills (the horizontal stroke in the "T") and the depth of a particular discipline (the vertical stroke), is a much more valuable team member than one who has but one skill and focus.
But how can a developer start learning about UX without formal education in UX concepts? I am an engineer by training but have transitioned into UX and product design, so I hope other developers can benefit from what I have learned.
"Read, read, read." - William Faulkner
There are so many great UX books out there nowadays. Here are a few that I would recommend for the developer who's serious about UX:
- Don't Make Me Think by Steve Krug is a must. It's such a quick read that I finished it on a four-hour plane ride. I recommend having a copy of this book handy to share with people who don't understand or see the importance of good design.
- Designing the Obvious by Robert Hoekman, Jr.
- Sketching User Experiences by Bill Buxton.
A good place to start is with sites like UX Magazine—but if you're reading this, you've already figured that out. As well, Jakob Nielsen's website, useit.com has results of some very helpful research and studies.
"Good artists copy, great artists steal." - Pablo Picasso
It's impossible to talk about great UX without someone bringing up Apple, but even Apple doesn't come up with their brilliant ideas in an ivory tower. If anything, they have a history of freely borrowing great ideas, wherever they may come from. Both the mouse and the WIMP (Windows, Icons, Menu, Pointing) device came from the Xerox Star workstation at Xerox PARC. Good ideas and examples come from everywhere, and it's up to us to know where to look.
I keep my eye on a few types of websites:
- Pattern libraries like Pattern Tap, and the Yahoo! Design Pattern Library are great if resources on specific design patterns.
- For inspiration and ideas, I turn to Smashing Magazine, which has great content geared towards web developers and designers.
- Dribbble, which is a community for designers to showcase snapshots of their work.
- Forrst, a community for developers and designers.
"Don't tell people how to do things, tell them what to do and let them surprise you with their results" - General George Patton
Don't settle for the specs. If you are just handed a list of features to implement, don't take them at face value. Get to the why. What problem are they trying to solve? It may be that the features and requirements listed aren't the best way to go about solving the problem. How do these features help accomplish the user's goals easier or faster?
"I have not failed. I've just found 10,000 ways that won't work." - Thomas A. Edison
You may think that once you've found a good design pattern, that task is done. However, I find that if I come up with a few different ways to solve a problem, I often find a better solution or I find justification of why the first approach was better. It's also important to prototype. It's hard to imagine if an experience is going to be great or compelling without having actually using it. Don't be afraid to develop different approaches and throw away the ones that don't work.
"Get outside the building" - Steve Blank
When was the last time you actually interacted with a customer face-to-face or on the phone? Sometimes at large organizations there are positions that deal exclusively with that. They are supposed to interact with the customers and "translate" what they want into functional specifications or user requirements. But sometimes you just need to cut the middleman and talk directly to the source. That way, you feel their pain and nothing gets lost in the translation. If you never talk to the customer or the user, then everything is just an assumption or a guess. You are essentially developing and designing in the dark.
"Usability testing is the killing field of cherished notions." - David Orr
Once I have a working iteration, it is time to test it in the wild. I often have someone who's not tech savvy try out things. I frequently find that what I thought was crystal clear is in fact not at all. Watching someone trying to use your application is a quick and easy way to get feedback.
There are also applications and services for usability testing. Silverback is a downloadable app that records screens and the users' faces while they test out an application. Watching someone going through your site with a confused look is priceless when trying to convince management that the site has issues. Usertesting.com lets you buy usability testers on demand. You select your target demographic and how many testers you want, and provide a script. The site sends back a video of users going through your site, complete with users' commentaries as they go through the process. UsabilityHub provides some simple tools to do quick testing for first impressions, flow, and more.
I believe that great UX is important and if your career is creating software, then UX is a part of that. Familiarity with the discipline can make you more customer-focused and improve your product. Deliberate thought and focus on UX can lead to some great products and is not hard. It is a matter of educating oneself, getting inspired, validating ideas, talking to users, and doing usability testing. There's no one thing you can do, but a whole host of things that add to the overall experience and ultimately produces a great user experience.
I'd like to end with a favorite quote that applies when thinking about designing interfaces.