Having taken stock in your team’s current skill levels from part 1 of this series, it’s time to think for a minute about what your ideal team could look like. What do you think? Should they all be rock stars? Everyone would instantly gel and become best friends, you’d meet all your deadlines, and your application would scream. The proverbial dream team.
There are reasons that dream might turn into a nightmare. I’m going to challenge the notion that you need a team of experts to build software in this new economy. Here are my arguments:
Conflict avoidance. You may end up with too many cooks if you’re not careful. Cast your memory back to the last time there was a heated argument in your team. Chances are the participants were at about the same skill level. The fiercest technical arguments I’ve seen have taken place between team members who were equally matched in the same skill. Resolution was slow if ever and resentment ran high for the loser. It was incredibly disruptive. Wouldn’t it make more sense to have a team with staggered skill levels? The more experienced team member should always be able to resolve a conflict with junior teammates. Notice I said resolve, not win. The more highly skilled team members should be strong enough to win an argument in favor of their solution or be able to recognize the merits of an alternative and accept it as a better approach.
Morale. Not every task on a project will have the same difficulty. Someone’s got to write the reporting modules and installation scripts. Tasks that challenge a novice or advanced beginner will drive more highly skilled members to boredom. If task assignments are blown, you’ll find your team members surfing the net instead of deeply engaged in their work. This will negatively impact overall project productivity.
Upward mobility and growth. How can we distinguish ourselves from our peers if we’re all doing the same work at the same level? It’s a proverbial cat fight with everyone trying to out do their team mates for recognition. The result is an environment where it’s extremely difficult to shine and just as importantly, difficult for leaders to identify the superstars who are increasing in skill. We all assume that we’ll get a merit pay increase every year but at some point we will hit the salary ceiling within our industry. When this happens there are three paths: hover near the ceiling and hope to get a “market” adjustment every few years, move to another role within the company with a higher salary base, or move on to a new company willing to pay a premium for your skills. None of these choices is good for team stability.
Cost to your employer. Ask yourself this question: If it was your money, would you keep a team of experts on staff if you didn’t need to? Businesses live and die by optimizing costs in order to maximize profit. From a business perspective, if a company is paying more than the market rate for a particular service or skill they’re paying too much. Certainly more than their competitors are willing to pay. That’s money that could have been allocated elsewhere – training, new equipment, bonuses, or profit. Employment is a contractual agreement that carries with it an obligation to provide an employer with an appropriate return on investment for the salary being paid.
So what’s a good blend of skill levels to make sure everyone benefits? Skill level mismatches on a team are essential and you need a balanced distribution to have a healthy team.
I want to show a suggested distribution adapted from Andy Hunt’s Pragmatic Thinking. There are no exact numbers, It’s meant to more for guidance that hard analysis. Andy uses this diagram to describe the population of all developers in the industry with a particular skill. Notice that it’s a non-linear distribution and weighted towards lower skill levels.
I think it makes a good model for team lineups as well and provides an excellent cost-to-benefit ratio. Your expert and proficient members would make up no more than 10-15% of your team. Your company will pay a premium for them, but their higher skill levels will provide the bulk of the productivity on projects and also provide leadership and oversight while your junior members grow into their roles.
What’s the best course of action if you find yourself with an unbalanced team? Look for opportunities to rebalance at the conclusion of projects or major milestones to minimize disruption. If you find yourself with team members with matched skill levels on the same skills, consider breaking your team into sub teams or spinning off separate projects and readjusting the lineups. This is going to be a continuous effort and you’ll see gradual improvements along the way. They key is to avoid combining equivalent skill levels working on the similar tasks on the same team.