Open Hand? Or Closed Fist?

Last week I was involved in a discussion on Twitter that spurred some thoughts while I was driving to Norfolk for our MSDN Roadshow stop there. The thoughts were around how we communicate.

The way I see it (and I’m sure I’m not the first to put it this way), there are a couple of ways you can approach communication:

  1. The Open Hand:
  2. The Closed Fist:

The Open Hand invites others in, offers to share and support, while the Closed Fist signifies anger and warns others away.

What concerns me is that lately I think I’m seeing a lot more of the Closed Fist in our industry, particularly when discussions of software craftsmanship are concerned. With the caveat that I am broadly sympathetic to, and supportive of, the goal of improving the craft of software design and development, too often it seems that folks who are admirably passionate about their craft allow their passion to get the better of them.

In several instances, including a discussion last week that was instigated by a blog post by Michael Neel (commenting on a post by Joel Spolsky) on the subject of “duct tape programmers,” I’ve either heard or read folks who seem to believe it’s their duty to convert the unwashed masses who have not yet joined the software craftsmanship movement, whether they want to join or not.

Again, I am broadly sympathetic to the effort to improve how we as an industry develop software. But when I hear folks assert that those who don’t follow this or that practice or pattern, or use the hot technology of the day (whether that be TDD, MVC, MVVM, Rails, etc.) are “close-minded” or “afraid of change”, I have to wonder whether those folks understand that they are essentially presenting a Closed Fist to those they purportedly wish to convince.

It just seems to me that if you want to get people to change their behavior, it’s likely to be far more effective to show them the success you’ve had with a given pattern or technique than to essentially tell them they are fools for not following your wisdom.

In fairness, not every advocate of software craftsmanship is leading with the Closed Fist. But enough are (in my opinion) that I figured it wouldn’t hurt to raise the subject for discussion. I think there’s room in our industry for all kinds of developers, whether they use duct tape or a slide rule. I admire the passion of the folks who are constantly looking for ways to improve the craft…and I hope to see more of them using the open hand (“here’s what’s worked for me”) rather than the closed fist (“if you don’t agree with me you suck”).

I’ll close with a link to Uncle Bob Martin, who has what I think is a pretty solid (sorry, couldn’t resist) middle-of-the-road take on duct tape programming:

So. Be smart. Be clean. Be simple. Ship! And keep a small roll of duct tape at the ready, and don’t be afraid to use it.

His post also has a funny comment that captures well why so many don’t always follow what most of us acknowledge as best practices:

TDD … is also like flossing – everyone thinks it’s a great idea, but most people never get around to it.

I think that captures it pretty well…if TDD is like flossing, and you’re the one chiding someone about not doing it, that makes you the dentist. Do you REALLY want to be the dentist?

For the record, I DO floss…most of the time.

What do you think…do we need more Open Hands in the development community? Or am I overreacting to a few isolated debates on Twitter?

Comments (3)

  1. Chris Love says:

    Good post man. I think this applies to more than just our little .NET development microcosm. But you have a great way with words and anaology on this one.

    At the Raleigh Code Camp I had a very insightful comment from an attendee about my talk vs one of the closed fist guys he had attended earlier. He thought my approach as a nice middle of the road aproach to acheiving quality, not because I compromised my technques, but more because made it easier to understand and apply to his current situation. I just hope to take that comment and make my delivery better each time.

  2. DEvHammer says:


    Great point. I think that those who are passionate about improving the craft would serve themselves and the industry well by finding ways to distill the concepts and practices they love to make it as easy as possible for everyone to adopt them incrementally. Make the barriers to entry lower, and you have a better chance of gaining adoption.

    I think some folks would also do well to remember that not everyone in our industry has the same level of expertise, and what may seem a simple and obvious concept to some may be challenging to others. Again, simplification and incrementalism may help here.

  3. Joel Cochran says:

    I think this is right on and anyone who doesn’t agree with me is… oh, wait a minute…

    The IBM community I was involved with before .NET has a small number of very vocal purist developers.  I fought many Holy Wars in those younger days of my career: IBM vs. Microsoft; ILE vs. OPM; Green Screen vs. Web; RPG vs. everything else. I spent countless hours writing countless posts fighting the good fight.  

    Something interesting happened, though: I eventually came to the conclusion that it just isn’t worth it.  Taking a hard line stance on something never convinced anyone to change their minds, it only encouraged them to harden their own viewpoint.  And we spent a lot of time talking about stuff and increasingly less time actually doing stuff.  From that point on, the Holy Wars just seemed like a waste of time, so I no longer participate.

    There will always be Holy Wars in technology, and The Software Craftsmanship movement is in danger of becoming a Holy War.  I’m legitimately interested in hearing what they have to say, but I agree I will only respond to an open hand.

    Oh, and I also Floss, but more so when there is something between my teeth.

Skip to main content