« Using Cytrix in the education environment | Home | Going back to an untruncated RSS feed »
July 12, 2002
Extreme programming vs Cooper's interaction design
A bit of introduction: the major project I'm working on at Georgia Tech is a campus portal. I'll try to blog more about the subject of portals at another time, but for now, portal software aims to give each member of the campus a personalized view of the resources of the campus: a student might see their class schedule and grade information, a faculty member might be able to update a class calendar, staff members might have a view of their own, alumni another .. you get the idea. But to the point: I've been thinking about two schools of thought that seem to be in conflict, but both of which might have applicability in Tech's campus portal project: Extreme Programming, and Alan Cooper's Interaction Design.
I've come into this portal project after a long evaluation process that involved both the central IT staff and people from what we've been referring to as the "functional side" of the campus. Tech went through a selection process, and eventually decided to work with one of the vendors who's big in this space. (I won't say who right now; I'm not sure the campus has officially made the announcement.)
I'm concerned that we run a big risk of not delivering something that the customers - those "functional" people - will find useful. I've heard it said that when the functional folks saw the demo from the portal vendor, they said "That's what we want." That's not surprising; most of us think that way. "I don't know what I want, but I'll know it when I see it." But it's a long way from a idealized demo by a vendor to being able to pull that off in a real-world environment.
The trick is to give customers the ability to give feedback along the way. A model that starts with talking to the customer to get requirements, and then goes off for a year to build what they said they want is headed for a train wreck.
Both Extreme Programming and Alan Cooper's Interaction Design get at this problem in different ways.
Extreme Programming (universally referred to as XP) is a methodology of programming which involves short cycle times working closely with the customer. In XP, the development team works in two week cycles, and works on implementing customer stories: stories being small enough pieces of functionality that can be implementing in a short space of time. The theme underlying XP is "embrace change:" since we know user requirements will change, we make a virtue of it. XP uses the metaphor of driving to illustrate this: you don't drive from Los Angeles to New York by pointing the car in the direction of New York and then closing your eyes for the next 40 hours: you have to make small corrections along the way.
Interaction Design relies on a tight loop between customer and interaction designer before coding begins. The interaction designer concentrates not on what the software will look like, but on what it will do. Interaction design concentrates on using this process to drive the requirements. This makes sense: you can't know the requirements until you've got a good idea of what you're trying to build.
Cooper's methodology also relies on personas: archetypal users that are used as stand-ins to help define the requirements. In the campus portal project, we might have a persona for a faculty member, another for a student, one for a research faculty, and so on. Interaction Design goes through the goals and needs of each persona to make sure the resulting design serves everyone.
Some resources follow-up on these topics:
Extreme Programming
The canonical book is Extreme Programming: Embrace Change
A Google search on "extreme programming" will yield boatloads of results, but here are a couple of good places to start:
- Extreme Programming: A Gentle Introduction
- The Extreme Programming Roadmap is another good place to start. This site uses Wiki technology, which is fascinating stuff in it's own right. But that's for another time. (Tech has it's own implementation of Wiki technology called Swiki.
Interaction Design
The reference to have is Alan Cooper's The Inmates Are Running the Asylum : Why High Tech Products Drive Us Crazy and How To Restore The Sanity. This is one of my favorite CS books out there. The first chapter of the book is available at Cooper's web site. This first chapter hooked me right away with this riddle/koan for the computer age:
Q: What do you get when you cross a computer with a camera?
A: a computer!
Fitting the two together
Finally, there's a couple of other resources that look at the interaction between XP and Cooper's thinking. Fawcette Technical Publications has a splendid joint interview between Kent Beck, the author of the first XP book, and Alan Cooper.. Jon Udell also has a very nice essay on the same topic.