Joe's Jottings
Jottings Number 33, by Joe Podolsky:
From: uunet!HP-PaloAlto-om4.om.hp.com!JOE_PODOLSKY
Date: Tue, 13 Jun 95 15:14:31 -0700
The June, 1995 issue of "Communications of the ACM" is focused on "cognition and software development." It contains several articles about "research in the mental aspects of programming." Interest in this topic is, of course, not new. One of the most important books of the 1970's, for example, was Gerald Weinberg's, "Psychology of Computer Programming." Its main contribution was simple. Weinberg told us that programmers had egos and that those egos got in the way of the goodness of their work. After reading the book, we all talked about "egoless programming," and that led us to walkthroughs and finally to formal inspections, which is still arguably the best available tool for improving the quality of systems, software, and process development. (If you aren't completely familiar with formal inspections, call Tom Van Slack in Corporate Engineering right now - telnet 857-6504.) Similarly, Tom DeMarco and Tim Lister wrote "Peopleware" in 1987 stressing the human aspects of the development process. One of the articles in the "Communications" is "From Programming Environments to Environments for Designing" by Terry Winograd, a well-known computer science professor at Stanford University. Winograd focuses, not on programming, but on the "wider picture of software design..." He quotes a 1991 comment by Lotus founder Mitch Kapor in which he said, "The lack of usability of software and poor design of programs is the secret shame of the industry." Winograd points out that all technology goes through three distinct phases, and he uses the radio, the automobile, and the telephone as examples. Phase 1 is technology driven where the early adopters play with the invention for the challenge and novelty. He notes that we owe a lot to the "brave pioneers who tackled the Altair or the Osborne." Phase 2 focuses on productivity-driven issues. Here the mainstream pragmatists want to see business results, increased efficiency, productivity, and/or profits. Phase 3, then, is appeal driven. In this phase, we go after discretionary users. "The emphasis is not on measurable cost/benefit analyses, but on whether it is likable, beautiful, satisfying, or exciting." This phase is about people choosing convertibles over Ford Tauruses, or multimedia laptops over UNIX workstations. The hardware examples are clear. But where are we in information systems? We are certainly well-into phase 2, at least. But have we made it yet to phase 3? If so, are we prepared to offer our customers "likable, beautiful, satisfying, or exciting" systems? And, if not, what must we do to get there? Winograd suggests four "environments for software design" that will help us flourish in phase 3. The first is "responsive prototyping media," specifically, interactive programming, and responsive prototyping media. He talks about using these techniques to "sculpt" the system, having a kind of "reflective conversation with the (design) materials." Along these same lines are tools such as "rough hand sketches and scenarios," "low-fidelity prototypes," "programmed facades," and "prototype-oriented" languages." His second environment consists of "user conceptual models" for specifications. When Winograd talks about conceptual models, he means the "virtuality that lies behind the interface seen and manipulated by the user." Software designers are free to create worlds of their own choosing, metaphors to the real world, or even worlds that are impossible outside cyberspace. Those degrees of freedom are the heart of most computer games, but are almost never explored in the more rigid confines of business processes. But why are we limiting ourselves in this way? Why are our systems only in black and white when we have a full spectrum of colors on our palette? His third environment talks about "design languages." He stresses the need for "reusability," not necessarily for design efficiency but for the creativity that comes from collaboration, from building with and on the ideas of others. He talks about languages encouraging intuitive behavior. He talks about "genre" and "style," words that come from the worlds of art and fashion and philosophy. And last and not least, Winograd talks about the environment of "participatory design." Yes, invite the user into the design session, but, more importantly, invite the technical folks into the world that the system will be used in. If you need a fancy term to satisfy your boss, Winograd suggests calling it "contextual inquiry." And he quickly translates that into, "Follow your user home." He warns that we must looks at systems used not only by individuals, but in their organizational context, that we strive for the "co-evolution of (process) practices, tools, and social systems." This is a pretty ambitious challenge for an information systems community that still struggles to deliver software packages on-time and on-budget, but it's what our users expect. Spreadsheets were pretty exciting ten years ago, but the people in our processes now want to "fly" through their data bases like the actors did in the movie, "Jurassic Park." Have any of you seen "cool" information systems? I haven't, but I sure would like to. We're entering Winograd's phase 3. The only question is whether we will lead the way there...or be dragged there by the Nintendo sensibilities of our customers. Regards, Joe