Tuesday, September 02, 2008

Passionate, Not Dogmatic

Ted Neward recently wrote a blog entry that began with the following text:
... the debates have begun, with all the carefully-weighed logic, respectful discourse, and reasoned analysis that we've come to expect and enjoy from this industry.

Yeah, right.
Ted's comment is funny because it's true. Ted's comment is also disappointing... because it's true.

In the past 3.5 years I had the opportunity to interact with some of the smartest people in our industry. I consider many of those smart people to be among the best software developers in the world. Unfortunately, some of the smart people I met weren't much more than assholes. The big difference I noticed between the two groups was -- The assholes were dogmatic, while the best developers were passionate
passionate: expressing, showing, or marked by intense or strong feeling
dogmatic: asserting opinions in a doctrinaire or arrogant manner
--dictionary.com
The difference between passionate and dogmatic is slim, but the result is dramatic.

Martin Fowler is a great example of someone who is passionate without being dogmatic. For example, Martin is a classicist, he prefers state based testing. However, in Mocks Aren't Stubs Martin examines both points of view and makes no assertion on which was is absolutely correct. That's a tough thing to do, but the result is a classic article that both mockists and classicists often refer to. That's just one example, but almost every article by Martin provides at least 2 points of view. The result is extremely valuable.

I used to be dogmatic. I have no problem admitting it. My earlier writing is clearly arrogant and often shortsighted. Part of the problem was lack of experience. When you take an immature industry and give a platform to someone with limited heuristics you are bound to receive solutions with limited applicability.

As I gained more experience I realized that what I considered to be best practices were only best practices within certain contexts. I also realized that presenting something as the "one true way" only benefited those that worked within exactly the same context that I worked. People who follow my advice when it doesn't apply to their context must fail. The advice isn't flawed, but it is incomplete. You need to see the full picture.

Two interesting things happen when you write passionate entries instead of dogmatic entries.
  • Your advice is more widely and appropriately used.
  • Your traffic goes down significantly.
On a recent podcast Joel Spolsky noted that most advice needs contextual information. Unfortunately, contextual information implies that the advice isn't universally applicable. While that's great for a small subset of professionals who are interested in best practices and improvement, the vast majority of people in our industry are still in search of silver bullets. The easiest way to ensure that your advice is missed by the majority of the industry is to spend the first 2 paragraphs of the entry describing the context.

Conversely, our industry loves dogmatic advice. For example, DRY is blindly, dogmatically followed. I'm not a fan of blindly following DRY, so I wrote about the value of duplication within tests. I attempted to give a counter point of view with contextual examples, but at the end of the day the entry got a large amount of traffic solely from the authoritative title.

It's easy to spot the difference between a dogmatic entry and a passionate entry. The dogmatic entry focuses on the best practice alone. However, a passionate entry gives equal weight to context and the best practice. Passionate entries are much more likely to see successful application, even if they don't make the top of reddit.

Preferring passionate to dogmatic entries is ultimately good, but you suffer in the short term. A career in software development is obviously a long term play, but you can't always blame someone for looking for short term gains. Of course, Martin Fowler is an example of the success you can achieve by sticking with passion over dogmatism.

