I am fortunate to have a many role models & mentors in my life. Many of them don’t know it and that’s OK as all I need to do is watch their behavior and practices. One of these people is a cousin of mine, who is a Sergeant in the Army of the Canadian Forces. He’s done his share of his duty, including five tours of duty including Afghanistan. He is a front-line soldier, and he’s seen far more than I care to know about.
Last week-end my cousin and I were talking, and one of the things he shared is a basic difference which exists between the Canadian and US Armies. In the US they train their soldiers as specialists, while in Canada we train them as generalists. In the US if you are trained to be a driver that’s all you know how to do. You are not trained for any other job even related to the vehicle you’re driving. The Canadian soldiers on the other hand will train for all jobs.
By now you might be seeing where I’m going with this story. I think the Canadian Army can serve as a good example for all of us. Canadian soldiers are known as some of the best in the world. Our soldiers train in this way so they can respond to the moment in time they find themselves in. They are a team of generalized specialists and the results speak for themselves!
This is a good illustration of what we hear over and over in the Agile space. I would much rather have a great team of generalist specialists over a few super-stars. In the case of the Army having the best driver wouldn’t do you any good if he is killed.
Likewise having the best developer wouldn’t do you any good if he becomes the bottleneck for your team or leaves your team. If you understand Agile you understand the team succeeds or fails together. If you have a super star who doesn’t like sharing I would look to change something. You could knock them off their game by putting them in a team they’re not comfortable with. A better way would be to mentor them in becoming a mentor. They likely have a lot of knowledge. If you can help them to share the information it could be amazing what happens. Send them on courses to learn how to teach. If they can learn how to share rather than horde information, it will be amazing what happens to the overall knowledge base on your team.
Don’t believe me on this? Try it! It works for teams who put their lives on the line in unpredictable situations far from home. Surely it can work for those of us doing the quiet and safe job of building great software!