Extreme Programming vs. Interaction Design 22 Aug 2005
15 comments Latest by Anonymous Coward
Kent Beck and Alan Cooper each represent an approach to development and design that aims to create better software. But while there’s overlap, there’s at least as much difference. In an interview with the two luminaries, Cooper believes that designing all the software up front will save us from the cost of programming:
There’s enormous cost in writing code, but the real cost in writing code is that code never dies. If you can think this stuff through before you start pouring the concrete of code, you get significantly better results. You get significantly more efficient programming and you don’t end up with pulled teeth.
Naturally, this doesn’t gel very well with the notion of constant and complete iterations. Partly because it assumes a price on software development that no longer necessarily is true in all domains. Especially web development with modern tools.
And partly because it assumes that the interaction designers “… have the capability of visualizing something as complex as the behavior of software” while the customer does not. It’s our experience that designers, as much as customers, need to see something real in order to produce good designs. Trying to design the whole thing up front is simply too hard and, more importantly, not a beneficial way of developing software.
But while it seems that some Cooper’s assumptions might be eroding, he brings an excellent perspective on the role of design into the traditional XP-idea of a customer-programmer relationship. Just as we’ve said before, programmers alone can not bear the burden of designing software alone.
You definitely need a customer-designer-programmer triangle, but once you have that, it makes a lot of sense to have it play in an XP-like framework of iterations and just-in-time decisions on both features and implementations.
Getting Real is, in large part, an attempt to take Cooper’s notion of design and fit it into XP’s iterations. Design needs to be the bridge between customers and programmers, but it also can benefit from being informed throughout the development. Don’t attempt to fortune-tell it all upfront.
UPDATE: A fellow student from my time at the Copenhagen Business School has actually just recently explored the mix in a paper entilted Introducing User-Centered Design to Extreme Programming (PDF).