There is one large upside to being passionate instead of dogmatic: You gain significantly more opportunities to learn. I can't count the number of times in the last year that I've said "I prefer the way I'm suggesting because I know it works, but let's do it your way and see if it's superior". (credit: I'm fairly sure I stole that phrase from George Malamidis while we worked together at TrafficBroker) Sometimes I was right, sometimes I was wrong, but I always learned something by trying a new approach.

That upside is what I believe truly separates the best in our industry from the assholes. The passionate leaders are constantly learning the best ways to do things, while the dogmatic leaders have stopped evolving their approach. As I said before, both groups are smart, but the dogmatic developers can only get by on their wisdom for so long. Eventually all dogmatic leaders become irrelevant.

11 comments:

  1. Anonymous12:55 AM

    It seems that a move from dogma to passion is a natural consequence of learning from your own mistakes. I've certainly become less dogmatic with time as I've learned how frequently I can be wrong. In fact, the worst code I've written doesn't make me cringe as much as some of the foolish dogma I've spouted.

    Part of the appeal of dogma, I think, is that it allows you to seem smarter and more experienced than your really are. By reading and parroting dogmatic articles, you can sound like an authority on a subject you know little about. I also think dogma is what happens when developers try to fake passion.

    I suspect dogma may also be a reaction to the frustrations of working with developers who don't take their profession seriously. Consider the Prags (non-dogmatic) recommendation to learn a new language every year. A developer frustrated by working with a team that won't consider anything they didn't learn in college can easily twist that into the dogmatic, "If you don't learn a new language every year, you are unprofessional". And if that developer comes across an article spouting such dogma, it's unsurprising that such an article might resonate.

    ReplyDelete
  2. Anonymous3:28 AM

    You have hit the nail on the head. Very nice summation of the subtle differences in the people we interact with in our industry.

    ReplyDelete
  3. Not to put too fine a point on it, but if dogmatism leads to popularity then perhaps it's a viable short-term strategy for enhancing one's reputation? Viewed in that light one might well wonder at the ulterior motives even of espoused dogmatists.

    I myself am almost always passionate and occasionally dogmatic but try very hard to not be an asshole. But I am not convinced that the distinction is as clear as all that.

    ReplyDelete
  4. Anonymous9:18 AM

    see richard feynman's cargo cult science (http://www.lhup.edu/~dsimanek/cargocul.htm).

    a good scientist or engineer must have scientific integrity.

    "Details that could throw doubt on your interpretation must be
    given, if you know them. You must do the best you can--if you know
    anything at all wrong, or possibly wrong--to explain it. If you
    make a theory, for example, and advertise it, or put it out, then
    you must also put down all the facts that disagree with it, as well
    as those that agree with it."

    with out integrity one is disingenuous, which you call an asshole (a much better word, imho).

    ReplyDelete
  5. Anonymous11:44 AM

    I think a dogmatic stance can come about for several reasons but they all stem from a lack of self confidence. If you are confident in being able to say 'I don't know' then you are in a great place to learn.

    ReplyDelete
  6. I think the unfortunate thing here is that dogmatism is now associated with assholery. This means that everyone nodding their head in agreement with your point of view (which I think is valid) is more likely to associate assholery with dogmatism. Essentially this has qualified assholery with a much more inflammatory word.

    Goodness gracious! No one wants to be dogmatic! We all read this and now react dogmatically to those who may simply be assholes. We choose to label them as dogmatic rather than just admitting they may be simple assholes. We all feel so much better about the fact that we can label the people who are mean and aggressive with a colloquial insult that not only attacks their character but also their competence.

    Dogmatism isn't always a bad thing. From what I read, I would think that dogmatism may actually be valid in some contexts. Or maybe we can all start believing in the dogmatic idea that dogmatism and passion are not capable of cohabitation.

    ReplyDelete
  7. I have to admit its refreshing to read a point of view where someone supports the whole principle of modesty and has the confidence to admit they don't know everything.
    Particularly in your position I'm sure you get some pressure to play the role of uber-genius who never makes mistakes and knows everything, when of course you're right that to adopt that attitude is very short-term and arrogant even. I agree that maturity plays an important role too, allowing one the confidence to resist following the herd (as they rush towards the cliff edge) and that experience can only help us if we're willing to learn from it.

    ReplyDelete
  8. Anonymous12:16 AM

    Dogmatism describes the way a person holds and promotes an idea. Assholery describes the way a person relates to other people. Therefore (unless one is using the words in a different way, in which case we'd be speaking past each other) a person can most definitely be one and not the other.

    However, in my experience (and I daresay in the experience of most people), there does seem to be at least a slight correlation between the two. If Joe Programmer is dogmatically espousing an idea that he read on some guru's blog, even though he doesn't really know enough to draw this conclusion by himself, he's probably posing as more knowledgeable than he really is. When someone challenges the idea, he may feel threatened that his cover will be blown and he'll be exposed as a poser, so he lashes out and puts down the person challenging him. He has clearly at this point descended into assholery.

    ReplyDelete
  9. Anonymous11:17 AM

    Kudos, Jay, for admitting past follies. I would argue that documenting your work in a passionate manner is better for *you* in the long run. Who cares what the trolls think?

    ReplyDelete
  10. Dogmatism appeals to the novice because it provides an absolute view of the world that is easy for them to digest.

    So providing an absolute view is fine so long as it is a view that is grounded in fact and expert experience.

    Concerning traffic, there are certainly more novices out there than experts, which might explain the traffic dogmatic posts enjoy.

    ReplyDelete
  11. Anonymous1:03 PM

    There is not absolute truth.

    What we constantly see in our industry is people following everything "by-the-book" without questioning if it's really the best approach for a given problem. The results are "design patterns" distorted so it's possible to apply them in strange ways and people who are always talking about code instead of producing code and helping our community.
    I think that dogmatism has two sides, with in fact are closely related: The corporative world, where everything must be made following the "standards" and the egocentrism of those who claim to follow those standards.

    ReplyDelete

Note: Only a member of this blog may post a comment.