“Mantle and Lichty have assembled a guide that will help you hire, motivate, and mentor a software development team that functions at the highest level. Their rules of thumb and coaching advice are great blueprints for new and experienced software engineering managers alike.”
—Tom Conrad, CTO, Pandora
“I wish I’d had this material available years ago. I see lots and lots of ‘meat’ in here that I’ll use over and over again as I try to become a better manager. The writing style is right on, and I love the personal anecdotes.”
—Steve Johnson, VP, Custom Solutions, DigitalFish
All too often, software development is deemed unmanageable. The news is filled with stories of projects that have run catastrophically over schedule and budget. Although adding some formal discipline to the development process has improved the situation, it has by no means solved the problem. How can it be, with so much time and money spent to get software development under control, that it remains so unmanageable?
In Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams , Mickey W. Mantle and Ron Lichty answer that persistent question with a simple observation: You first must make programmers and software teams manageable. That is, you need to begin by understanding your people—how to hire them, motivate them, and lead them to develop and deliver great products. Drawing on their combined seventy years of software development and management experience, and highlighting the insights and wisdom of other successful managers, Mantle and Lichty provide the guidance you need to manage people and teams in order to deliver software successfully.
Whether you are new to software management, or have already been working in that role, you will appreciate the real-world knowledge and practical tools packed into this guide.
Guest Review by Robert L. Glass
I find I'm getting crankier in reviewing computing literature in my old age. So it came as a delightful surprise to me that I really like this book. So much so, that I would put it on a par with some of the classical studies of software management, like Fred Brooks' The Mythical Man-Month and Tom DeMarco's Peopleware.
But I suppose I should add a note to that: this book cites some of my own wisdom (five times), and that warms the cockles of my heart, predisposing said cockles to like the rest of the book!
And I also have to confess that the title got to me. You know the old song, "You’re so vain, you probably think this song is about you?" Well, I suppose I’m so vain that I thought the "unmanageable" programmer in this book’s title was likely me!
But I digress. What was to like about this book? It's a "been there, done that" view of the problems of managing programmers, by a couple of authors whose views on that subject are comprehensive and full of insight and truth. These authors really "get" what programming is all about, what's unique about it, and why traditional management techniques may or may not help.
The book is also helpful to my "old fart" status in the programming field. It fills in a lot of my "old fart" gaps, the things that have happened to the field since I was active in it. These two authors are ultra-familiar with facets of the programming field that weren't even dreamt about in my day. And, I am happy to say, what they say about those gaps fits in rather nicely around the edges of what I DO know about the field.
There's a lot of emphasis in this book on what makes programmers, especially "great" programmers, different. The chapters on "Understanding Programmers" and "Finding and Hiring Great Programmers" are especially useful and right-on. And they also happily and even lustily disagree with some of the software engineering fads of our time. For example, on "process," they note that it is more about the technology of programming than its management, and so little time is spent here on CMM-related topics.
There are fascinating taxonomies of programmer types, from a "today" point of view. The authors see four basic contemporary types – client programmers, server programmers, database programmers, and web programmers – and note that, although most programmers think they’re good at all four, most programmers in fact are good at only one of those types of tasks. They also invent the category of "not really programmers" to describe those who use tools to accomplish software tasks, but who don't really write code. They also distinguish the characteristics of programmers in several categories, such as by era of birth ("boomers," "Gen Y," "Millenials," ...)
And the book is full of "aha"-type wisdom. There are three whole chapters of "rules of thumb and nuggets of wisdom" that are borrowed from other software authors. But there are also plenty of home-grown nuggets by these authors:
- "Because programmers are free spirits, typical motivational techniques are not usually successful"
- "It is critical to be able to appeal to a programmer's sense of self and desire to change the world"
- "It usually takes having been a good or great programmer to succeed as a programming manager"
- "We have found no difference in programmers based on age, gender, ethnic group, or culture. What differentiates programmers is what's inside each person"
- "A software team need a mix of a few great programmers, many ordinary programmers, domain experts, analyzers, and technical communicators"
- "A" managers hire "A" programmers; "B" managers hire "C" programmers" (top-notch managers are the key to project success)
- Interesting emphasis is placed on "managing down," "managing up," "managing out," and "managing yourself"
The book is full of author examples and war stories, all of them to the point.
I like this book so much that I suppose I ought to issue a warning to those who might not like it. If you believe that programmers are too independent and need taming, then you won't like this book very much. I don't, and therefore I do!
Table of Contents
Chapter 1 Why Programmers Seem Unmanageable
Chapter 2 Understanding Programmers
Chapter 3 Finding and Hiring Great Programmers
Chapter 4 Getting New Programmers Started Off Right
Chapter 5 Becoming an Effective Programming Manager: Managing Down
Chapter 6 Becoming an Effective Programming Manager: Managing Up, Out, and Yourself
Chapter 7 Motivating Programmers
Chapter 8 Establishing a Successful Programming Culture
Chapter 9 Managing Successful Software Delivery