If you want to become successful at leading people and managing work, you might glean a few helpful hints by reading the latest memoir-of-the-month from a recently retired, filthy-rich CEO. But if you want to be successful leading programmers and managing the development efforts in your company, read Herding Cats: A Primer for Programmers Who Lead Programmers by Hank Rainwater.
Rainwater shares advice based on over 30 years’ experience writing code and managing coders in a number of industries. If you’re a brand-new manager, or even if you’ve been a manager for years, Rainwater’s book deserves a permanent place on your bookshelf.
The programmer's meow
One thing I like about Herding Cats that it keeps getting better with every chapter. On thumbing through the table of contents, you might be tempted to skip directly to Chapter 8, “Leader Redux.” Don’t do it. The messages in each chapter build on one another, and Chapter 8 is the crescendo where all of Rainwater’s lessons come together.
One of Rainwater’s main points is that leaders must know their people and understand what makes those programmers tick. In the first chapter, Rainwater defines “breeds” of programmers in terms of major breeds, minor breeds, and mongrels. The “major breeds” include The Architect, The Constructionist, and The Artist, while the mongrels include The Slob, The Intimidated, and The Salad Chef. As you read the descriptions, you’ll probably find yourself thinking, “Yup, know that one, worked with that one—and hey, that one sounds like me!”
Mercifully, Rainwater doesn’t dwell on the programmers-as-animal-types metaphor. In Chapter 2, “Managing the Leader,” he quickly gets into the heart of his overall message: To be a good leader, you must look in the mirror every day and evaluate your progress as a leader.
Meeting the challenge of leadership
Rainwater enjoys leading programmers (herding the cats) almost as much as he loves writing code. He understands that it isn’t easy to make the transition from being a great programmer to a great leader of programmers, and he constantly stresses the difference between managing and leading. Rainwater suggests specific methods for adapting to your new leadership role, including how to manage meetings and how to work with your boss.
You can’t really reduce all of Rainwater’s lessons to a set of bullet points. However, here’s one tidbit to whet your reading whistle: “Don’t expect if you don’t inspect.” Rainwater believes in frequent code reviews, and he provides dozens of examples of how and when to conduct those code reviews and how to make sure your programmers don’t overreact to those reviews.
Rainwater used Visual Basic to develop a project management application, and when you buy the book, you find out how to access the source code on his publisher’s Web page. However, having the code available isn’t necessary to enjoy the review Rainwater conducts on his own application in Appendix B of the book.
Overall rating: Must-read
If his personality is anything like his writing style, I’d love to meet Hank Rainwater, because he’s probably a riot to be around. I like the way he ends each chapter with a “Cat Fight,” a short anecdote from Rainwater’s career that illustrates the lessons from that chapter. Pay careful attention to those stories, because they don’t all turn out the way you expect when you start reading them.
There’s only one thing about the book I didn’t like, and that was Rainwater’s use of spaghetti-code style footnotes. There are so many footnotes that it gets a little annoying bouncing from the text to the bottom of the page and back. That said, I liked that Rainwater weaved into his lessons references ranging from most of the world’s major religions to Star Trek.
Herding Cats is written for programmers who are leading other programmers, but it contains lessons helpful to leaders and managers of people doing any kind of work. You’ll be hard pressed to find a better how-to guide for developing good leadership skills.