views:

1198

answers:

12

Reading about the G.729 codec, I found this interesting tidbit about "Comfort Noise":

A comfort noise generator (CNG) is also set up because in a communication channel, if transmission is stopped, and the link goes quiet because of no speech, then the receiving side may assume that the link has been cut. By inserting comfort noise the old analog hiss is played during silence to assure the receiver that the link is active and operational.

This is the kind of thing a good programmer needs to know about before they design VOIP software, for instance.

Earlier today I also learned about Saccadic Suppression:

Humans avoid retinal blurring during eye movement by temporarily attenuating the data flowing from the retina into the brain. An amusing way to demonstrate this phenomenon is to look at your face in a mirror. Holding your head steady, look at one eye and then the other, rapidly shifting your gaze between the two. The image is stable and you do not see your own eye movement, but another person watching you will clearly see your eyes move.

This has application in video game and other visual and graphics development.

There are many books on user interface design, but I have yet to see a single reference which enumerates most of the human design factors we should understand when designing software. I expect a lot of software engineers learn this by the seat of their pants - they design it, find that something is odd and/or annoying, and play with it until it feels comfortable. Yet the answers already exist, the studies have been done, and someone knows not only how to fix our issue, but why it's an issue.

  • Without getting a BS/BA in a dozen different professions, where would I look for this sort of information?
  • Am I doomed to stumbling across it in daily internet surfing (which many companies/managers frown on)?
  • What other human factors impact programming (please link a reference, resource, or at least give a googleable technical name - alternately post a new question about it with the tag "human-factors")?
+12  A: 

You could read the book The Inmates are Running the Asylum or The Design of Everyday Things which talk about these issues.

Elie
+4  A: 

Raskin's The Humane Interface is also something worth reading.

Steve Steiner
+18  A: 

I think what you need to know varies depending upon the type of application you are trying to develop and the user environment it will be in.

From the enormous company/product perspective - it's wise to have an HMI/UI Style Guide that spells out the basic precepts developers should be using their interface designs for the specific goals of their software. In many cases, it's as important to be consistent as it is to be correct, so having a single guide for a big product, or suite of products gets really important. It also keeps the software experts from also having to be user experts. If there is just one source, I would say that the internal style guide would be it. Ideally, they should be written (and updated) to do exactly what you ask - be a reference point of all the things to consider when making a design.

I'm not sure you will ever find a single guide for all aspects of user interface design that is a one size fits all source. Different types of technology require different techniques - for example the two design ideas above are useful for two very different types of applications (voice transmissions and video games). And neither one is particularly helpful for web applications. Worse yet, user needs change as a given technology becomes more widely adopted - for example, Web 2.0 GUIs use some layouts and design concepts that violate older early web UI design practices.

General principles that I find useful for my work in the web app world:

  • Always consider what the user is trying to do as the first priority
  • Consider other systems the user is already familiar with and copy them when possible*
  • Focus attention on the most important decision/information (see first bullet) - attention can be focused in many ways, depending on technology - size, movement, position, color, sound, or any other sensory input.
  • Consider the user - age, disablity/ability, prior experience with this technology, and almost anything else you can think of. Then design with the key aspects of the user in mind.
  • Consider the user's environment - hardware, network, physical surroundings
  • Make the user do as little activity as possible to accomplish their goals - ie, mouse clicks, key strokes, voice commands

Sadly, mileage may vary - I have always worked in the world of applications that people must use, but would never willingly use if they didn't need to do their jobs - hopefully the tool makes work easier, but it's still work. Things like video games - which people willingly pay money for just for the fun of using them - are a whole different ball game. In those cases, you may not be trying to make everything easy - but you are trying to add challenge in a way that is enjoyable.

*(Edit - Added) - when possible and when it makes sense. Don't be afraid to reinvent the wheel when you have a better idea so long as you have a good case for it really being better.

bethlakshmi
+5  A: 

All these topics fall under the general topic of psychophysics (for vision, sensing, perception, etc.) or cognitive science for things like memory and cognitive load.

I'd also recommend reading The Humane Interface for insights into how cognition directly effects user interface design, it really hit home that there are "ergonomics of the mind" that should be followed just like hardware ergonomics.

Ryan
+6  A: 

