Design

Dave Thomas Interview: The Corruption of Agile; Ruby and Elixir; Katas and More

The pragmatic programmer who popularized Ruby and katas and was an original signatory of the Agile Manifesto discusses what's wrong with Agile, why he thinks Elixir is the next killer language, and how to design your own programming challenges.

DT: Yes, that was the depressing thing for me. I came away from Snowbird feeling really happy. And within a month, I realize it wasn't going to work. And I have not been involved in anything even called "Agile" until last month.

AB: Last month?

DT: That's right, last month. I have not gone to any Agile conferences. I have not joined the Agile Alliance.

AB: Why is that?

DT: Because it got immediately productized in many different ways. The whole point, to my mind, of the Agile Manifesto is that it's a set of personal practices that may scale to team level. You do not need a consultant to show you how to do that. It may help to have someone facilitate, but you do not need a consultant. And yet immediately what happened was that everyone and their dog hung out an Agile shingle and the whole thing turned into a branding exercise.

AB: Yes.

DT: And so now in the software world, if you're selling something and it doesn't have the word "Agile" somewhere in the title, it's not good. And I hate that because we had something that was…it was my best attempt at the time to present a set of free-standing, self-contained values that could be applied by all. And now it's just become mush. It's become devalued to the point where it doesn't mean anything.

AB: Everything has to at least do lip service to Agile to be adopted today.

DT: I also have a pure English-language abhorrence to the people who use Agile as a noun. As in "I do Agile." No you don't. It's like saying "I do orange."

AB: When you were meeting at Snowbird, was there a feeling there that you were doing something important that was going to change software?

DT: Good question.

AB: The fact that you chose the term "manifesto" suggests that you were planting a flag.

DT: There was a lot of discussion at the time about what it should be called. And, to be honest, I can't remember to what extent we were thinking of posterity when we came up with the word "manifesto." Even the word Agile was debated a lot.

AB: That's what I've heard.

DT: I think we discussed "lightweight." There was some sense that this was going to be bigger than the 17 of us because we agreed on the last day that Ward [Cunningham] was to go create a site that would allow people to sign up. Ward is someone who is always building community. And I think we all went along thinking that would be a really good way to spread the word. But the reality was that I don't think any of us were particularly marketing people. The fact that it took off as quickly as it did was that we just happened to say the right thing at the right time. We didn't actively push it particularly, it just kind of pushed itself or actually pulled itself.

[Folks] who knew about CSP and Prolog thought they could marry the two and they created possibly the world’s ugliest language, Erlang.

Ruby

AB: You're the person who can take credit most for having popularized Ruby.

DT: Yeah, I'm OK with that.

AB: My perception is that the Pragmatic book and then the Pickaxe book laid the seeds. And Ruby on Rails was the tinderbox. Would you agree with that?

DT: Yes. Do you know the story of why we wrote the Ruby book?

AB: Pray tell.

DT: So the story is, we [Andrew Hunt and I] had finished writing Pragmatic Programmer. And in that book, there's a section on domain-specific languages (DSLs). And we really wanted to expand that section. In particular, we wanted to write about expressing a system as a domain-specific language. Because we felt that if you did that, you could show the DSL to your customer and they'd be able to understand it and then, by throwing a switch, it would be able to execute. And so we thought that was kind of cool.

AB: Yes.

DT: So we started writing a book about DSLs, and we chose Ruby as the vehicle for that simply because I'd fallen in love with it while writing the Pragmatic book. And so we found ourselves trying to explain what we were doing on the Ruby side of things. So, we realized that we had to document the Ruby language first and then come back and write our book. And in the way of these things, what started as 15 pages documenting Ruby quickly grew to 400 pages and took up all our time. At that time, we hadn't been working for three-and-a-half years and so we decided we needed to stop and get back to honest work.

AB: So you went directly from the Pragmatic book to the Ruby book?

DT: Yes, pretty much. I think there may have been a month or two in the middle, but not much. So we produced the Ruby book and it was delivered to absolutely no interest whatsoever. Pearson published it and it really did not do well. It sold a few thousand copies. It didn't really take off big-time until Rails came out. And then when Rails hit, it went exponential for a while because Rails solved so many of the problems that people had at that point.

Elixir

AB: You're writing a book about Elixir and you're lecturing about it at this conference. Why should anyone be interested in Elixir?

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Video

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!