5 Ways to Know If Your Software Sucks

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.



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.

kick it on DotNetKicks.com