What you are asking is a really really complex subject about psychology specifically cognition. I would start reading the Book Mind Hacks. I would also start looking the site Cognitive Daily and Scientific American Mind. This is a huge subject and you are going to have to wade through lots of articles that may not pertain to what you really want to know. You are going to want to look at behavioral learning about how animals (I'm including humans) are trained to do things and how that affects them in other situations. Honestly, you should read the design books mentioned by other people as well. They will offer a of bang for your buck.

The main problem you are going to have is that you are looking for a cut and dry answer about how the brain works and how you tailor UI design to it. There are some, don't get me wrong, but Cognition isn't like programming. There is no proof to how the brain works. (Ever hear a psychologist use the word prove or know....I didn't think so. It's always we infer or we think or it is probably).

There are hundreds of variables to account for in experiments which are run multiple times and there are always competing theories with none of them being 100% correct most of the time (ok there is a non-zero probability that someone will nail a theory right on the head). One example of this is language development. People spend their entire careers trying to figure out why children of deaf people who had deaf parents sign differently than children of deaf people who didn't have deaf parents.

Your other option for finding books on the Cognition is go to your local university or find one online and see what course books are required for those coures. If you are lucky you might be able to score the class notes online also. This will help you understand other things you read about psychology and how it all fits together.

You may also want to google the topic usability engineering (Jakob Nielson, Edward Tufte) and read up on how to run usability experiments. Eventhough you try to apply a theory in your application, doesn't mean that you were successful.

I just thought of another place to look. I would check out the Ted Talks. Not all of them pertain to psychology, but there are some. They give a nice overview of what people have discovered without getting really detailed.

Kevin
+1  A: 

Read the Apple Human Interface Guideline. It is not only a guide with patterns, but is based upon the psychology of the users attention.

dacracot
+1  A: 

You may or may not have already encountered the often maligned but still useful UCD (User Centred Design) (further. links.), which has historically been useful to more... monolithic apps, acting 1:1 with humans. That said, UCD is iterative, and therefore maps well to an agile methodology.

In the age of social networking, the very socialist originating Activity Theory - loosely, all human behaviour can be understood in the context of a social action, a rejection of the inner worlds of freud and jung - is gaining ground because of it's obvious translation. A good introduction from last years FOWA here, text on the subject here.

I think this is going to keep gaining ground because clearly the internet is now defining the future of software, and the internet is a social medium. What matters is conceptualising relationships and user actions within the group, less so the literal business objects.

annakata
+1  A: 

I've been using two books to help in this area - Visual Intelligence: How We Create What We See and Eye and Brain: The Psychology of Seeing . They both dealing with our visual perception. I've found the Amazon recommendations a brilliant way to short cut to a 'seminal work' in a field - if the experts/readers agree that it's a worthwhile read I'll go with it.

In summary

1) Where do you look, Amazon following recommendations of others, and then reverse lookup in google to see what else references your particular area

2) A daily surf is good for the mind, if management want coding robots, maybe that's what they'll get?

3) I've been following up 'Information Graphics' for ages - this covers things like the design of the tube map and good signage. Try infoesthetics brilliant blog site and Information Graphics on wikipedia

Final though read Edward Tufte.

MrTelly
+1  A: 

Magic Ink by Bret Victor is a fantastic paper on Information Software and the Graphical Interface. I'd really recommend it to anyone doing UI design.

Craz
+1  A: 

Don't know how much this applies, but "Nudge: Improving Decisions About Health, Wealth, and Happiness" might help inform you about really large applications with many choices for features (I guess kind of like the ribbon). Haven't read it, but think the idea is definitely applicable.

http://www.amazon.com/Nudge-Improving-Decisions-Health-Happiness/dp/0300122233

bluehavana
+3  A: 

Don't Make Me Think! by Steve Krug is an excellent resource for usability. It focuses on the Web aspect of design, but can easily be transfered to other types of interfaces. One thing that he focuses on is getting "the user" into the picture to determine what factors make up good usability. You can implement usability all day, but in the end if a real person is not comfortable with it, then your usability is useless.

The other thing would be to watch for HCI topics in academic publishing. Websites like the ACM or ACM portal will have tons of scholarly papers for your topic (and many others.)

Doing some quick searching I found an HCI links page with 1500 results. The material (like you say) is definitely out there (the truth is too, but that's for another day.)

Also to keep in mind is the Apple/Google/Your_Company comic which is entirely true, as basic as it is.

Gavin Miller
+2  A: 

There is only one book you need to read, and that is "Designing Interfaces" It's really a great book. --> http://oreilly.com/catalog/9780596008031/

It just is... GOOD!

fmsf