Electronical and Electromechanical Explorations

This blog organizes and presents some of my various projects and musings related to taming wild electrons and putting them to work. Projects are listed down the right side of the page.

Thursday, December 25, 2014

On Usability (rant)

In my last post, I concluded that I need to master the use of user interface components, especially displays.  And so, of course, I think you should too!

<rant>

Embedded products are famous for having crap usability.  That doesn't make it okay.

Typically there are (at least) two aspects of an electronic gizmo -- the internal circuitry (the technical bits under the hood) and the interface to its user.  This could be a programming or electrical interface if the project is a component for use in larger systems -- and usability is important for those things as well -- but that is not what I am writing about today.

Older engineers like me tend to get fossilized in our thinking and resistant to change.  For example, like it or not the technological advances and design work that led to the iPod, iPhone, and all that followed really did revolutionize the usability of handheld devices (the same way that mice and windowed displays revolutionized the usability of PCs).   Deal with it. 

If that idea doesn't make you unhappy, you probably can skip the rest of this post!

Certainly not every project needs to be burdened with a high-resolution touch screen, but maybe your project would actually benefit from that.  Look at the reasons you resist the idea... are they good informed reasons or stubborn biases or laziness?

Some issues:

Cost: These days, adding a touch screen to a project that otherwise doesn't even need a microcontroller adds around $20 (with some effort) to a hobbyist one-off project.  I don't know the cost in quantity, but obviously less.  Compared to the cost of whatever the alternative would be, it may or may not be more important than the usability benefits.

Difficulty: this is probably the main reason people avoid using modern UI components... it takes time to learn about and implement them.  And, since it is peripheral to the important bits under the hood, it can seem like silly overkill from a development perspective.  Realize, though, that this is only true until you add some abilities and experience to your toolbox and skillset.  And ask yourself whether you really want laziness to be the driver of your design.

Actual Usability Benefit:  If an optimal interface for your device is really one button and a three digit display, that is awesome!  Nice job focusing!  give your user a pleasant and responsive knob and readable appropriately-sized digits that are easy on the eyes and update at an appropriate speed, and you are done.  But features do tend to creep in... if you find that buttons are ending up with multiple functions in different circumstances, other buttons are switching "modes", you are cycling through different meanings for the numbers in the display, or if multiple settings need to be manipulated using that same three digit display.... stop!  You have probably evolved a crap UI...
  • Rule of thumb: if your device isn't pretty much intuitively obvious to a slightly-dimmer-than-average member of your intended user-base, you have failed.  That varies depending on the user base of course.... But if your user needs a written manual, you have probably failed, except for minor features of highly complex gear where users are expecting to spend hours learning the device anyway. 
Details: Of course, other things are involved... for example:
  • Size:  if the device is tiny, that MIGHT exclude some UI options.  However, it might not! A little touchscreen might be at least as space-efficient as a few dedicated buttons and a numeric LCD.
  • Wasted Power.  Only really an issue for a battery-powered device where you are counting milliamps.  There are ways to change power levels on microcontrollers during times when the display doesn't change, backlight power can be used intelligently, and so on -- but there certainly are circumstances where power consumption is an issue... a device that runs out of battery power way faster than its user expected is probably even more crap than one that is difficult to use.
  • Environment:  if the device needs to be usable underwater or in conditions that must remain pitch dark, or be used while driving a car, etc, that obviously limits the ways its user can interact with it...
Distaste:  Maybe you just personally don't like all this modern garbage.  I am actually not going to ridicule this reason.... there are others like you who will appreciate your device, and nobody should spend their limited time on things they hate.  And older technology of course was often awesome!  I have one of those old Tektonix analog oscilloscopes and not only is its UI a brilliant piece of design, but the feel of using it is very pleasant.  If you are going to let passions like this drive your design choices, it is still important -- maybe even more important -- to avoid compromising that passion.
  • Intuitive design is still important... and probably even more difficult.   now the important thing is laying out the buttons and knobs, providing feedback with LEDs and meters, labeling things clearly on your panel, etc.  Do it right!
  • Use quality components.  Crappy buttons and gnarly knobs aren't old-school chic, they are just crap to use, and always were!
Of course, usability isn't just about which bits of hardware you decide to use.  Whatever interface you choose, it will be a bunch of work to get it right.  If you aren't willing to do that work, then admit that you are playing.  Communicate what you learned, share your experience experimenting -- but don't be confused: you haven't made a product and the world doesn't really need another frustrating device ("open source" or not).

</rant>

:-)

No comments:

Post a Comment