Hacker News new | past | comments | ask | show | jobs | submit login

Because programmers don't ask for more money often enough.


Here's the three minute version of doing it:

1. Work hard on tangible stuff, document and claim credit for doing it, and notify people with what benefit the work provides. This sounds maybe stupidly obvious, but a lot of non-technical people don't understand the value in something. So, "Upgraded XYZ so our website loads faster, which is proven to make customers more likely to buy according to ZYX paper" - I know, what a waste of time, right? Wrong! It's going to make you a lot of money. Tell people what you did.

2. Before you go to ask for more money, prepare a BATNA (Best Alternative to Negotiated Agreement) - if they say no, what will you do? You need to know this. Having other offers is obviously good. Savings are good. You don't even have to mention your BATNA, but you need a Plan B. Most people don't make one of these, so if their first attempt doesn't go swimmingly, they're in trouble.

3. Go in and stress how much more you'd like to do going forwards. This is huge. Do not mention what you've done in the past, except in the context of how it proves how much more you can do going forwards. So go in and say, "Hi boss, as I mentioned in all my various weekly reports, I've been learning new stuff and kicking massive ass. [that was step one] Recently I've picked up some new skills, and I've been getting recruited for a bunch of projects [step 2], but I really like working here. Actually, I think I can deliver even more value here, if I take on new responsibilities. I'd like to train a successor to gradually take over my current role, while I do ABC-stimulating-enjoyable-task that will bring the business new money. I don't even want to be compensated much more for it - I'm going to be bringing in lots more value/assets/sales/cash/whatever, but a moderately small raise is enough for me because I like working here so much." Then lay out what you're asking for.

Business people learn how to do this. You're leaving lots of money on the table and not getting a chance to work on cooler stuff that you'd like to do if you don't do this.

1. Regularly update with the work you completed, and the benefit it provides.

2. Decide what you want, and what you'll do as Plan B if your current company won't give it to you.

3. Go stress that you'd be able to produce more value if you transition your role to a more highly paid and enjoyable one. Be friendly and complimentary. Whenever possible, try not to ask for more money for the same role from the same company - people hate price increases, so it's better to expand your role to something that's also more enjoyable and produces more in their eyes. If you want a raise for doing the same exact work, it's probably good to start looking outside the current company as well for other offers.

I find that in practice, it's a lot easier to do steps 1 and 2, then simply take one of those offers to work someplace else. Your value as a developer increases so fast early in your career that you'll literally double your market rate during the course of your first job after college.

There's simply no way that you can convey to a company that they need to pay you twice as much as they did when they hired you 3 years ago. They simply won't believe it. Sadly, the only way is to demonstrate it for them by actually accepting a job somewhere else for twice the money.

The key is to remember that you're in this game for yourself first. It's nice to work for a good company with a good environment and a fun team, but at the end of the day it's not worth leaving tens of thousands of dollars on the table just to stay there.

It's widely held that the best programmers are orders of magnitude better than the worst ones. [1] This also goes for you x years ago versus you now. Why this isn't reflected in pay everywhere is beyond me. While people exploit these inefficiencies (exhibit A:startups) I'm surprised that the market still allows things like this to exist. Perhaps it's because there isn't such a large disparity for the vast majority of other professions?

[1] http://www.paulgraham.com/gh.html

No, it's more likely the idea of "you don't get rich by writing checks" at work.

I think most programmers dislike the idea of what they see as kissing their boss's ass so much, that they'd rather start their own startup to get what they want (more interesting work, potentially higher pay, more amenable working conditions, etc). I can't say I blame them.

"There's simply no way that you can convey to a company that they need to pay you twice as much as they did when they hired you 3 years ago."

You can at smart small companies. My salary tripled in the 5 years I spent at my first programming job. I admittedly took a really small salary because I hadn't finished school and had no real world experience.

While I agree that programmers don't ask for more money often enough, this is overly simplified and doesn't account for a lot of cases that are important to a lot of programmers.

Firstly, a lot of work that programmers like to work on really is invisible to pointy-haired types. I run an infrastructure group, and when I do my job well the CEO hears less about my work because there are no problems. It's much more difficult to sell the benefits of never hearing about my code than pointing to changes I made to a website that directly affects conversion rates, or something similar.

On a related note, your point 3 assumes that a) the developer wants to change roles and b) that change is going to be to something that can be justified through revenue. Again, there is a lot of work that is interesting to programmers and very valuable to a tech company that doesn't directly drive revenue. These changes are very difficult to sell unless the CEO understands the benefits of these sorts of changes, in which case you probably don't have to sell them anyway.

