I very much liked this list of design traps. It’s taken from the middle of a paper (pdf) by the always brilliant Phil Agre. In that context Phil is talking about the problem of designing a technology rich system that will presumably transform an existing large social institution, libraries. But it’s a really good list for all those situations where your designing a system that is expected to transform behaviors in an existing institution.
The trap of …
- … presupposing standards
- … deriving political consequences
- … automation
- … assuming rapid change
- … command and control computing
- … inventing a new world
- … blaming resistance
- … assuming away intermediaries
- … technology
- … designing for a limited range of cases
- … presupposing transparency
I want to chew on these a bit, so hopefully this posting will get revised over time. These are my restatement of what Phil writes, which is of course much better.
Standards: Never presume things are interoperable. Standards are hard work and only rarely emerge. Let’s repeat that, they rarely emerge. Most systems are heterogenous aggregations with much, if not most, of their substance in the glop that inter-connects their parts.
Politics: Never assume your technology leads to your desired political outcomes. This one’s facinating because consensus that the work at hand is creating a social good is always a constructive driver of large change. It maybe a near certainty that one will get piled on. But! Systems design is a thicket of unintended consequences. This one’s very entangled with the standards, hierarchy and intermediary traps.
Automation: Designs reshape roles, they don’t meerly automate existing chores. At first blush you may look at your system as lifting a burden off some actor in the old system; but it is useful to realize that in fact you are negotiating the nature of the work. This is often why system designers tend to automate other people’s work, not their own. This kind of negotation is politics; not in the big idea sense but the complex local politics of successfully integrating diverse points of view and need.
Rate of Change: Chips, communications, and network effects can grow amazingly fast; meanwhile social, physical, and economic systems are be very resilient, durible, and slow to change. System design takes place in the huge space between. Any assumption you make about real rate of change should be viewed with extreme suspicion. Note the irony in the standards trap mentioned earlier: assuming standards, and hence interoprablity, is the presumption that there is a stable durible social foundation you can build on.
Hierarchy: Phil’s argument here is that historically computer systems drew most of their funding from hierarchtical organizations both commercial and milatary and that has created a bias in our tool kits and mind sets. True. But that’s not the only reason why edge emphasising design patterns are so scarce.
… more later
Phil’s paragraphs on these are at the tail end of section two of the paper (pdf).