Slashdot Mirror


What Makes a Good UI?

OSXCPA asks: "While there are plenty of OS business apps from accounting to ERP, they seem to share a common failing with "commercial" software - the user interface is terrible! Has anyone seen an application that has a UI that made you sit up and stare in amazement at the simplicity and effectiveness of it? For the techno-elite, drooly-gui may not be a priority, but I am working on a project (OS) where I have to show real savings (in task performance time and reduced data entry error) on a specialized accounting system via better UI. Am looking for some inspiration. Any ideas? Projects? Books?"

9 of 188 comments (clear)

  1. Flow... by BrookHarty · · Score: 4, Insightful

    The biggest problem I have with programs, is the way they make you hop all over to input data. If you can just go from input box to input box, flowing continously, then its a good UI design.

    Who cares about looks, I care about functionality, well, I guess I do care about looks somewhat, take proxomitron's default colors when it came out, ICK. The user interface is perfect as a program goes.

    But back to flow, nothing bothers me more than something taking away attention when you are working, pop up boxes, something that takes focus away from your work. I think this is why so many people like ratpoison, windowmaker, icewm, you can do your work without the distractions.

    ok, do I really need Internet explorer to pop up and tell me when my download is finished? When I'm in the middle of typing an email? No. Stay out of the way. Stealing focus, or making a user hop around is biggest problem in UI design IMHO.

    1. Re:Flow... by theblueprint · · Score: 5, Insightful

      I agree wholeheartedly. Another thing to keep in mind is how you require users to enter data. My job has a proprietary database, and I can't select certain fields without clicking them with the mouse. I can't tab over and (arrow+down) through the choices on the lists. It's endlessly irritating to have the ability to type somewhat quickly, and continously have to remove your hands from the keyboard, grab the mouse, point, click down, click down, select. Frankly, it takes me right out of the "groove" I get myself in. So yes, the "flow" of the UI is most important.

      --
      "from the bricks to the booth...I predict the future like Cleo the psychic..."
  2. vim by dasunt · · Score: 4, Insightful

    Vim.

    No, don't laugh.

    Its base set of commands is simple enough, and its effective.

    For example, take 'd'. 'd' is for delete. 'dw' deletes a word, 'dd' deletes a line, 'd$' deletes until the end of a line.

    'y' is copy. 'yw' copies a word, 'yy' copies a line, and 'y$' copies until the end of the line.

    'c' is to change. Guess what 'cc', 'c$' and 'cw' does.

    Moreso, 2dw deletes two words, as 2yw copies two words, etc.

    Once you learn how one set of commands works, and you know another command, you probably know how that command works and how to use that command to extend the commands you currently know.

    For example, /string searches for the next occurence of 'string'. Guess what d/string and y/string does.

    Sure, vim might not be the easiest UI to learn, but I seperate 'ease of learning' from 'ease of use'.

    Just my $.02

    PS: This post composed in vim. (Its my default editor for w3m)

  3. Intuitive Interface by dmayle · · Score: 4, Informative

    Whatever you end up reading, I suggest you get some real users to sit down in front of it and test it. You need to be sure that the end user understands what you mean by what you say.

    For instance, in this posting, your use of OS for Open Source instead of OSS for Open Source Software was mildly confusing because in the specialized world that is IT, OS, by convention, usually refers to Operating System. If you'd sat down and tested with a focus group, you might not have made this error ;)

    Seriously, though, you'll get the best UI you can design if you just sit down with the end users and let them show you what makes sense for them...

  4. Re:One Word by brilinux · · Score: 4, Insightful

    GMail does not like you to delete mail; it wants you to archive it - that is the reason that deletion is not how it "should" be.

    But, as far as UIs go, I believe that all of the flame wars and discussions that happen because of this are for one reason - no UI will appeal to everyone. Some like GNOME because it is simpler and there is less configuration; some like KDE because it is extremely customizable; some like OSX because it is beautiful; some like Windows because it is simple and direct; I like fluxbox because it stays out of the way and does not interfere with what I do. I do not think that any UI will ever become "the best", because no one will ever agree on what is "the best". Use what you like, design things so that the highest fraction of the people who use it like it. But there is no perfect solution.

  5. Two great resources by nicke999 · · Score: 4, Informative
    Joel Spolsky's "User Interface Design for Programmers" is a great resource. Recommended highly.

    Also try usability guru Jakob Nielsen's site Useit. Although mostly focused on web design it s a good read for anyone designing interfaces.

    --
    Thanks for browsing at -1
    Please vistit my blog: www.framtiden.nu
  6. Get clipboard. Stand over shoulder. Watch. by dmorin · · Score: 4, Insightful
    The concept of maximizing user performance by observing how people do their job is hardly new to the computer world. Watch what people do, look for the redundant or time consuming bits, and fix those. Also watch for places where errors most commonly occur, as much time is spent in fixing errors.

    Common places to look:

    • Anywhere involving the mouse. Operations like selecting or cutting and pasting are very time consuming, and open to a huge degree of errors.
    • Anywhere involving manual communication between programs. "The cron job emails this file to me as an attachment, then I save it and import it into Excel to run this macro."
    • Anywhere that the human is acting as calculator. "I click in this field and then I type today's date."
    • Anywhere there's a handoff between humans. "I start the server, email Jim to tell him its up, and then wait for him to tell me whether there are bugs he wants fixed."
    • Manual touch points that don't need to be there at all. "I generate the newsletters, which takes like 10-20 minutes, and then when that's done I upload them to the test server."
    In short, if you are trying to improve efficiency, then your human is your weakest link and your job is to minimize your human's input into the system. Whittle down their input to the bare minimum that cannot be accomplished by the computer itself, and then do the rest for them.

    Note very importantly that this implies there is one major audience that uses your product for one primary thing. We're not talking about something like a Microsoft Word that is used generically by a universe of different people. You said you have to optimize productivity, which implies that you have some control over hacking away at features that do not impact productivity.

  7. Developers Are Not Good Judges of Their Own UI's by MarkedMan · · Score: 4, Insightful

    ... This is not meant as a slight to developers. Those who are intimately aware of how every detail of the program works cannot shift perspective and see it from the point of view of someone who neither knows nor cares about the inner workings. I've spent 15 years designing systems to be used in a manufacturing environment. Saying that any problems are due to lack of user training is a cop-out, one that will kill follow-on business. Industry has the operators they have and are not going to start hiring special people and paying them more to run my systems. It's just reality.

    I'll give what I think are the biggest UI traps:

    1) UI's that expose all the capabilities of a system. This is not good UI design, in fact it is lazy UI design. What you need to do is understand how your users are going to do with your system, and present them with as few choices as possible. Example: If you have a screen for looking up Customer records, and further allow it to be customized to show various fields, and further allow it to check or uncheck any field, you can end up with a screen that does not show the Customer ID (because it was accidently turned off). From the developers point of view you are adding functionality. From a user's point of view there is now a way to accidently render the screen useless, or at least annoying.

    2. Beware of allowing users to customize (Wow - there goes my Karma...) Customization is fine for stuff you play with, but in a professional environment it is much more important to have consistency. It is important that people can walk away from something for a week or a month, and come back and get to work right away. It is important that telephone support can make assumptions about what the user is seeing. Floating toolbars, menu items that come and go with frequency of use, frames that can be moved from top to bottom, all of these make it difficult both for telephone support and for people who are "backups" i.e. they were trained once and only use the system every so often.

    3. Don't be afraid of busy screens (Damn - there goes the rest of my Karma) Professionals get used to the layout and appreciate having all the information right at hand. (This makes number 2 - consistency - especially important). So err on the side of putting as much useful information as will fit. And prune mercilously anything that isn't useful or required. Don't you hate it when you go to a bank or an airline check-in counter and see the attendent typing endlessly, screen flipping, all at the speed of light, but... why exactly do they need all that commotion?

    4. Keyboard shortcuts, labeled and encouraged. The mouse is great for a lot of things, but speed is not one of them.

    5. Remember your audience. Are they people who sit in front of the screen all day, using your application as their primary function, or are they several times a day users who simply need it to perform a vital function but just want it to work and go away? Even if it is the former, what about their backup's or the third shift people? In any case, present what they need immediately and clearly and leave off the fluff and BS.

    6. Most important. Remember that your application is not what the people do. It is a tool that helps (or hinders) them in doing what they do. A tool should not be their primary focus. The task is their primary focus. Whether a carpenter or developer, any time spent fiddling with a tool simply means less time to spend actually doing the task.

  8. ed by geoffspear · · Score: 4, Funny
    ed. No, don't laugh.

    ALl of ed's commands are single letters. What could be easy to remember than a single letter?

    a appends text. c changes lines. Simple!

    And the error reporting is second to none! If your command contains an error, ed helpfully prints "?" to your terminal. No memorizing what 200 different error messages mean, all you need to remember is "?". Isn't ed great?

    --
    Don't blame me; I'm never given mod points.