Thursday, August 6, 2009

The Passionate Programmer and Value Rigidity

I have to thank Mike Brunt for the mention of Chad Fowler's The Passionate Programmer on Twitter (yes, occasionally worthwhile stuff crops up on Twitter ...), because it's one of the best programming books I've read in recent memory. It has nothing to do with coding or a specific technology, but I strongly believe it's one of the more important and impactful books a programmer can read, regardless of their choice of technology.

Personally I love reading things that cause me to question at a very fundamental level what I'm doing and why I'm doing it. If you don't do this every once in a while you may find yourself off in the metaphorical weeds, having a hard time getting back on track or even figuring out what direction you're supposed to be going. The Passionate Programmer made me question something about what I'm doing and where I'm going with every chapter.

Coincidentally enough I watched the documentary TED: The Future We Will Create last week. It was inspirational throughout, but there was a particular moment that resonated with me. One of the TED prize winners that year was Cameron Sinclair, who is the cofounder of Architecture for Humanity, which advocates for "building a more sustainable future through the power of design." One of the more amazing examples he gave in his TED talk was a building that was planted (as in using seeds), grew to 14 feet in height in a month, and then could be eaten when the building was no longer needed.

That's extremely cool in and of itself, but another architect at TED that year was Rem Koolhaas, who designed the Seattle Public Library. I haven't been to the library since I moved here, but after seeing this film I looked into it more, and it's an amazing piece of modern architecture, both in terms of its visual impact as well as how the space is designed to suit the specific purpose for which the building was built.

In a brief interview with Koolhaas in the TED film, he said that the presentation that impacted him the most was Sinclair's, because (and I'm paraphrasing here) it made him fundamentally question his approach to architecture and what he was doing with his skills. Coming from a guy who built such an acclaimed building (and I'm sure he's done many other great things in his career), that's rather astounding.

So back to programming. The Passionate Programmer is fantastic throughout, but what hit me like a ton of bricks, and what made me think of the TED documentary, was a chapter entitled "The South Indian Monkey Trap." Without going too much into the reference, this chapter makes the point that "rigid values make you fragile," and that fragility is definitely not a good thing for a programmer. Quoting the book:

"For example, it's easy to get hung up on technology choices. This is especially true when our technology of choice is the underdog. We love the technology so much and place such a high value on defending it as a choice for adoption that we see every opportunity as a battle worth fighting--even when we're advocating what is clearly the wrong choice."

I'm sure folks in the CFML community recognize the tendencies here. Clearly I'm not saying CFML is a bad choice--far from it. I wouldn't continue to use CFML if I thought it was bad. But one of the points I made in my "Best of Both Worlds" presentation at cf.Objective() this year (you can watch it here if you missed it), is that while CFML is a great choice for a lot of things, we do ourselves a disservice if we get too myopic on our technology choices. If the only tool you have is a hammer ...

Now on the flip side of this, you may look around and find that seeing what else is out there reinforces your notion that CFML is a great tool for most of what you do. Even if you come back to where you started, however, there's a tremendous amount of value in the exploration.

The other thing I love about The Passionate Programmer is that each chapter ends with an "Act on it!" section. In the case of this particular chapter the actions suggested are:

  1. "Find your monkey traps," meaning identify your rigid values and do some soul searching on them.

  2. Know your enemy: pick a technology you hate, and build something in it. Not only does it help knowing what you're fighting against more intimately, you add a new skill to your toolbox and might even find that the technology you hate does some things pretty darn well.

So that's some of what's been going through my head lately. Agree or disagree, I really do encourage you to read The Passionate Programmer because it will inspire you far more than I possibly can in a blog post overview.


Just added it to my Amazon Wishlist, thanks for pointing this out. "The Pragmatic Programmer" is another good one from the same publisher.

Sounds interesting. I hope I will find the time to check out this book.


I'll have to check it out. On a side note, TED talks are just the most amazing thing since sliced bread. Clark Valberg turned me on to them a year ago. It's like candy for my brain.

Hi Matt,

I got the original version of the book when it first came out (My Job Went to India: 52 Ways To Save Your Job) and remember an interview with one of the prag publishers (I think it was Andy Hunt) who said he wished they'd picked a better title because they felt the title killed the sales of the book.

I'm glad they re-released it the other month with a new title, and I think it's a great read. Hopefully with the new name it'll get the sales it deserves (well, the new title, and of course the plug on your blog :-) ).

I was looking at "The Passionate Programmer" on the Pragmatic Programmers site last week, along with "Pragmatic Thinking and Learning". I would have bought them both by now, but my strategy for managing my spending is to keep telling myself whenever I want to buy something that "I don't need it yet". This post (along with the fact that today is my pay day) has convinced me to go ahead and get them.

To correct Ryan's comment, The Pragmatic Programmers (Andy Hunt & Dave Thomas) wrote the book "The Pragmatic Programmer" but are not the publishers for it, as they wrote it before getting into the publishing business. The biggest consequence of this is that there is no eBook version available of that title. I believe Dave & Andy have made a point of selling DRM-free eBook versions of all the titles they publish, which I think is pretty darn cool.

No comments: