Robert Horry and Software Teams
This is Robert Horry.
Robert Horry enjoyed a workmanlike if not spectacular 17-year career in the NBA, averaging 7.0 points, 4.8 rebounds, and 2.1 assists per game.
During the off-season, he found the time to star in various Hollywood blockbusters such as Independence Day, Men in Black, and The Pursuit of Happyness.
Even in the apex of career in 1995-1996, Horry only had marginally better stats than his career average. And yet I bring him up because he is probably the best modern example of the quintessential “role player” on a sports team. Championship teams are often built not just on the strength of their star players but the rest of their roster as well. Their “other guys” are better than everyone else’s “other guys.” Rob Horry was never an All-Star in the NBA, but he did help three different teams win a total of 7 NBA championships. He didn’t win those championships by himself, but his teams probably wouldn’t have won those championships without him, either.
I think about Rob Horry every time I hear typical phrases like “A players” or “ninjas” or “rock stars.” Whether it’s a sports franchise or a business organization, it’s tough to build a good team without some real talented people leading the way. And yet on several software teams I’ve worked on, I’ve been on several interview loops where we passed on the candidates because he wasn’t an “A player.” He never contributed to an open source project. His Github profile is sparse. He’s not a “full stack generalist.” We straddle our high horses and reject the candidate, smugly content that we’ve prevented our caste from being polluted by an unclean B player.
Yet there are some possible problems when you only try and hire A players. Many sports teams have been built around a few key All-Stars with an extremely weak supporting cast, and the result is almost always a disappointing season. The All-Stars never get a breather and then get injured. On a software team, A players can be several times more productive than a B player, but a B player can still be very productive when led by an A player. When you have the right technology team in place and your only constraint is sheer bandwidth, why wouldn’t you hire the exact kind of guy who can help give you exactly that? And let’s not kid ourselves here – unless you’re working at one of the few top-tier technology organizations in the world, are your software problems really that complex that only rock stars and ninjas need apply?
But there’s an even more insidious problem than bandwidth when you insist on only hiring A players, and that’s chemistry. Put five A players in a room and you’ll end up with five opinions on how to solve a given problem. Nobody wants a single dictator calling every the shots for every single architectural technical decision, but there’s only so much value debating whether updates for the REST API should be done via PUT or PATCH.
There’s a common saying that “B players hire C players,” and that can be true. I’m not advocating that software teams go out and hire only B players. A team of five Robert Horry’s would probably turn out exactly as mediocre as you’d expect. If you’re a startup, your early employees will ultimately be the future leaders of the company, so it doesn’t make any sense to hire Robert Horry when you still need Michael Jordans.
Likewise, part of what made Robert Horry such an effective role player was that he recognized his skill set and limitations. Even at his physical peak, he never demanded the ball and took 20 shots a game. He always deferred to guys like Hakeem Olajuwon, Kobe Bryant, and Tim Duncan. These are the B players I’m talking about. The scenario where “B players hire C players” happens when B players want to feel like A players and thus surround themselves with inferior talent, and obviously those are the B players you don’t want to hire.
The key is building a team within the context of the strengths and talents already on your team, and I think this applies to a software team just as easily as sports teams. It should be okay to say, “you know, this guy won’t magically solve all our problems, but he’ll come in, work hard, he’ll be really helpful if we put him on internal tools so can switch Joe to the optimization engine, and he’ll be thrilled to be part of this team.”
So the next time you’re interviewing a candidate who doesn’t seem to have the “A player” traits you’re looking for, ask yourself this: do you need another Michael Jordan? Because Robert Horry ended up winning more championships.