In my personal case, I've gone as far as pointing out that every single thing that our company builds, when deployed, is critically dependent on my code and the code that I am responsible for working - and it does work, every time. It's still amazingly hard to get sales people to value that.

This point hasn't been stressed enough ... it is hard to get people to pay you for making things work flawlessly ... really hard.

Either they let you go and have an 'oh shit' moment as your replacement flounders ... or they just won't take you seriously because the stuff you do isn't visible to them ... you have to make a detailed and provocative case, basically outlining what happens if you leave, to get what you want.

If you have the sort of job where you can directly observe the financial benefits of what you do, and claim credit for them, then you are probably already earning more than PMs and BAs, or likely doing what they do as part of your wider software development responsibilities.

Most programmers, working together with BAs and PMs simply don't have access to the information that says how their efforts contributed to the bottom line. And they work in teams that often include those BAs and PMs, so even if they could make a direct link to increased company earnings etc, then it would be hard to justify claiming credit over anyone else in the team.

And in some cases a good PM deserves more than a programmer.

To get rich you need to get yourself in a situation with two things, measurement and leverage. You need to be in a position where your performance can be measured, or there is no way to get paid more by doing more. And you have to have leverage, in the sense that the decisions you make have a big effect.


However, I've read that as a boss, you may not want to entertain giving raises for those that ask for it, even though you may think you're cultivating the go-getters. It ends up that people feel like only those that are rewarded are those that cozy up to you, and politics will ensue.

According to the article, when asked for a raise, the best thing is to say they have to wait for their review like everyone else, and that's when you'll take note of performances.

This analysis assumes that your manager is not in a position to appreciate your work's value. The solution to that problem is to work for someone who does appreciate your work. That simple change will increase the quality of your work life; if salary is something you value highly, that will increase too.

Negotiation and business analysis skills are all helpful, but if you find yourself needing them to be duly recognized for your contribution, your work situation is fundamentally flawed.

Of course, here I am making assumptions of my own, e.g. you are a top talent in your field with the freedom to pick your employer.

This is excellent advice, having been someone in a very similar situation, I wish I had read this about a year ago.

What about asking for more stock options? Is this an acceptable thing to do if you feel you are in a strong position to do so? Any advice for how to do this?

I think it's a good idea to encourage everyone to try to get paid more, since (a) corporations make massively disproproportionate wealth relative to employees and (b) programmers are bad at the type of social and interpersonal skills that are required for negotiation.

That said, as someone who has been through this, I think your advice is a naively optimistic oversimplification of the forces that hold programmers back from getting paid more and, for the most part, people who follow your advice will still end up getting paid less than business analysts and project managers for cultural reasons expressed by some of the answers on that page.

The only difference is, with your approach, they may feel as if they have done everything they could, rather than suffering in quiet resentment (and, from a psychological perspective, this is not to be underestimated).

(a) corporations make massively disproproportionate wealth relative to employees...

Depends on the corporation. Walmart only makes about $10,700/employee in profit, for example (about $6/hour if all employees work 35 hours). Since walmart typically pays $10-12/hour at minimum, employees are capturing about 2/3 of the value they create.


Of course, the numbers will be wildly different at a software company. Most programmers don't capture anything like 2/3 of their created value.

That undermines my assumptions. Thanks for the link. I'm very surprised a company of Walmart's size has such low profit per-employee. I would have assumed some accounting tricks were responsible but maybe it's the nature of their business.

Walmart is the canonical example of a low-margin / high-volume business. Especially during their growth phase, every time they would find a way to reduce costs, they would funnel that savings into lower prices, rather than taking the savings in the form of a higher profit margin.

Very true, Walmart is a bit of a loaded example.

But I found data more useful to the tech industry. If MS or GOOG pays their employees $200k/year, then employees are capturing about half of the value they create [1]. Worse than Walmart, but not that bad.


[1] This is actually a fallacy, since it assumes all returns are due to labor, not capital.

To address the fallacy: Just state that labour and capital get half the returns each. We don't need to decide who or what creates value to make that statistic interesting.

It's a retail business - they are inevitably tied to the price they get from the manufacturer, and compete extremely strongly with a million other places, big and small. That really limits the margins they can make. Some retail businesses can get slightly higher margins due to exclusivity or just general scarcity, but overall the vast majority of profit is probably due to either 1. Cost Savings or 2. Economies of Scale such that you can eek some additional padding out of your vendors (WalMart is notoriously aggressive with vendors).

you literally just changed my world view, thank for showing me this.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact