InfoWorld: I've seen the phrase, cowboy coding. What's the difference between agile and cowboy coding?
Beck: Cowboy coding [is something] which I've enjoyed at times in my life, although not the consequences.... In cowboy coding, you go off and you do heroic stuff and you feel good about yourself because you figure there's nobody else in the world that could have possibly pulled out something like this. XP-style development is courageous, it shares that with cowboy coding. You're going to go and do stuff, there's a bias to action in XP. But cowboy coding is completely opaque, and XP is transparent. Cowboy coding is a solitary activity, and XP is a team activity. Not just programmers working together, but customers, managers, testers. So I think there are contrasts.... The superficial similarity that a lot of people latch onto is that you get going and you do stuff. So you're cutting code very early. You're cutting code not because you're afraid of not cutting code. You're cutting code because it's what generates real feedback.
InfoWorld: You're talking about agile?
Beck: About XP, in XP style. But a cowboy coder will do the same thing. You'll get halfway through the problem definition, they'll say -- okay, okay, I got it, I got it. Go off and start typing. Well, it kind of looks like the XP team is doing that, but they're not because the cowboy coder has finished the conversation and the XP team has just started the conversation.
InfoWorld: Has cowboy coding worked ever?
Beck: Sure, in the short run, and it has huge risks and huge costs, huge hidden costs. I have stories, but it can work at times. And it's a whole lot better than gridlock. But those aren't the only two options.
InfoWorld: What about the situation where you have software now being developed by different teams in different parts of the country at different hours of the day? Is that addressable by agile?
Beck: Yes. That's the way that I work most of the time because I live in southern Oregon, and I still program for a living for a big part of my time. So I'm doing geographical development all the time. Time zones are a challenge. The big challenge is maintaining personal relationships when you're not seeing people. That's what's really hard about it. If you do that, if you have good relationships with people, then you can work out the technical [details] -- who does refactoring when and who's going to check in which code and that stuff all works out. But it's the relationships that are hard.
InfoWorld: What about Java versus .Net? Does that factor into agile and XP at all, or does it really not matter?
Beck: The more the technology platform lets you make changes at a low cost for a longer time, the better suited it is for agile development.
InfoWorld: So how does that fit in with say Java versus .Net, or does it not really matter?
Beck: I don't think either platform was built with sustainable ease of change as a primary design criteria. That's the sense that I have.
Paul Krill is editor at large at InfoWorld.
Talkback
E-mail
Printer Friendly
Reprints



