Making people think

Software makes us think. Sometimes, it aids productive thinking by pointing us toward the right things to think about. Other times, it gets in our way, poses confusing choices, and generally frustrates us; this unproductive thinking can be seen as the cost of doing business with an ineffective interface.

Christof van Nimwegen's doctoral thesis focuses on the ways in which software can be used as an aid in creative thinking, and it specifically discusses the trade-offs between requiring users to construct an internal understanding of the system, and externalizing that system in the interface, via menus, dialogs, or wizards.
Bill Thompson, a regular commentator on the BBC World Service program Digital Planet, enthusiastically responded to the paper with the following:

It is also the sort of basic psychological research that we desperately need in the Web 2.0 world where major sites like Facebook are constantly being redesigned on the basis of little real understanding of how people engage with their computers.

I was interested to see someone addressing interface design from a strictly psychological perspective, rather than one rooted in interaction design:

We concluded that relieving a user’s memory and making interactions assisted by externalizing information does not have beneficial effects. It makes users count on the interface and gives them (unrightfully so) the feeling that the task and thinking-work is partly done for them, which seduces users in more shallow cognitive behavior.
Wizards can have the effect of seducing users into shallow cognitive behavior. When users are guided through a simple process, they are often shielded from an underlying complexity. While saving the user time and effort in the short term, the wizard may also make them less capable in the long term because they haven't had to deeply consider their actions.

Nimwegen continues:
... Interaction should facilitate or even persuade users to learn what underlies the task they are doing. The same is true in situations where interruptions are commonplace and where in the meanwhile mastery of what is underlying a task or domain is desired, or when operations come with a cost and direct solutions without deviations are the aim. In designing our interfaces we have to be careful with providing interface cues that give away too much, and must design in such a manner that the way users (should) think is optimally supported, which in turn could help the software to achieve its specific goal.
Not every task is important enough to teach users the mechanisms that support it. Many interfaces benefit from a level of abstraction or decoupling from the underlying processes. The spirit of this research is to point out that the effort to dumb down can go too far. Removing some of the obstacles to learning complicated or deep domain applications may actually do more harm than good for a user.

For example, a beginner may struggle to through the myriad complexities of 3D modeling software, and this struggle may in the end produce more competent users. The software shouldn't erect unnecessary obstacles, but a learning curve that is too shallow may actually hinder their ability to really develop competence in program in the long run.

(Via BoingBoing)