I’ve had the great pleasure of reading an early copy of “Managing the Unmanageable: Rules, Tools and Insights for Managing Software People and Teams.” Co-author Ron Lichty is a veteran Silicon Valley VP of Engineering, having done important work at Apple, Berkeley Systems, Schwab and Razorfish. I know Ron from his SVForum leadership and his “VPE of Fix-It” consulting.
The book starts with the sociology and psychology of programmers, and why they are fundamentally hard to manage. Rather than caricature, it sorts programmers along many dimensions (client/server/database/web; architects/systems programmers/app builders; cowboys/farmers/heroes/introverts/cynics/jerks) to uncover team dynamics and motivational principles.
Ron (and co-author Mickey Mantle) go to some length to separate programming from more manageable engineering disciplines:
Programming as a serious profession is different from related engineering professions, such as electrical or civil engineering. Since 1968, attempts have been made to apply the term software engineering to the art of programming. But writing a new program from scratch is much more akin to writing a novel than to the established practices of civil or electrical engineering. New programs frequently begin with the equivalent of a blank sheet of paper…
In fact, they make the point that programming is like writing music: anyone can do it, it’s inherently fun, and the mechanics can be taught. There’s a vast difference between a great composer and a mediocre one, though, and it’s not just a matter of effort. Great programmers create elegant, useful, flexible, poetically sparse code where average programmers just write code. And other good programmers see the difference immediately.
Chapters cover the fundamental challenges of managing programmers:
- Understanding them
- Funding, hiring and onboarding them
- Managing a technical team, peers, bosses and yourself
- Motivation and culture
- The software delivery process
I was particularly impressed with the sections on assembling balanced teams of developers (with a range of talents and not overweighted with egos) and on the face-to-face personal fundamentals of motivating creative people. Technical managers who’ve never had any “touchy-feely” training will find this revealing. Likewise the absolute need for a development manager to earn (keep) the technical respect of her team.
- The only line items you have to manage in budgets for software development organizations are salaries, capital expense, and training and travel. Everything else is mouse nuts.
- If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime.
This is a book that every
engineering programming manager should have on his shelf.