A CONVERSATION WITH STEVE BOURNE,
ERIC ALLMAN, AND BRYAN CANTRILL
Photography by Tom Upton
In part two of their discussion, our editorial board members consider XP and Agile.
In the July/August 2008
issue of ACM Queue we
published part one of a
two-part discussion about
the practice of software
engineering. The goal was
to gain some perspective
on the tools, techniques,
and methodologies that
software engineers use
in their daily lives. Three
members of Queue’s
editorial advisory board
participated: Steve Bourne,
Eric Allman, and Bryan
Cantrill, each of whom
has made significant and
lasting real-world contributions to the field (for more information on each of the
participants, see part one). In part two we rejoin their
conversation as they discuss XP (Extreme Programming)
ERIC ALLMAN We’ve talked a fair amount about tools,
design methodologies, and a lot about debuggers, but we
haven’t really talked much about programming practices
and styles. These days you probably have to be dead not
to have heard about XP and Agile. I’m interested in XP,
and have been for a while. One of the things that interests me, though, is that it doesn’t really look like there’s
much new in it. A lot of the principles have been around
awhile—for example, unit testing? Gosh, when did I first
hear about unit testing? I might have been out of diapers,
but not by much.
Pair programming seems to be one of the most controversial principles. It’s also one of the most variable. For
example, I’ve worked with people where we were together
in a room and we’d go off and each be coding something
and then come back and compare things—design reviews,
that sort of thing. That’s not the same as having us both
at one keyboard. I’m skeptical about having half as many
keyboards as you do programmers. That seems pretty
crazy and pretty expensive to me.
BRYAN CANTRILL I think Agile goes too far—for our
team, anyway. Co-developing, where you’re sitting
together all the time, is just too much. Does anyone make
an office chair that has two seats in it? Actually, someone
should. I think I just stumbled upon “the Agile chair.”
EA The next start-up.
BC Exactly. The Agile swivel chair—with two chairs
mated, so you can both turn around at the same time.
EA That’s a great visual.
BC I think it’s the power of peer pressure, and Agile
captures a little bit of that by having the peer seated right
next to you—“should we be spacing out on the Internet
right now or should we be working on this problem?” I
always wonder how much of Agile’s productivity gains
come from the fact that it’s really hard to space out on
the Internet when you have someone right next to you.
EA XP also has certain ideas about coding standards,
though they do not seem very controversial, and people
have been doing this for a long time.