Last week’s post about The Anti-team by Jemery Miller reminded me of a book I picked up a while back: Herding Cats: A Primer for Programmers Who Lead Programmers by J. Hank Rainwater.  In his book, Rainwater offers tips and management techniques on everything from code reviews to managing a distributed workforce.  With good humor, he discusses dozens to topics which relate to a software manager’s every day. 

Per Amazon’s Editorial Review:

While many titles on software engineering and management lean toward the theoretical, this book’s candid and practical focus help distinguish it from the crowd. It also helps that the author is a good writer and mixes quotes from a variety of sources (including Jack Welch and Andy Grove). This is one of the few titles to concentrate on the all-too-common problem of good programmers promoted to project leads, where management and people skills, rather than raw programming chops, will often determine success.

I recommend this book to software development leaders with a request that special attention is given to the section entitled “Recognizing Programmer Breeds.”  Here, Rainwater “stereotypes” developers for the purpose of understanding and identifying ways to work with them.  He groups the breeds into three categories: major, minor and mongrel.  Majors refers to the most common types you’ll find in the workforce.  The minor breed are sometimes seen, but not as frequently as the major ones.  Mongrels, are not very desirable, but the do exist in the workplace, and as a result you need to recognize them.  Mongrels can work out fine, as long as you help them build up their skills to overcome the weaknesses they inherently bring to the coding process. 

As Rainwater notes,

Any individual can be an amalgam of the characteristics identified with a breed — this makes working with that person a challenge but well worth the effort.  Programmers are a wonderfully complex people.  Relish the differences and unique styles of each breed.  You’ll probably recognize many of these traits the next time you look in the mirror.

Here are the developer personality types which Rainwater dissects in his book:

The Major Breeds
The Architecture
The Constructionist
The Artist
The Engineer
The Scientist
The Speed Demon

The Minor Breeds
The Magician
The Minimalist
The Analogist
The Toy Maker

The Mongrels
The Slob
The Intimidated
The Amateur
The Ignoramus
The Salad Chef

You may recognize a few (without having to pick up a copy of his book.)

Update: You’re in luck.  As Jon Rowett points out, Recognizing Programmer Breeds may be found at Apress.com for free.