Programmers Exchange Success for Understanding


Homo logicus are driven by an irresistible desire to understand how things work. By contrast, Homo sapiens have a strong desire for success. Programmers also want to succeed, but they will frequently accept failure as the price to pay for understanding.

An old joke about engineers gives some insight into this need to understand:

Three people are scheduled for execution: a priest, an attorney, and an engineer. First, the priest steps up to the gallows. The executioner pulls the lever to drop the hatch, but nothing happens. The priest claims divine intervention and demands his release, so he is set free. Next, the attorney takes a stand at the gallows. The executioner pulls the lever, but again nothing happens. The attorney claims another attempt would be double jeopardy and demands release, so he is set free. Finally, the engineer steps up to the gallows and begins a careful examination of the scaffold. Before the executioner can pull the lever, he looks up and declares, "Aha, here's your problem."

Understanding the problem with the scaffold was more compelling than staying alive.

When I lecture to groups of computer programmers, I ask for a show of hands of how many in the audience, when they were a child, took a clock apart to see how it worked. Typically, two-thirds of the audience will raise their hands. I then ask how many of them ever got that clock back together again, and all but a few hands will drop. I then ask how many considered this experiment to be a failure, and most of the audience will laugh as they realize that they got full satisfaction out of breaking their clocks. Homo logicus want to understand how that clock works that is their goal and they are quite willing to sacrifice a working clock to achieve that goal. Homo sapiens, on the other hand, like to have clocks that work. Their goal is to be able to know what time it is, and in exchange, they will forego knowing what makes the clock tick.

graphics/07inf04.gif

Interaction designer Jonathan Korman points out:

Most people cannot understand the degree to which computers fascinate programmers. The difficulties of learning about computers only strengthen the programmer's sense of satisfaction. Their interest runs so deep that it never occurs to them that others might not feel the same way, so they interpret others' frustration as stemming from inability rather than from disinterest.

Programmers' drive to understand makes them instinctively create interaction that closely follows the internal functioning of the product. Instead of making the program mirror the end user's goals, it reflects the working of the mechanism within. Programmers are naturally comfortable with it because when they understand how the software works, they understand how to use it. We call this common interaction style implementation model. For example, computer documents are permanently stored on disk drives, but programs can only modify documents while they are temporarily stored in RAM. Programmers are very comfortable with this technical distinction, so the interface to their programs reflects the two storage types. Exposing the two types to the user is as unnecessary as putting a switch on the dashboard of your car to force you to select between radial and bias-ply tires.

Normal humans are quite content not to know how something works, even though they use it and depend on it in their everyday lives. They see implementation-model interfaces as imposing an unnecessary burden of understanding on them. Programmers find such attitudes inscrutable.



Inmates Are Running the Asylum, The. Why High-Tech Products Drive Us Crazy and How to Restore the Sanity
The Inmates Are Running the Asylum Why High Tech Products Drive Us Crazy &How to Restore the Sanity - 2004 publication
ISBN: B0036HJY9M
EAN: N/A
Year: 2003
Pages: 170

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net