Geared to the software developer newly promoted to manage other developers, Herding Cats: A Primer for Programmers Who Lead Programmers
distills the author's several decades of project management experience into a worthwhile tour of some best practices for those making the transition. Written in a lively style that doesn't pull any punches when it comes to the hard realities of leading technical teams, this book offers plenty of practical advice and will be worth it for any IT manager who wants a veteran's perspective on the battle to create great software on-budget and on-time.
While many titles on software engineering and management lean toward the theoretical, this books 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.
Early sections outline the basic personality types that the author has encountered in software. Ranging from the gifted "architects" and "constructionists" to "magicians" and "slobs" and "salad chefs," this taxonomy is as good as any, and any reader will recognize many types encountered in any career in IT. Basic tips include mixing team personality types effectively and getting started with managing programmers, from philosophical ideas about what constitutes leadership to practical suggestions for hiring and firing, running meetings, and working as manager to improve your company's bottom line.
Noteworthy sections here on design philosophy outline the importance of thinking about architecture and reuse as you build software. Techniques like adhering to programming standards throughout your shop and designing objects with good cohesion and loose coupling are advocated here. A section on anti-patterns in management outlines the management styles that lead to trouble. (Tips for overcoming micromanagement, do-it-all/know-it-all managing, and improving communication will help you defeat these tendencies, both in yourself and others.)
Later sections survey the basics of software engineering and software process, including the Microsoft Solution Frameworks and Extreme Programming (XP) as ideas to check out. Final sections look at the author's own software for managing projects (the executable and code are downloadable). An annotated bibliography of books can provide a start for any new manager's shelf. In all, this title can be a source of comfort and advice for those taking on new leadership positions on technical teams with its wide-ranging perspective on what it takes to lead other programmers successfully. --Richard Dragan
Topics covered: Management techniques for programmers promoted to leadership positions, assessing your level of technical "cool," positive and negative programmer personalities (including architects, constructionists, speed demons, magicians, minimalists, analogists), trouble types (including slobs, amateurs, salad chefs), tips for new managers (including adapting to changes), dealing with project feature creep, dealing with ineffective programmers, tips for hiring and firing, promotions, organizing for success (using paper and e-mail effectively), the author's custom Administrative Director program (for organizing project tasks), corporate goals, product and project management, managing change throughout the project lifecycle, tips for running staff, design, and other meetings, effective technical leadership (designing with architecture and reuse in mind), design hints (programming standards, strong object cohesion and low coupling between objects), reviewing code, anti-patterns in management (including micromanagement, unfocused management, and misapplied genius), hints for overcoming bad management styles, leadership principles (fostering effective communication, delegating, and participating), techniques for mentoring and rewarding employees, fostering employee loyalty, leadership for different generations, case studies of several tech leaders (Andy Grove and Bill Gates), how to work with your boss (communicating deadlines and limits, overcoming inertia), techniques for managing a distributed workforce, multicultural factors in management, intro to software engineering and process (overview of the Microsoft Solutions Framework, Extreme Programming--XP--and Agile Development), craftsmanship in software, dealing with technology change and economic downturn, appendices for the author's Administrative Director software (including a code review), case studies of effective and ineffective management techniques from the field.