Extreme Agility: A Conversation with Laurie Williams, Ph.D.
You've heard of Extreme Sports and even Extreme Doritos, but would you believe Extreme Programming (XP)? After completing her Ph.D. dissertation on "The Collaborative Software Process," Laurie Williams is a believer. Williams now works in the computer science department of North Carolina State University, where she continues her research into how XP can help achieve business goals. Web Techniques caught up with her to see what all the fuss is about.
Web Techniques: What's so extreme about Extreme Programming anyway? The name alone is enough to scare off a lot of managers.
Laurie Williams: The name comes from Kent Beck's "turning the dials up to ten" analogy. Code reviews are good, so do them all of the time by writing code in pairs. Testing is good, so do it all of the time by writing tests before you write code. Do whatever you do to the extreme. The name has definitely turned some people away. But it has also made many stop and find out what it is instead of passing it over.
WT: OK, so how do you program in pairs?
LW: Pair programming is a style of programming in which two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, or test. One of the pair, called the driver, types at the computer or writes down a design. The other partner, called the navigator, has many jobs. One is to observe the driver's work, looking for tactical and strategic defects. The navigator has a much more objective point of view and can better think strategically about the direction of the work. It's also very important to switch roles periodically.<>