Implementation Model vs. Mental Model
Last week I wrote a post which generalized that programmers do not create great user interfaces. It stirred up some pretty intense debate. A few people even emailed me insulted.
I certainly didn’t intend to insult anyone, but it proves that this problem isn’t going away soon. Proper procedures won’t be put in place until programmers are self-aware.
Consumers don’t think about how things work on the inside. Your interface should function as a magic box. Push a button and something predictable happens.
The brake pedal on your car is a great example. Someone who doesn’t understand how brakes work may envision the pedal pushing a lever which exerts sideways pressure on the wheels, causing the car to slow. Their mental model says that pushing this button causes the car to slow down.
The real implementation model of a brake system is far more complex. That complexity shouldn’t translate into the interface.
Alan Cooper, in his book About Face 3, states:
User interfaces and interactions designed by engineers, who know precisely how software works, quite often lead to a represented model that is very consistent with its implementation model. To the engineers, such models are logical, truthful, and accurate; unfortunately, they are not very intelligent or effective for users. The majority of users don’t much care how a program is actually implemented.
3 Comments »
Search
Popular Posts
- 50 Tips To A User Friendly Website
- How to build a Gantt Chart with the Google Charts API
- My Favorite Pomodoro Timers
- Why Flash is Mostly Bad
- Why You Should Outsource Usability Testing
- Sharing the Grid
- The difference between User Research and Usability Testing?
- 10 Tips to Better Google Wave Conversations
- How to Label Submit Buttons
- Goals for 2009



Joe Fiorini
Thank you! This is something I’ve believed for a long time but have never been able to put into words. As a programmer I find that it is very easy to just mimic the implementation when putting together an interface. Although I would argue if programmers were in front of the customer more often and able to understand his/her frustrations maybe they would be better equipped to understand the customer’s mental model.
July 5, 2010
Nate Wise
I agree, as a programmer, I like to focus on what I do best; solving problems with code. I think it’s easy for programmers to think they need to deliver the full product. What I find funny is that most programmers I know don’t like being the ‘computer guy’ in their family, but they will freely perpetuate bad UI by trying to do it themselves at work.
July 12, 2010
Devon Kiss
Joe Walsh — you’re missing a fundamental point! Programmers can also be designers. It is your classic two birds, one stone scenario. Alan Cooper is right, but you quoted him out of context. Makes me think the whole idea of your writing about this topic stems from that one excerpt. Sorry I just disagree with you. If you have a programmer then stick him in a think tank and let him write source and don’t let him see the GUI or UI? But that just boxes in a creative person, by definition.
October 19, 2011