97 Things Every Programmer Should Know

(Chris Devlin) #1

Collective Wisdom from the Experts 143


Martin Heidegger studied closely the ways that people experience tools. Pro-
grammers build and use tools, we think about and create and modify and
recreate tools. Tools are objects of interest to us. But for its users, as Heiddeger
shows in Being and Time (Harper Perennial), a tool becomes an invisible thing
understood only in use. For users, tools only become objects of interest when
they don’t work. This difference in emphasis is worth bearing in mind whenever
usability is under discussion.


Eleanor Rosch overturned the Aristotelean model of the categories by which
we organize our understanding of the world. When programmers ask users
about their desires for a system, we tend to ask for definitions built out of
predicates. This is very convenient for us. The terms in the predicates can very
easily become attributes on a class or columns in a table. These sorts of catego-
ries are crisp, disjoint, and tidy. Unfortunately, as Rosch showed in “Natural
Categories”* and later works, that just isn’t how people in general understand
the world. They understand it in ways that are based on examples. Some exam-
ples, so-called prototypes, are better than others and so the resulting categories
are fuzzy, they overlap, they can have rich internal structure. Insofar as we
insist on Aristotelean answers, we can’t ask users the right questions about the
user’s world, and will struggle to come to the common understanding we need.


*ognitive Psychology C 4: 328–50 (1973)

Free download pdf