Ms. Dekkers and Mr. Beck talk about some of the elements of eXtreme Programming, including test first programming, programming in pairs, and stories.
TEXT TRANSCRIPT: 5 December 2000
Copyright 2001 Quality Plus Technologies and Carol Dekkers. All rights reserved.
Announcer: Welcome to Quality Plus e-Talk! with Carol Dekkers. This program will focus on the latest in the field of technology. All comments, views, and opinions are those of the host, guests, and callers. Now let's join Carol Dekkers.
Carol: Hey, welcome to the show. I'm Carol Dekkers. I have as my guest this evening another person who has really taken the world by storm, and is one of what people like to call "The Three Extremos." I think the same caliber as one of The Three Tenors. I'm very pleased to have Kent Beck on my show. Let me give you a little bit of background about Kent. He's a programmer. He's best remembered for pioneering patterns for software development, the rediscovery of test-first programming, the J-unit testing framework, and most recently, for eXtreme Programming. He's the author of a fairly recent book called eXtreme Programming Explained: Embrace Change. So, welcome to the show.
Kent: Well, thank you very much. I haven't ever been interviewed on radio before, so I had to get over my urge to dress up. But I'll do my best here.
Carol: And this week, you're actually in Santa Cruz, doing something I thought was very interesting, called an XP immersion class.
Kent: Yeah. We take a week, and take a group of about 30 programmers and 10 or so business people through the experience of doing extreme programming, soup to nuts. So they do a little project, and they get a chance to practice all of the various techniques involved in XP, and oftentimes experience the emotional changes that go through-despair and exhilaration and triumph, and so on. Hopefully, if we get those in the right order, then they recommend that other people come to the class.
Carol: It sounds a little bit like traditional programming, that there's despair, there's hope, there's joys, there's fears, and life in general. For our listeners, maybe you could share with us…What really would you say encapsulates extreme programming? What is extreme programming in two minutes or less?
Kent: Well, if you imagine you were a customer for a piece of software. And imagine further that you could write down all of the features that you wanted that software to have. And let's say you wrote those one per index card. Now, what you could do…And one further simplifying assumption that won't kill our model, but for the moment…Imagine that your team can implement one of those features every week. So if you wanted to know how long the software would take, count the cards. Okay, this is 26 weeks because I have 26 cards. Every Monday you could come in, and you could look at the cards and you could think, well, what is most important to me? What would I like the team to work on this week? You pick the card that's most important, you hand it to them. On Friday, you'd have that feature added to the rest of the system. And then you continue like that. The advantages from the business side is that you can change your mind midstream, you can be sure that the team works on the most valuable stuff first, instead of messing around with pointless technology, and the team doesn't complain when the requirements change. I hate that word "requirements."
Kent: You know, if you have a set of requirements and you build a system, and it doesn't do all the requirements, you generally still get paid unless you really