Usability

Too User Friendly?

Is there such a thing as being ”too user-friendly”? I used to think there was no such thing, but delving deeper and deeper into Ruby, arguably the most user-friendly software programming language, I am not so sure.

Before I continue, I should state that I do not feel that being too user-friendly is a bad thing. I’d compare it to something being ”too sweet”, or ”too much fun”. You get the idea.

With Ruby, its an incredible experience. What starts out as an almost playful experience evolves into a paradigm with real gusto - before long, programming with Ruby has a tendency to make programmers feel empowered.

Ruby lets software engineers without formal training get their mitts on the innards of the language very quickly, and as they say - ”there be dragons”.

In my experience, Ruby has introduced me to some truly wonderful aspects of programming, including domain specific languages, or DSLs. These are limited syntax, focused “programming languages”, and the Ruby open source community is rife with them: Sinatra, Rake, Cucumber… there are plenty of great new ways to jot down logic with ease. Personally, I love it. Syntax makes a big difference in my humble opinion, its like the user-interface to the language.

In learning about DSLs, I’ve learned about metaprogramming , the act of writing a program that generates code and executes at runtime. This is another characteristic that is helps to define the Ruby Zeitgeist in the second decade of this millennium. And this is the area where I’ve started to wonder if a system can be too user-friendly.

I do not think its possible, but I find traces of those who seem to find Ruby to be dangerous in the way it exposes the components that define itself and allows itself to be redefined. Methods such as define_method, method_missing, instance_eval, and class_eval all seem to conjure up some sort of wary perspective in seasoned developers. True, haphazard use of these tools can certainly lead to unexpected behavior, or worse, data corruption or loss, but they are certainly not alone in that regard. Even the most stable software has bugs!

Also true, use of these tools can make troubleshooting and bug tracking more difficult. This is certainly a fair critique of their use - trying to figure out where an eval call went wrong can be a serious challenge.

However, I do feel that seemingly unwarranted use of these tools, just because they are easy to use, does have justification. One, they teach the developer about programming languages by offering a unique perspective on how programming languages function. Two, they make programming an exciting and empowering experience.

One of the inspirations for this babble was this post by Ola Bini. A commenter says it well:

The novice programmer is not to be feared. It’s the intermediate programmer, who knows the advanced tools but not when they should be applied.

Usability for Open Source Software

Many people complain that open source software isn’t as user-friendly as closed source (commercial) software. I disagree.

I will argue that open source software is more user-friendly than closed source software. First of all, open source authors welcome feedback from their users with mailing lists, discussion forums, and bug tracking lists. This enables the users to become part of the development process which is a crucial part of creating usable software.

As I explained to a colleague over the weekend, I believe that the simple fact that open source software can be modified by users makes it better. Some commercial software behavior can be modified with plug-ins and APIs, but those can only do so much, and users are getting more and more sophisticated and demanding (aka expert) every day.

Display Resolution

This topic isn’t entirely focused on usability, so I didn’t post it here, and instead posted it to ”My Tech Notes”, but I’m linking it here because it is related:

Display Resolution

The general idea is that as LCD monitors rise in resolution, many people simply cannot read the reduced text and icons on the screen!

Edward Tufte

While not solely focused on usability, Edward Tufte has some amazing techniques for conveying information in multiple channels in a single report or illustration.

I first learned about Edward Tufte during an engineering psychology class I took at my university, Tufts. I at first thought it was odd that Tufts and Tufte were such similar names and that I heard Tufte’s name wrong, but it was just a coincidence.

My favorite illustration by Tufte is the display of Napoleon’s march through Europe. It shows the path, the dates, and the relative size of his army along the way. In addition to all that information, it is also pleasant to view.

Not everyone is visual though, and for those who prefer auditory or tensile sensors, we thankfully have multiple characteristics for those modes as well. For instance, audio conveys words, tone, and volume, which can be extremely expressive. And for tactile there is texture, temperature, and flexibilty.

Using multiple channels can be complicated, and the risk of creating noise is present. When I approach the task of conveying a message, I like to use as much technique as is needed, but not any more.

Color Usability

A while back my boss had me creating templates for our forums. I was mostly playing with the code, and trying to figure things out. I would pick color combos I found pretty, and apply them.

Unfortunately I wasn’t totally thinking about usability at the time, some of them are way too bright, and uncomfortable to look at. I’ve found the ones that I like best are the bland ones, with only one bright color that’s used as an accent, and the rest as neutral tones.

The main background should be a calm and gentle color, if too bright it could make the user uncomfortable, and navigate away from the sight. I know I almost did a few times today until we changed it to something mellower.

You can see how much easier it is to view a simple color scheme at Informed Gaming Forums.

Web Application Usability

Web application usability is a moving target. The medium continues to evolve at such a rapid pace - going from basic HTML, to Flash, to AJAX, and back again.

How to make sense of it all? Here are some basic heuristics I try to stick with:
  1. KISS - Keep is simple, silly
  2. Use AJAX sparingly
  3. Target your audience
Thes three guidelines may seem obvious, but I find it helpful for my own purposes to write them down and try to honor them when creating web applications.

NOTE: To create most web applications, I use Nexista.

Eye Tracking Cameras

Eye tracking cameras are some of the coolest pieces of equipment used in Human Factors Engineering and Usability.

How much do eye tracking cameras cost?
Eye tracking cameras aren’t easy to come by. I’m not sure how much they cost, but I know that they are expensive!

How do eye tracking cameras work?
Eye tracking cameras are often mounted to the top of a computer screen. They are able add cross hairs to the computer display screen so that observers can monitors where the user is looking. The one I used several years ago was a little jumpy, and required a lot of adjustments.

I’m sure the technology has drastically improved since the last time I’d user them. I’d love to try one out today.

What good are eye tracking cameras?
Eye tracking devices are great for testing the usability of graphical user interfaces. For example, if a use case involves the user clicking on a series of several buttons, the eye tracking camera can map where the user’s eyes seek to the find the desired buttons. It is very valuable to know if the user is reading, or seeking a button.

jQuery UI

This is going to be good:http://ui.jquery.com/While I’m not crazy about ajaxy stuff like accordian effects, I really like some of the cool things they are planning, like tabs, and better form controls.

Modal Dialogue Box

This is a doozy! So what is a modal dialogue box? It is one of those operating system or software application pop-up windows which require your input before you are allowed to do anything else. Thankfully, there is usually a cancel button, so if you don’t know what its asking you, you can click that. I usually click “OK”, because I’m crazy like that! :-)