David Platt
is an author, speaker and developer who wants you to recognize that
there is a problem in software interface design. Fear not - David is
not alone. Computer World recently reported that "the
majority of end users (60 percent) find enterprise applications
somewhat difficult, very difficult or almost impossible to use,
hampering employee productivity." Yes – there’s sucky software out there and it just might be in your source code repository!
Does Your Software Suck?
I am sure David may have 5 or 10 or perhaps 20 ways you can know if
your software sucks, but the following are 5 ways I gleaned from our
conversation:
- Did you design from the toolkit outward or the user inward?
Perhaps you are a .NET or Ruby or Java wizard, but does your
proficiency in these platforms punish end-users? There are dozens of
features in any platform that if not managed carefully can result in
frustrating user experiences.
- Are colors, motion and other visual elements used "just because"?
Designers like to design and coders like to code. Professionals are
drawn to their practice often because a sense of passion and desire for
a creative outlet. This can be a problem though when software features
bells and whistles where elegance and proactive design is more
appropriate.
- Does the user have to memorize dozens of menu hierarchies or key commands?
Balance is always a problem in user interface design. How do you
accommodate newbies without frustrating the power-users? No one said
there are easy answers, but with a little thought many features can
become apparent at just the time of necessity.
- Do you use your final product to test out new design paradigms?
This may seem silly, because people don’t think of what they do in
these terms. Often a new feature is included a new build that passed QA
and got the nod from the three other developers in the room – all to
prove to be too confusing or simply out-of-place to end users.
- Do users have to think about using your program?
When someone is using your software, if they spend a disproportionate
amount of time thinking about how to use the software rather than the
problem the software is hoping to solve – then your software sucks.
What Should We Do?
David’s advice is provocative. Instead of gunning off a list of do’s
and don’ts David suggests the following remedy to sucky software:
- Allow software engineering to split off from computer science in formal education.
Software engineering is much more than high performance algorithms and
compiler design. Areas of specialty like user interface design and user
experience require a different need of focus all the while being in a
close-knit relationship with the discipline as a whole.
- Software engineering needs specialization. As
hinted above no-one in this day and age can claim to be an expert
general practitioner programmer. There is simply too much to know. When
"back-end" folks aren’t expected to produce the front-end – then we’ve
made significant strides.
Links
Books
My favorite quote from David is when he uses "reptilian midbrain" in a user interface explanation without breaking a sweat! ;)
Progress in User Interaction Design
While producing this show I found an interesting post on TechCrunch, Microsoft Researchers Get Fancy with a Sphere Display. Here is a video of the demonstration.
The "surface" appliances seem to be forging closer to the idea of having software that just works.
Popular Mechanics did a
spot on the surface table. In this video you see how wireless devices
interface with each other using the surface table as an intermediary.
The best part? You can take a picture on your digital camera and load
it on your cell phone: no cables, no syncing and no hassle!
The last video I have for you’re here is of the TouchWall. What I
like best about this video is how they spend time explaining how the
technology works.