For me, software companies have two things that are of value. Intellectual property (IP) is the first. And the capabilities to create and complete as a team. And of the two, I have come to believe that the second is usually more important.
Great software companies are about teams.
Microsoft Architect Clint Edmonson has put together some reflections on how to go about building teams of talented developers in blog post Leveling Up & Leveling Out: Assessing Your Team’s Skills.
He’s pulled together ideas from cross disciplinary study of skill levels of people in technical fields. The results of the study call out specific skill levels and identify the characteristics of people at each level. He’s listed some highlights of the characteristic that he thinks best exemplifies someone at a particular level.
- Novice – “Just tell me what you want me to do.”
- Advanced Beginner – “I’m ready for my next task.”
- Competent – “I’ll have it done by the end of the day.”
- Proficient - “The XYZ pattern can solve that problem perfectly.”
- Expert (aka Master or Wizard) - “Did you need anything else?”
The list provides a good starting point in assessing your team. In his next posting, he’ll have a recommendation on how to optimizing the team lineup.
Bruce D. Kyle
ISV Architect Evangelist | Microsoft Corporation