What changed my mind? The first was my reading of the book Drive. To a large extent, software engineering is a field full of ambiguity and complexity, and that makes compensation hard. So incentives tend to fail or backfire. Then I tried to invert the problem. What if I tried to design a promotion system to piss off as many employees as possible? What characteristics would it have?
- No pleasant surprises. In other words, you can only be disappointed if you didn't get a promotion, you can't be pleasantly surprised by a promotion.
- Create unhappiness by dependence on scarce resources. In other words, gate promotions based on scarce resources so that even people who would otherwise be qualified could become disgruntled through no fault of their own.
- Eliminate accountability from people who make the promotion decisions (e.g., through a committee). That way, promotion decisions can seem arbitrary.
- Ensure that promotions are competitive races between all qualified candidates. This ensures that people who manipulate that packet in such a way as to have the best looking packets will win over people who are trying to get feedback and improve, which is supposedly the point behind all these feedback systems.
- You have to select good managers anyway. Even in a peer based system, a bad manager can still sink good engineers by selecting bad goals, or blatantly playing favorites.
- Managers are typically incentivized through business goals. If they deliberately promote poor engineers, good engineers tend to leave their teams and the business goals will be much harder to achieve. In general, most companies do a very good job of properly aligning managers with the corporate objectives. It's much harder to do so for rank and file employees.
- A manager can be held accountable for her promotion decisions. It's much harder to hold a faceless committee accountable.
Ultimately, having to have an engineering ladder at all is why I consider startups better places to work. If you've negotiated substantial stock compensation, then it doesn't matter whether or not you're a misfit or superstar under the promotion system. If the company does well, you're going to do very well. If the company does badly, even the superstars aren't going to be adequately compensated. That makes doing the right thing much easier for everyone, and explains why startups tend to have much less office politics than bigger companies.
[Update: Follow up Post]