Working Remotely? Thinking about it?

Are you a member of a geographically dispersed team? Are you thinking of working remotely, or hiring remote developers? Wide Teams is my new blog and podcast for distributed teams. Check it out for getting started guides, tips and best practices, news, interviews, screencasts, and more all about working remotely and collaborating with wide-spread teams.

Cargo Cults and Dharma Transmission

2010 February 8
by avdi

Here’s a pattern I see a lot in discussions of development practices:

Skeptic:
I’ve tried practice X, and it doesn’t work
Believer:
What do you mean it doesn’t work? It works for me and everyone I know. You must be doing it wrong.
Skeptic:
Nonsense. I did it exactly the way the book says to do it. You’re just a blinded by the kool-aid.
Believer:
Unprofessional lout.
Skeptic:
Deluded imbecile.
Believer:
I know you are, but what am I?

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.

Bookmark and Share
Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.

No related posts.

  • I never really got the SOLID principles until I started working on my current project. I'd drunk the kool-aid, but it was pure dogma. This project is *huge*, and it's incredibly easy to write horrible code. The techniques we use to avoid brittle, cumbersome code turn out to be the SOLID principles. Go figure.

    Direct transmission is good, but direct transmission through object lesson is even better.
  • Alexandre "Zandao" Drummond
    "Maybe some understandings can only be effectively passed by direct transmission."

    I think that's exactly what the software craftsmanship guys are doing. BTW I would like to see more "Coding dojos" out there, all around the globe, proliferating this kind of person-to-person practices.
  • This reminds me of Chad Fowler's "try to be the worst guy in whatever band you're in" - if you work somewhere with people that are more experienced than you, you are likely to get more dharma transmissions...
blog comments powered by Disqus