Jul 08

Learn To Type Week

Post Thumbnail

As I’ve traveled around and programmed with a lot of different people, I’ve noticed a really frightening thing: in general, programmers don’t type correctly. I’m not sure why this is, but it makes me sad. Most of the people I meet that don’t touch type still can bang away a lot of words a minute, but if you watch their heads, it is like a bobbing robin, constantly looking down to see where their hands are. What a waste of motion and context switching.

Typing is a fundamental skill for programmers. We spend our days manipulating text, so it makes sense that you should have it mastered. In a way, it would be like hiring a carpenter and seeing them flailing around with the screwdriver, missing the screw sometimes, maybe poking their finger. What would you think? That’s how it looks when you are hunt-and-pecking. Embarrassing!

Continue →

Jul 03

Implementation Model vs. Mental Model

Post Thumbnail

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.


Search

Latest Comments