It's the interface, stupid!

This seems to be a huge issue the big companies “get” and the little companies neglect.  When designing software, make a good interface.  So many times, a piece of software can’t rise up into the big leagues because the interface is horrendous.  The workflow in a program should be efficient, intuitive, and simple.

Case 1:

I downloaded Alibre Design Xpress, which claims to be a full-featured 3D parametric CAD application that’s absolutely free.  I tried it out, and in a few seconds I could see what was wrong with it.  But first, let me give you a little background.

I started out in CAD by learning Autodesk Inventor, a very capable (and pricey) 3D parametric CAD modeling program.  Everything about the program was intuitive and simple, but advanced users could accelerate every step of the process by learning keyboard shortcuts and other little tricks.

Enter Alibre Design. I began by drawing a simple part, and immediately the program was already hampering my work.  I wanted to dimension the box, and I was used to just hitting “D” on my keyboard to select the dimensioning tool.  Nope.  Alibre Design forced me to click the button in the toolbar, which takes a little getting used to.  Same for extrusion: I couldn’t hit a key to extrude, like in Inventor.  It was another tiny little picture on a bar, and I had to hover my mouse and read the tooltips.  Then, Alibre got even more annoying when I went to extrude another sketch on the side of the box.  Apparently, any excess lines besides the closed figure causes Alibre to grind to a halt.  For extruding sketches, it’s either all or nothing.

That said, Alibre Design is a powerful program, and experienced users could easily work around these little annoyances.  But, it does need some deeper thought put into the workflow.

Case 2:

I needed to composite some video, and I tried out T@B’s Zwei-Stein 4.  Wow.  What a nightmare.  To begin with, the interface is the sluggiest interface out of any program I have.  It looks like they tried to invent their own GUI toolkit, with abominable results.

The interface is one confusing mess.  They try to justify this on their website, saying that they favor creativity over simplicity, and that’s why their interface is so bad.  There’s no way I can be creative with such a bad interface.

For starters, to import a clip, you’re forced to use their ugly file tree.  It goes like this:

  1. Click on a video clip.
  2. Wait.
  3. See the thumbnail of it appear in a completely different tab (apparently importing video is a multi-step process).
  4. Drag the little green arrow on the toolbar beneath the preview into the “MediaMixer.”  Oh wait.  You can’t, because the little green arrow takes forever to show up.  This is on a dual-core Turion.

And that was just a small taste of what was to come.  Arranging video in the timeline was much, much worse.  You can’t just select a video clip by clicking it on the timeline.  You have to click its name on the sluggish list in one of Zwei-Stein’s multitudinous panes (bad pun here).  To move a video clip, I’m supposed to Shift+Drag, but it doesn’t work like it should half the time.  The only way to precisely position video is to use their horrible GUI and manually type in a start time and clicking the “=” button.

Lesson learned: Don’t make your own GUI toolkit.  If they really wanted cross-platform compatibility, they should’ve used GTK or Qt.  It might’ve made their program at least slightly bearable.

In the end, think of the user.  Too often, people write programs only thinking about themselves.  They don’t actually give the program to a user and see what happens.  By actually testing it on end users, they can see what parts of the interface need a little repolishing (or a complete rewrite, in Zwei-Stein’s case) so the end user isn’t completely confused.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>