mwrc: Improving Usability of Rails Apps

Adam Dunford & Jason Edwards: Improving the Usability of Your Ruby on Rails Applications

Instead of trying to define “usability”, let’s talk about “user ability”.
Can a user accomplish their goal? Programmers and designers are not users.
“Use users to test usability” so you can verify that users can accomplish
their goal.

There are seven principles of usability.

1. Create structure. Organize content, prioritize content, group content, separate content, differentiate content. WordPress 2.5 has horrible admin organization. 2.7 restructured it. Content that’s similiar is together. Craigslist is the “gold standard” of structure. That doesn’t mean it’s usable, per se.

2. Use standards. Not web standards. Standards of what people are used to —
“follow conventions”.

3. Be predictable. You won’t know unless you test with users. Accomodate their
expectations. Predictability doesn’t mean consistency. Google apps are similar

4. Reduce barriers. See geni.com or tumblr.com or pict.com. pict.com doesn’t
even require you to create an account until _after_ you’ve started uploading
pictures. Provide for progressive enhancement. Your website should work for people that don’t have JavaScript enabled, but it can work better with it enabled.

5. Add affordance. Make it easy for users to learn how to use your
application. Work around your users limitations. Provide an “undo” capability.
See ning.com. You can’t miss what you need to click and fill-in. Phone number validation. Don’t make people put in their phone numbers as three separate fields.

6. Give feedback. Respond to users in a way that is clear and obvious to users. See laterthis.com sign up when you fail to enter a field. Make sure your users feel like they are in control. Rather than a 404 page error, provide a phone number for support. It will reduce stress.

7. Simplify. We don’t want to overwhelm users. SonicMood is an example of a
bad app, and it’s supposed to help users create users to relax. “Choices =
Headaches” — Joel Splosky.

Reduce. Replace. Hide (info until its needed). Remove. Remove the obvious, and
add the meaningful.

Final note: Read “User Interface Design for Programmers” by Joel Splosky