Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


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

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.


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.


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

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

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.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.