4/18/2015

So, You Want a Promotion?

There's a better than average chance that you spend a good bit of time thinking about programming techniques, best practices, and otherwise how to be the best coder you can. There's also a better than average chance that you feel like you should possibly have a stronger title (and associated paycheck) than you do now because you are so passionate about the work that you do. I mean, you could probably even point to the technical blog that you keep about the <insert highly specific but important topic here>.

So, how come your boss hasn't come into your cubicle waving a wad of cash and a business card with "Vice President of Awesome" on it? Well, probably because your company doesn't pay for "Awesome". They might pay for "Incredible" or "Wowza," but "Awesome" just may not fit into the company's core competencies, mission, and overall strategy. The first step into getting a promotion is to find out that you actually want to climb the ladder for the company you work for. You need to have clearly defined goals for yourself, professionally - otherwise getting promoted won't really get you anything you really have purpose for.

Sometimes the only available options for promotion within an organization mean moving into a position you have no desire to participate in. After all, software engineering and Management of software engineering are two entirely separate disciplines. Related, yes - relying on the same kinds of skills - definitely not.  Find a guy or gal who got promoted to management who once wrote code, and ask if management is anything like writing code. I imagine you'll get back some amusing anecdotes proving just how different they really are. If you have a strong passion for daily having your hands in your BitBucket/Github/SourceSafe (oh, wait...) commits, then you don't want to get promoted into engineering management. Managers don't commit code. Managers that I've worked with rarely even review committed code. And that's OK, if you're interested in forming department strategy, and staffing levels, and development process reformation, etc. etc. But if you just really love writing Groovy/JavaScript/Ruby/C#/Python/whatever - management probably isn't for you. And if you work some place where there's not a promotion path for senior level engineering, you need to do two things.

  1. Have an honest conversation with your supervisor about your long term career expectations. Transparency is key in every business environment. Be careful if you have a toxic boss, though.
  2. Start the search for a place that has a clear promotion path for people who write code every day, all day. Places like that exist, and super-senior engineers are in very high demand these days.
Assuming this isn't the case, and you've already succeeded in finding a clear promotion path for yourself as an engineer, and you're very clear about what your personal career goals are - the next step is open and honest communication with your superior at work. As I was defining my goals for the year at work, I told my boss that I intended on becoming the Lead Architect for our team. So we wrote that down as a tangible (and financially rewardable) goal that by the end of the year (beginning of 2016) I'd have a promotion pending into this new position.

The key to getting a promotion is upward management. You should not assume that a promotion will be handed to you if you haven't explicitly been working towards it. Your manager has to have the time to find a replacement for whatever position you'll vacate upon your promotion. And your manager will also have to work with other key members of your organization to train and prepare you for a position that requires further responsibility. All throughout the period you're being considered for a promotion, your manager has the responsibility to assure you can handle the new role.

The clearest path to becoming promoted is to start acting as if you already have been - but don't expect your company to pay you for assuming more responsibility just because you feel like you deserve it. Once you've proven to yourself you can handle the bump up the ladder, the next step is to prove it to the managers that decide you have earned it. Keep track of what you're doing and how you're doing it. Listen to suggestions from your management about how to course correct. And above all, make sure that your manager agrees that your promotion is best for the goals of the company (remember, you've already confirmed with your personal mission statement it's best for you) - because then you'll have your manager holding up the ladder as you climb it.

JSON Jason