
Automobile skeptic: Driving doesn’t always work. I tried it once and crashed into a tree.
Automobile zealot: How did that happen?
Skeptic: I was driving down Hazel Street, reading a magazine. And then suddenly, out of the blue, I hit the tree.
Zealot: But you can’t read magazines while driving a car!
Skeptic: Why not?
Zealot: Because then you’re not paying attention to the road ahead of you.
Skeptic: So what? I’ve familiarized myself with the driving process, I’ve even read a book about it. Nowhere does it say you can’t read magazines. Clearly, you are blinded by your own religious convictions. Whenever driving fails, you driving zealots find some way to explain it away. No logical argument will ever make you admit that driving can cause problems.
Too many conversations about agile development methods resemble this one. I came up with it after reading a column by Andrew Binstock called “the Zealots of Agile“. Binstock is merciless:
The agile movement has been nothing if not evangelical, even messianic, since its inception. From its founding with the publication of a manifesto (a manifesto!) to its subsequent, continual attack on the so-called waterfall model, agile and its exponents have hewn closely to the position that theirs is the one true path. And, consistent with this evangelical view, those who disagree either don’t really understand agile or are irretrievably deluded. For the deluded, only spectacular failure of their project will open their eyes.
In a blog post, Uncle Bob argues in detail why this is inaccurate and calls it “a load of dingoes kidneys”. But if it is, why does this particular load of dingoes kidneys keep getting dumped in this particular place?
Above all, it’s inevitable. Anyone who pioneers something radically new and different has to be prepared for this kind of accusation. Agile development is a paradigm shift, and paradigms are, to a large extent, mutually incomprehensible. We may all be “religious fanatics” if seen from the perspective of a different paradigm than our own. To some extent, we all resist challenges to our basic assumptions, and this is always easier to see if you don’t share them.
The problem is not that some are skeptical of agile development processes. That’s unequivocally a good thing. Being too quick to label someone else as a fanatic is not so good. That’s an effective way to stop fruitful discussion and learning. I’ve also noticed (in general, not just on this subject) that those do this are often stuck on a particular point of view themselves. Also, they sometimes seem to believe that they are totally free of prejudice and irrationality themselves. But of course, they aren’t. No one is.
Binstock’s fallacy is a misunderstanding of the aims of agile leaders. A religous or ideological fanatic is obsessed by being right and by convincing others of their own rightness and righteousness. In contrast, there are those who are passionate about principles and practices because they want to do better. Often, being right or wrong doesn’t really matter to them. I think Kent Beck, Robert C. Martin and others not mentioned by Binstock belong to the latter category. But if you place them in a confrontational setting, you gain licence to misinterpret their behavior as an attempt to be right. And it seems to make sense. In the real, pratical world, changing your mind without mentioning it typically just means that you’ve learned something. In the artificial world of confrontational debate, it looks like an evasive tactic. In the real world, explaining why failure happens is a step toward improving your process. In confrontational debate, it can be seen as an attempt to explain away the shortcomings of that process.
The confrontational framing of the situation is logically consistent, but rests on a false assumption: that it is in fact this kind of game the agile leaders are playing.
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_a.png?x-id=d5a302a4-77b6-49f5-8ab1-d27e212092bc)
You probably know my take already – I’m a zealot
. But practically any Agile related post I make always states there is no one true path. There is always room for manouvering, borrowing, adapting and even outright rejecting from any body of knowledge. Some stuff works, other stuff fails – every project, web shop and individual is different with varying needs. Criticism is valuable when it critiques – not when it’s an accusatory rant that doesn’t add to the debate.
I use the term “fanatic” for someone who is very enthusiastic about their favored subject. But one can be a fanatic about Agile Development without demanding that everyone else adopt it.
I use the term “zealot” for someone who can’t abide people who don’t share their fanaticism. They are compelled to advocate for their favored subject, and try to “convert” anyone who will listen (and some others besides).
I’ve known zealots for Eclipse, for Agile Development, for Ruby on Rails, for Cloud Computing, etc. Oddly, some of the people who are the strongest zealots for some specific tool or method still can’t write good software.
I agree. Of course, there language wars, editor wars and all that. And the wars are often based in ignorance about the tools the particular warriors zealots are not using. They often just assume that what they haven’t heard of doesn’t exist. I particularly remember one ardent Microsoft hater I knew many years age who, on seeing a PowerPoint example, exclaimed “oh, can you do that with PowerPoint?” Not that I particularly love Microsoft Office, but what’s the point of bashing a piece of software when you don’t even know what it’s capable of?