Here’s a pattern I see a lot in discussions of development practices:
You get the idea.
I highlighted what I think is the key point n this conversation: the fact that the Skeptic learned about Practice X from a book. It could just as well have been a Wikipedia article or a series of blog posts. The point is that our Skeptic tried to put into practice something which he had never witnessed first-hand, and was disappointed at the results.
It strikes me that there is a form of cargo-culting going on here. Only in this case, when the cargo planes fail to arrive, the cultists experience an understandable crisis of faith. Sometimes followed by a period of angry backlash against the”faithful”.
In some Buddhist traditions the concept of “Dharma transmission” is held to be central. A Dharma transmission is the direct person-to-person teaching from master to student. A teaching is regarded as true and authentic if a lineage of direct transmissions can be traced, teacher to teacher, all the way back to Sakyamuni Buddha himself.
Dharma transmission cannot occur through reading holy books. It must occur in person. I think this may sometimes be true of software development practices as well. We have a wealth of books and articles on best practices. You can learn everything there is to know about Test-Driven Development or Separation of Concerns without ever leaving your desk. But without sitting down with a master and working through a real-world problem, you risk missing that moment of enlightenment when everything clicks into place.
I’m usually quick to say “you’re doing it wrong; read more and try again” when I see people complaining about practices that I find profoundly beneficial. But maybe that isn’t helpful. Maybe some understandings can only be effectively passed by direct transmission.