Comparison time: Great Hockey Team and Great Programmer Team.
While I am living in Toronto, I will instead focus on the Vancouver Canucks as a great team example. What do they have?
Star Players: Henrik and Daniel Sedin, Roberto Luongo.
Solid Reliable Players: Ryan Kesler, Alex Burrows, Christian Ehrhoff.
Good to Decent Players: the rest of the Canucks
Up and Coming Rookies: Cody Hodson, Cory Schneider
Parting ways with those that don’t fit: Kyle Wellwood
Decent managment: Mike Gillis, Alain Vigneault
Star Players: These are your guys leading the charge. They will have the most experience, most skill and most dedication to the project. Having a few of these guys will inspire the rest of the team to work harder and better, and will likely be the ones you have to rely upon in times of need.
Solid Reliable Players: While the stars are working their magic, these are the workhorses of the team, dependable, reliable, and dedicated. While they might not have the skill and experience of the stars, it is unlikely you can get stars in every position. The better skilled these lines are, the better chance you will have of completing the project successfully.
Good to Decent Players: These are the rest, and they should be of varying skill level, but all capable in some way, notice I didn’t include any bad players. To be in the NHL, you have to have some talent, it should be exactly the same for your company. A player that has no talent will not survive in the NHL or on any good team, and your team should be no different. Give people a chance, give them training, but if they don’t have the capability (or the heart), it will forever be a weak link that could be filled by someone else that would help the rest of the team more.
Up and Coming Rookies: These are your juniors and new team members, there is always potential that these could develop into your next stars, or alternatively be sent back down to the minors. A sports team will often give a person an extended tryout, but that doesn’t mean they have to make the team, if they aren’t getting the job done.
Parting ways with those that don’t fit: Sometimes a player can have some good skills, but just not be the right fit for the position they are looking for. Sadly at these times, it is important to do what is best for the team, and that often means parting ways with those individuals who could be useful (maybe with another project at the company) but not on the team as it is now.
Decent management: Just decent management? Sure, while I like the management in Vancouver, it is really the players that are the stars, not the management team. You need smart people at the top helping make the decisions, but unless they are helping score goals (or commit bug fixes) often it is better for them to just let the players do their job.
So what does this mean? Basically the best thing you can hope to do, is hire the best people you can at every position and turn them loose. If you build a team of just rookies and a couple of fourth liners, don’t expect them to be able to compete in the big leagues. In the end, you always get way you pay for.
I keep hoping that Toronto will turn it around, but can’t help but wonder where their super star players are?
Go Canucks, Go Leafs!