How can you manage people smarter than you and more knowledgeable than you? Let's say you manage a group of 8-10 software developers. All of your teammates have much higher IQs than you do. How can you manage them efficiently?
Answer below by Ian McAllister, general manager at Amazon.
Answer below by Ian McAllister, general manager at Amazon.
Don't manage: Guide. IQ and experience are two attributes you want your team members to over-index on, but there are plenty of other attributes that also matter, including judgment, work ethic, communication skills and teamwork. Unlike raw IQ, these are things that can be developed in any employee. Your job is to provide individualized guidance to each of your team members in the areas that they need to develop.
Here are some other general tips for guiding strong engineers.
- Guide what they build, not how they build. As a manager, your job is to make sure your engineering team is working on the most important things. Your idea of what is most important will often differ from theirs, so you need to spend some time explaining why you feel your priorities are the right ones and letting them make the case for theirs. Once you've agreed on the priorities and outcomes you need, give them latitude to decide how they will achieve them.
- Ask probing questions. Ask them what their design optimizes for, what their availability target is, what the latency requirements are, why they chose a particular persistence layer, why they chose the specific language, etc. Ask them what the standard in your company is for X or Y, and why they chose to diverge from the standard. Doing so will not only educate you, but also give you an opportunity to spot potential inconsistencies in their design or fuzzy thinking in general.
- Connect them with very senior engineers even smarter or more experienced than they are, and set up a process to leverage that experience. This supports your engineers' learning and development and also ensures that their designs get an adequate architectural review if you're not equipped to perform one yourself.
- Mediate arguments and (too) long-running discussions. Strong engineers have confidence in their design and coding judgment, and are inclined to get into debates with other engineers about the right way to do things. This is productive, to a point, but eventually it starts becoming unproductive and can create tension.
Your job as a manager is to find ways to short-circuit arguments and long-running debates,
Your job as a manager is to find ways to short-circuit arguments and long-running debates, which may mean listening to diverging viewpoints and then making a decision. If you're not equipped to make the decision, find a path to do so, which might mean reviewing with a very senior engineer not on your team and letting him or her make the decision. - Continue to hire team members smarter than you. You may want to balance a team of mostly experienced engineers with some more junior engineers, but you always want to hire for high raw technical IQ. Hiring an engineer is a long-term decision. Don't relax your standards in order to fill an engineering role quickly.
- Manage out poor performers. Strong engineers don't like to work with weak ones. If you don't manage out poor performers, your team will accumulate them and your strong performers will move on to other teams or companies.
More Q&A on Quora: the best answer to any question. Ask a question, get a great answer. Learn from the experts and get insider knowledge.