Friday, September 14, 2012

Market Efficiency

Most companies understand not to cheap out on machines for engineers. The cost of a top end development machine is about $5,000, and when you're shelling out $100K a year, even a brand new machine every year just doesn't cost that much (in practice, nobody upgrades every year --- there's enough overhead when switching machines that doing it every other Moore's cycle --- 36 months makes much more sense). And every bit of increased productivity means you get that much more out of the $100K/year asset.

But once in a while, companies come across an under-priced engineer. Whether because they're inexperienced and didn't know how to negotiate, or whether they were initially offered less compensation because they were an unproven quantity, it's extremely tempting to keep under paying them for as long as you can get away with under paying them. What's happening in this case is that management thinks that they've stumbled across an engineer who's an idiot savant --- that somehow it's possible to be a great engineer who happens to be clueless as to his net-worth. There's no doubt that such people exist (I know some of them), and if you're at a big company that risk might pay off, but it's an insane risk to take at a startup where every engineer matters.

Here's what eventually happens. The engineer has friends, and eventually his curiosity will lead him to compare compensation with those friends. When he learns that he's significantly underpaid, he'll get pissed off enough to interview, and if you're lucky enough, to ask you for a raise. At this point, you'll have to give him a raise. If you're smart, you'll give him a raise, and compensate him for his lost wages as a result of you underpricing him in the first place. Most companies might do the first but rarely do they do the second. The consequences of not doing the second is that the engineer you've pissed off is out interviewing, and will end up with higher offers and you'll end up paying back those lost wages anyway, assuming you manage to keep him. If you don't, you'll spend that money recruiting and training a new engineer to replace him.

You might argue that a startup can't afford cash and raises. You might be right. But there's no excuse even then: if you can't afford cash, then you can provide additional equity. Equity is even better, since you can tie that to a vesting period, which would keep the employee loyal for years to come, and raise the bar for anyone else trying to poach your employees.

One of the things that impressed me about Google was its willingness to raise new graduates to market rapidly --- it was not unusual for a new graduate at Google to get a 30% raise on her first promotion, reflecting her increased value. However, Facebook was even better in that regard. I've had reports of Facebook granting retention packages even before the new employee's first year is up for review! This is a great approach, because the employee considers this unasked-for raise a gift. What happens to you when you receive a gift? You feel obliged to give back. So not only have you made a high performing employee happy, you've ensured that he's going to work even harder for you, at least in the near term! Contrast this with the employee mentioned above who had to ask for his raise (after realizing that he was underpaid): he didn't feel like he got a gift, he got screwed. Even raises that come from promotions don't feel like a gift, because the employee felt like he had to work for it.

Regardless of the performance of its stock, I've made the statement in recent years that Facebook probably has the best engineering management in Silicon Valley, and this is just one example of what they do better than anybody else. (Note: the author does not own any Facebook stock)
Post a Comment