The nuances of leading a team of people often intrigues me. I’ve had the pleasure of leading several different teams now and the one constant I’ve discovered is that there are no constants. Allow me to elaborate. People are complex, individually, people are relatively easy to manage, when you take different people with different backgrounds that are easy to manage on their own and put them into a team you get a solution that is not only heterogeneous, but one that can have wildly different properties even with the most subtle of changes to the members of the group.
Know thy team: This is much more than knowing what each one likes, dislikes, and aspires to. You must know what motivates them, what demoralizes them, what scares them. The fact that some will bottle things up and others will try to impose their wills. That some will innovate quitely while others will publicise everyone of their smalles acheivements in order to get praise and recognition. When you take these free radicals and make them work together, you get a team.
Except in the very rare of cases, teams don’t just work together as a well oiled machine. It takes tinkering and prodding and encouragement to get a team to really become a model of efficiency. It also takes time. At times, you, as a manager get to hand pick your team members from a set of former co-workers, acquaintances or friends. You know them, you understand them and you know exactly how they will interact with one another. Other times, you go through the interviewing process and optimistically assume that you’ve picked the best person for the job based on about 3 hours of face time. It’s like trying do decide whether or not you’ll marry someone after the first date. That’s why we have the dreaded, try before you totally commit and are screwed period. This is where you get to take your new team member for a test drive. You get them to interact with the team and see what happens. Whether or not they have the technical skill is rather easy to assess, idiots tend to float to the top of the shit pile rather quickly, especially if your team trusts you enough to tell you what they really think.
The thing that gets most of us is that people try to bury their personal feelings at work and say “I’m not letting this get personal, I can’t stand this person, but at least we’re getting the job done”. WRONG!!!! If you can’t stand someone personally, how the fuck can you work with them effectively? If I can’t stand you, I’m not going to believe a thing you tell me, I’m not going to go out of my way to try and help you either.
Managers are often reluctant to let a person go if they are a decent programmer even if they do completely disrupt the team dynamic. You can’t keep a person on solely based on their technical skills if the expectation is that they must work withing a team environment. Technical skills are easy to teach to most semi-intelligent individuals, personalities don’t change.
If it’s a team environment you’re after, pick your players well, and don’t be afraid to let the touble makers go.