Some options that I thought of:<p>1. Fear of being left behind (if everyone else got one you need one too)<p>2. Need more challenging work (you are not challenged enough in your current rank)<p>3. Capability of influencing the company a lot more in higher roles (a promotion means you get to make a lot more critical decisions which have a bigger impact)<p>4. Validation of hard work (if you have worked hard you deserve recognition in terms of promotion)<p>5. Compensation for an average life (if you are not happy with your life then you try harder to succeed at work)<p>6. Success at work can only be measured by rank (more promotions = more success)<p>7. Money
In the last year I switched away from a leadership role to being an IC at a different company.<p>I originally thought I wanted the leadership role to feel more control over the direction of my work. But you get into leadership and you realize leadership also doesn’t have control, they’re just trying to respond to the events as they’re unfolding. Worse: you’ve moved away from your craft.<p>Now that I’m back to being an IC again, I feel the impact of decisions up the leadership chain. These changes affect me, but I don’t get to participate in making them. So that can feel frustrating, and I can see wanting to influence those decisions as tempting reasons for peers to seek those kinds of promotions, possibly making the mistake I once did.<p>That tough balance between wanting to execute the craft, but also wanting to participate in larger strategic decision that could impact the craft, seem to be behind a lot of promotion seeking from folks I know.
8. To prevent that other guy from dicking up the product and tanking the business.<p>In some areas of software the only thing that matters is the word: <i>easy</i>. When I say that I mean for the developer and absolutely not for the end user. The end user isn’t even considered. The result is convenience (stupidity) as a compensator for insecurity, missing leadership, and absent competence.<p>On one hand it feels good to build a superior product that out performs the competition in every aspect. It is reassuring to know your decisions may slightly inconvenience yourself a tiny fraction for a tiny moment because you position product quality for the end user above developer convenience.<p>Even better is knowing simplicity is built in from the ground up so that the product scales and maintenance is cheaper. Writing software that scales means doing that which does not scale: documentation, refactoring, planning, and removing. Simple is not easy.
1. I have to get as much as they are willing to pay for doing something that I hate that is sell my time and they love that is making them a lot of money.