Drafting the Right Software Professional for Your Fantasy Team
I’ve enjoyed playing sports most of my life, but I’ve never been much of a fan of watching them. If my children or grandchildren were on the field or court, I was engaged, but otherwise … meh. Participating teaches you about teamwork and focus and the rewards of persistence, but I never saw value in fandom.
However, a recent conversation with a couple of friends who are fans raised an interesting point about teams that was thought-provoking. These are the kind of guys who participate in multiple fantasy leagues, know player stats, and take the day off to watch the draft.
One said he was pleased with a recent team’s trade to get a veteran wide receiver, thinking the trade addressed a weakness on the team. The other was more circumspect, saying, “Maybe, but if you think about it, the quarterback and his receivers are a system. You can’t necessarily take a component that works well in one system and expect it will perform equally well in a different system.”
Wow. I flashed to some poor personnel choices I have made in the past and some I’ve seen clients make on their development teams, and I realized the deep wisdom in this statement.
Individual humans are complex creatures with different strengths and weaknesses. When people are cooperating on a team—whether in software development or football—sometimes those strengths and weaknesses can be complementary and fit well, and other times they can be out of alignment and amplify the weaknesses.
For example, some developers I’ve worked with are not inspired designers, but they are exceptionally good implementers. They aren’t particularly innovative, but if you clearly define the problem and context, they build rock-solid code. Pair them with innovative designers, and you get outstanding systems; pair them with people too much like them, and you get solid systems that aren’t otherwise exceptional.
Likewise, some testers are good at exploring and finding corner cases that break systems, but they’re not particularly rigorous. Other testers are exceptionally rigorous but not adept explorers.
Teams are systems—this is both obvious and profound. Someone who appears to be a superstar in one context may be exceptionally talented, but they may also be quietly supported by others on the team who amplify the star’s positive attributes, compensate for their weaknesses, and help them to succeed.
This can explain the disappointment we sometimes experience when we add an accomplished and talented person to a team but they don’t live up to our expectations. It can also explain why someone who doesn’t seem to be working out on a team in one context can be a surprise star when transferred to a different team where they’re a better fit.
If you think about your teams as systems, it may help you make better personnel decisions. It may also give you richer criteria for understanding why someone might—or might not—be a good fit.