What is management? It's a question someone asked me recently, and I find the topic fascinating. (If your eyes have already glazed over, please bear with me -- I promise I'll never use the word "paradigm" or tell you what you should be thinking in or out of.) I'm passionate about management. I've seen the good things that happen when you get great teams behind great managers -- committed, talented people working hard together to do great things. I've also suffered under some of the worst managers I can imagine, and that also gives me passion -- I want to protect my people from managers like that, and make sure that I never make the same mistakes those managers did.
So what is management? Good management, I mean. There's no limit to the different types of bad management -- a really "talented" bad manager can come up with infinite ways to screw up a team. Good management is simple: pick the right people, point them in the right direction, and get out of the way. Of course, that's much easier said than done. Many books have been written just about the "picking the right people" part, and I'll never be able to cover even a fraction of that here.
I'll talk more about other aspects of management later, but right now I'm going to focus on mistakes. Managing the mistakes of your team members is a key part of being a good manager. The first thing to remember is that it's your fault. Period. If one of the people working for you screws something up, you take the hit. This is both a simple fact of how the world works (you can't avoid it) and an essential truth of good management.
Before we talk about the various types of mistakes, though, we need to get one thing out of the way. When a team is exploring a new technology, figuring out new ways to do things -- they're going to go down blind alleys. They're going to "waste" time -- spend time, really -- doing things that don't directly contribute towards the goal. This isn't a mistake, it's a cost of doing exploration, and if you try to prevent it from happening you'll squeeze all the life and all the exploration out of your team. Spending time on something like this is no more a mistake (in a team that's doing original work) then is spending money to keep the power on. Of course, you do need to manage this -- just like you need to manage all your expenses -- but that's part of pointing a good team in the right direction.
Because it's awkward to write about "team members" and "employees" throughout this, let's write about "Bob." Let's say Bob makes a mistake -- a genuine, big-time, screw-the-pooch mistake. Let's examine the ways in which it's your fault as a manager, and what you can do about it. Because that's the scary news -- it's all your fault. It's also the good news -- if it's your fault, it means you can fix it for next time. First, we look at procedures and documentation. Do you have documentation on what Bob is expected to do in this case? If not, it's your fault. Figure out what should have happened, and write it down.
So your documentation is in shape? What about training? Does Bob know and understand your expectations? If not, time for some more training. This could be as simple as "You shouldn't leave without making sure your commit didn't break the build," or as complex as a long series of weekly classes. If you've got clear expectations and procedures, and Bob's trained in them and understands them, and he ignored them anyway, it's still your fault, but in a different way. You hired the wrong person.
Now you've got to do the worst thing that a manager can do -- fire someone. Every time I've found myself saying, "OK, Bob knows what I expect, and Bob's capable of doing it, but for some reason he isn't doing it." and I haven't immediately fired Bob, I've regretted it. Nothing poisons a team more than keeping a bad team member around.