Brian Fitzpatrick and Ben Collins-Sussman were back to OSCON this year with their yearly dose of open source project wisdom. This year our dynamic open source duo focused on project management and gave us a number of patterns and anti-patterns for how to succeed in managing creative people. There are many ways to poorly manage your team of people, especially if you come from a classic management background. The classic carrot-and-stick method of managing people doesn't really work well for creative people. The carrot-and-stick approach works fine for managing non-creative people (Fitz and Ben gave the example of meat packers on an assembly line), but it creates conflicts and hated managers when applied to managing creative people.
First, Ben and Fitz defined the role of an engineering leader: Leading creative people is not like a military style leader, who barks commands at their people. As a leader of creative people you really need to serve your team in order for them to get their job done. An ideal leader will have a mutual understanding and trust relationship with the people who work for them. A leader needs to promote technical and social health of their project; ignoring social issues will likely get you into low morale and motivation problems.
Contrary to most people's experience, leadership is not a waste of time. Ben and Fitz suggest that leadership is a good method about scaling yourself. Its is clear that you can do a given task in 5 minutes, but it might take one of your team members half an hour to do the same thing. But giving the task to one of the members of your team is the simplest method of scaling yourself -- if your team members learn from you and learn to do things as fast as you, you're effectively scaling yourself. An effective leader can ship more code (deliver more creative projects) if the managers can scale themselves and enable their team to get more done without the help of the leader.
Next, Fitz and Ben presented a number of anti-patterns that illustrate bad leadership behavior and should be avoided:
- Be everyone's friend: You can't be everyone's friend when you're a leader -- trying to be everyone's friend has killed established friendships. You can lead with a soft touch and be part of the social structure of your team. Ensure that your team can see that you are part of the team.
- Treat everyone like children: If you treat people like children, they will act like children. If you trust your team and you expect your team to be responsible, it will be responsible.
- Micromanage: Don't scale yourself and don't get anything done. If the people on your team can't do anything without you, what happens when you're gone?
- Hire pushovers: Hire dumb people who are not going to threaten you. If you hire smarter people who are independent, the team powers itself and does not have to wait for you. In the end it also makes it easier to replace yourself.
- Compromise when hiring: Interview 50 people and hire the top 10 people. If you compromise on hiring and don't worry about how people fit into your team, you'll get a dysfunctional team.
- Ignore low performers: Ignore people who are not pulling their own weight. Low performers will upset other team members and will cause good people to leave teams.
- Ignore human problems: Assume that people have no outside life. In reality, humans are a bundle of problems and you need to pay attention to them and treat them like humans.
To complement the anti-patterns Ben and Fitz presented the following list of patters that a project manager should use in their team management:
- Be honest: There is no such thing as a temporary lapse of integrity. Admit when you're stuck and give hard feedback. When you have to deliver criticism, do it with honesty and empathy.
- Be transparent in your decision making.
- Be a wise Zen Master: Ask your team how to be more productive. Get your team to think about how they want to be more productive.
- Lose the ego: It is OK for others to be smarter than you. You need to trust your team and respect their abilities and their previous accomplishments. Appreciate inquiry from others -- the more your team can understand what the whole team does, the more engaged your team members can be. Apologize -- if you screw something up, say that you're sorry. If you want to influence people, let yourself be influenced.
- Get your hands dirty: Lead by example. Be part of the team and show your team that you understand what they do.
- Delegate: Sure, you can do a task in 5 minutes and it would take another team member 30 minutes to do the same. But if you want your team to grow, your team members need to learn to be you.
- Look to replace yourself: If you see someone who is capable and interested in leading, give them the opportunity.
- Make waves: At a time when you least want to make waves, make waves.
- Shield your team: Keep your team clear of distractions and isolate them from management bullshit.
- Succeed and fail as a team: If there is a crisis, have everyone jump in and fix the problem and then praise everyone. But don't publicly reprimand the culprit in public; talk to the person in private.
- Be a catalyst: Take risks, but also bear responsibilities for your failures.
- Be a teacher and a mentor: Teach others what you know and let people fail in order for them to learn fast.
- Set clear goals: If you don't have a clear mission statement, features creep in. State the roadmap.
- Track happiness and careers: If people are not happy, how do you fix things so they can be? Ask your team: "What do you need?"
- People are like plants: Some need more water, some need more light, some need more bullshit. If you give everyone the same treatment, most people are not going to get what they need.
Ben and Fitz then suggested viewing Dan Pink's talk about motivation for some great tips on how to motivate your teams. They went on to also talk about intrinsic vs extrinsic motivation, where extrinsic motivation in the carrot-and-stick model can be summed up as: "Pack more meat, or we'll fire you!". Extrinsic motivation doesn't work for creative people. Intrinsic motivators include giving your team autonomy. For instance, the 20% time concept where Google engineers can focus on a project of their own choosing, gives Google engineers a lot of autonomy. Mastery is also a good intrinsic motivator; let people sharpen their skills or you run the risk of wearing them out. Finally, giving your team a purpose and get them to care about the project. Let them scratch their own itches and intrinsic motivation will follow.
Finally, Fitz and Ben suggested that you ought to also manage your manager:
- Act like a grown-up. If you act like a child, you will be treated like a child.
- Pursue responsibility: Get our of your niche and your comfort zone and take on responsibility.
- Allow mistakes: Failure is OK, unless you fail at the same thing over and over.
- Be communicative: Leadership should not have to poke you to find out what is in your head.
- Point out obstacles: Let your leader know when you find problems.
- Argue: A good leader does not want a yes man.
The three take away points that Ben and Fitz want to leave everyone with:
- You need to serve your team.
- Create a culture of respect: The more you give the more you get.
- Motivate people.
Thanks for another awesome presentation, Ben & Fitz!




Help





