One thing I’ve done over the years is to mentally characterize the groups I work with and for. From my experiences with dozens and dozens of teams, I’ve come to some unsupported conclusions. Here are a few thoughts:
-
Out of 20 people, two are excellent. Three are good or have the right attitude, five are worthless or worse, and the rest will do the work but are largely there to collect a paycheck.
-
You can’t instill the desire to learn in an adult.
-
It’s very hard to teach an old dog new tricks. Forty is old.
-
Teams predominantly composed of 30-year-olds usually have their collective head on straight. Teams predominantly composed of 20-year-olds already know everything.
-
One counter-productive person on a team is enough to sabotage a project.
-
Hiring for attitude, not technical skill, results in a much more productive team. But you still will need experts. Don’t attempt to figure out on your own what expertise will get you more cheaply.
-
Forcing experienced developers to do things never takes. The team has to decide themself what they want to do.
These of course are obscene generalizations. Your mileage may vary.