We have to admit that programming is much more difficult than creating documentation or even creating Gantt chart and asking progress to programmers. So for us that are naives, knowing that programming is generally more difficult, why do business analysts and project managers get higher salary than programmers? What is it that makes their job a high paying job when even at most times programmers are the ones that go home late?

UPDATE

Excuse my ignorance, from some of the response it seems that the reason why BAs and PMs gets higher salary because they are the ones that usually responsible for the mess programmers make. But at the end of the day, it is programmers that get their hands dirty to fix the mess and work harder. So it still does not make sense.

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

closed as not constructive by Mark Trapp Sep 26 '11 at 8:16

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

Bigger salary in america has absolutely nothing to do with skill. More you are liked, and the more you play the politics game, the more you get paid. Programmers are usually logical, intelligent, individuals, who tell it like it is. Executives hate that.
–
MVCylonFeb 9 '11 at 14:21

29

"...the ones that goes home late..." Not to come across harsh but this sounds like a personal issue you need to address. If putting long hours in is how you define your worth to the company then some serious personal analysis needs to be done.
–
Aaron McIverFeb 9 '11 at 14:26

I will mention that the PM and business analyst on the main project I am working on put in way more hours than I do. There isn't enough money in the universe to pay me to do their jobs.
–
HLGEMFeb 9 '11 at 14:56

52 Answers
52

Whether project managers get higher salaries than programmers and business analysts at all exist as a class depends squarely on the software world you live in.

A simple answer to this question would be "because in our societies, we still think the salary is bound to the position in the hierarchy." But this answer whilst reflecting the fact that people are paid based on their perceived value doesn't explain why PM and BA are on top of the hierarchy in many software organisations and why the management goes for hierarchy in the first place as a structure of choice for software project team. These are the two questions that seems to be really worthy asking.

Broadly speaking there are two categories of software making organisations. I will call them Widget Factories and Film Crews.

Widget Factories are born out of management school of thought revolving around motivation Theory X proposed by McGregor: rank employees are lazy and require constant control and supervision, jobs are held in the name of a pay check, managers are always able to do their subordinates' jobs to the higher or, at least, same standard. This thinking lands to a natural idea that the entire team can easily be replaced with and represented by the manager alone - after all everyone else on the team is either easilly replacable or there just to enhance manager's ability to complete tasks. Hence the hierarchy as a structure and rather horizontal job roles.

Widget Factory management operates on the assumption that software can be manufactured out of a specification prepared by a business analyst through a clearly defined process run under the close supervision of a project manager. The manufacturing is taken care of by staffing the project with enough qualified yet interchangeable programming and testing resources. Work is driven by a prearranged budget based on the initial business case prepared by PM and BA.

Management that runs a Widget Factory is easy to spot just by paying attention to the way these people talk. They are likely to be on about resources (including when referring to team members), processes, operating efficiency, uniformity, repeatability, strict control over use of resources, clear-cut job roles and defined process inputs and outputs. They'd casually mention the actual factory metaphor when trying to convey the image of the ideal software development operation as they see it.

Then there are Film Crews. They are based on the notion that people are intelligent, self-motivated, work really hard and enjoy their jobs as much as kids enjoy playing. Film Crews recognise that due to specialisation individual contributor abilities may by far surpass the abilities of people organising, co-ordinating and directing the work. Since manager can no longer substitute for everyone the hierarchical structure just doesn't work that well - people have to co-operate within a much flatter and complex formation to get things done. Jobs roles themselves tend to be much more vertical - start to finish - and involve a broader variety of skills. This management thinking is underpinned by McGregor's Theory Y.

A director of a Film Crew knows that her vision for a piece of software can only come true should she be able to assemble a great crew, fascinate the imaginations and help the team to gel and work together. Her role is to inspire, guard the vision, provide direction and focus the efforts. Every single person matters because "director" believes that software results from combination of worldviews and abilities of all participants and a unique way the group carries out the work together. Everyone recognises from the onset the importance of getting the stars to join the crew – star performers increase every chance for success. Vision drives budget and attracts funding.

When it comes to compensation Widget Factories deem that the most value is derived from the work done by project manager and business analyst who reside on the top of the hierarchy and have to be compensated accordingly, the rest of the team doesn’t matter that much as long as they’ve got the right qualifications to convert requirements into working code. PM and BA work hard to maintain their position on top of the pack by restricting free access to the sources of project information to the rest of the team. Without formal access to the primary info sources the team struggles to make any value judgements or come up with good solutions, programmers are relegated to taking orders from above and working on the problem as defined by PM and BA. This situation further reinforces the Widget Factory notion that programmers are akin to factory shop floor workers only capable of mechanically carrying out though technically complicated, but nonetheless standard tasks.

In a stark contrast Film Crew acts as a more egalitarian formation; members are given unrestricted access to primary information, encouraged to form value judgements and are free to select a course of actions to fulfil and contribute to the vision. Leadership structure is based on ability rather than a specific role within the team. Compensation reflects how desirable getting a specific person to take part in the project, it often tied to the perception of how much more valuable the end result will become if that person can be convinced to devote their energy to creating that piece of software. In this environment the role of a project manager becomes less prominent as he is unlikely to be the creative leader; the role comes down mostly to administrative support and external relations. Business analyst’s duties are partly replaced by the role of visionary (I called her earlier “a director”) and partly absorbed by other team members.

Now, it won’t come as a surprise that most in-house software development teams and some consultancies are run as Widget Factories relying on a process to produce consistently boring software; it is these environments where project managers and business analysts are routinely paid more than programmers based on the assumption that they bring the most value with the environment structured accordingly making it difficult for programmers to prove the management wrong.

Successful software companies tend to adopt Film Crew viewpoint, any other philosophy would hinder their ability to attract great people that they rely on so much to produce great software. It’s unlikely you’d ever see a business analyst role in that setting and project managers are less prominent and routinely get paid less than great programmers.

Excellent summary. An important point to mention is that in most companies, software development is treated as a cost (same as, say, paying a utilities bill), and not as a core investment.
–
dbkkFeb 10 '11 at 6:55

3

Good answer! You gave a good picture of two different kinds of orgs and portrayed how they view the same job. A software developer need to choose the organization where his contribution will be important and valuable piece in the output. Just as a sound engineer/music director is to a Movie.
–
Senthil KumaranFeb 10 '11 at 9:44

39

Dude, this is a brilliant response. The Film Crew analogy works so well. I worked for a Film Crew for 9 years before it got bought by a widget factory, after which I only lasted 8 months. I then started my own software development business and we are so a Film Crew. I think you've just given me the analogy I need to communicate how we work. Thanks!
–
Daniel PaullFeb 11 '11 at 0:24

Because in our societies, we still think the salary is bound to the position in the hierarchy.

The analysts or project managers are higher in the hierarchy, so they should be paid more.

Let me tell you a real story that illustrate why this is a problem.

A good friend started as a programmer in a big hospital. Thanks to his hard work and dedication, he quickly became Oracle DBA, which was a critical position in a company where data is both sensitive and valuable.

The hospital worked with levels. Levels are bound to your position in the hierarchy, legacy and diplomas.

My friend got a proposal to become DBA in another company that didn't use salary levels. His salary could be increased a lot. Because he liked and respected the hospital he worked for, he decided to talk to the boss, asking for an increase.

The boss refused. It was impossible because of the levels and the unions would not let that happen.

My friend left.

The hospital eventually hired an external consultant (not bound to levels) and posted a job on their website. The consultant did not know anything about the infrastructure in place, so his learning curve was huge. The hospital lost lots of money because of that.

The hospital did lose a lot more. The external consultant was paid as much as 5 times what my friend asked for, and they couldn't find a qualified employee to replace him.

That was almost three years ago. My friend is still at his new place and climbing the hierarchy ladder very fast doing what he loves.

The hospital is still paying 5 times more.

IMHO, salary should be relative to the value you provide to the company.

UPDATE: When you move higher in the hierarchy, there is the leverage effect occurring. So in fact, you are paid for the value you bring. But brilliant programmers that are 10x more productive should be paid 10x more, regardless their position in that hierarchy (usually at the very bottom). That's what I wanted to highlight.

You are correct - salary should be relative to value. Frequently this is not the case. In some small private companies where everyones salary is kept secret (and individually negotiated) then only the big boss knows who is paid what. And sometimes in those places the salary is relative to value, and some supervisory people get paid less than the really clever people doing the work. This does not happen often, of course.
–
quickly_nowFeb 9 '11 at 9:38

16

Pierre, sounds like public sector in the UK!
–
jmo21Feb 9 '11 at 10:03

10

The employee could perhaps have proposed to work as an external consultant?
–
Thomas StockFeb 9 '11 at 12:08

4

@Thomas: yes I remember I suggested it, but he was not very interested (fear of losing of his security, which is IMHO an illusion), and that would not solve the budget problem of the hospital.
–
user2567Feb 9 '11 at 12:11

They take more risks than programmers do. They have to make decisions based on whatever information we gave them, and then face the stakeholder's harsh criticism when their expectations aren't met. Part of the pay package compensates for this risk.

Another factor may be the years of experience needed to prepare a project manager who can plan, estimate and mitigate properly. In some sense, a nuanced project manager is trained through failures, making it an expensive-to-acquire skill. Once reached the level of seniority, a company may not be willing to let go of such valuable personnel.

Edit:

There are more kinds of risks than financial or physical harm. For example, consider the risk of being reprimanded by the manager or the customer. Although no actual harm is done, it is still undesirable enough that we adapt our behaviors in order to avoid this kind of outcome. However, managers have to make good decisions all the time, and has to balance different kinds of risks in the interest of the company, not according to personal preference.

"They take more risks than programmers do." Like what? I've yet to see a project manager or indeed any manager suffer any serious hardship because of a bad decision. (In the software industry, that is.)
–
biziclopFeb 9 '11 at 13:43

83

@9000 Bad project managers on the other hand are very easy to find and they command higher salaries too.
–
biziclopFeb 9 '11 at 13:43

10

Facing stakeholder's harsh criticism is not really an economic risk and is not worth much of extra reward, it's part of being held accountable for a string of bad decisions taken or hiding true information about work progress from stakeholders. A programmer faces a similar risk should they be caught out knowngly producing extreemly poor non-functioning code whilst reporting "all green". In most organisations PM's are not critised for not delivering that is deemed impossible.
–
Vlad GudimFeb 9 '11 at 16:08

Programming may be more difficult by some measure, but it's also more pleasant. You just sit there and solve the nice programming puzzle while managers deal with all kind of crap between their subordinates, their clients, their own bosses and stakeholders. That's why so few sane people actually want to be managers, so you have to compensate for that by paying more.

Programming is more difficult, but managing sucks more.

One way to think what's someone's value to a company is to imagine what it would be like if that person left the company. Usually managers turn out to be more valuable in that sense than programmers. James Gosling, the creator of Java, recently left Oracle. One could think it's a huge loss, but guess what? Actually it doesn't matter. It hardly has any effect on Java or on Oracle. Dogs bark, but the caravan goes on.

By the way, I (seriously) think that dustmen and cleaners should be paid way more than programmers. Cleaning other peoples' litter is a job that sucks and is indispensable.

@Joonas - "....think that dustmen and cleaners should be paid way more than programmers" <-- You're going to need to explain that one to me! WTF?
–
jmo21Feb 9 '11 at 10:06

27

It is certainly true that cleaning is a tough job physically. Still, there are way more people who are capable of doing a decent job as a cleaner than there are decent programmers. So the market values good programmers higher.
–
Péter TörökFeb 9 '11 at 10:09

@jpartogi: Programmers don't need to stand the stink and strain their muscles to make code. It's a comfy job, as we know.
–
Joonas PulakkaFeb 9 '11 at 12:39

9

Sitting in front of a legacy system with a design that evolved into a horrible mess and trying to create a quick patch for the next release without breaking any more code is a daunting yet common programmer task that really sucks. There are thousands of happy managers and thousands of miserable programmers. So your answer doesn’t really explain the difference in the earnings.
–
Vlad GudimFeb 9 '11 at 16:34

This is a programming forum, so most people here will find programming easier than management. Overall, without the selection bias, I'd suspect most people can manage better than they can program.
–
David ThornleyFeb 9 '11 at 15:47

15

I disagree. Good managers are few and far between, just like good programmers.
–
DimaFeb 9 '11 at 17:37

4

@Woo4Moo you should consider the ableism of that statement.
–
YahelFeb 9 '11 at 18:56

8

@Woo4Moo actually if you can't think logically you can't be a good programmer. There are quite a few disabled programmers now that use Dragon Naturally speaking et all.
–
Anonymous TypeFeb 10 '11 at 4:26

2

I find it hard to believe that good managers are harder to find than good programmers. I've worked with hundreds of programmers and have only come across 3 or 4 that I would rate as good, and yet I can think of dozens of good managers that I've worked with.
–
DunkFeb 10 '11 at 23:15

Everyone here is focused on the negatives. I've never met a programmer that likes office politics and good managers shield you from that sort of garbage. Having interacted with a lot of people at our main client, half of them are insane and I'm glad to have my PM there to soak up that insanity for me. If they pay them a lot, that's fine. He or she needs it for the inevitable therapy.

I know, but I prefer someone else play the game so I can write code.
–
MattCFeb 9 '11 at 21:54

1

I like to play games, but not with other people.
–
Anonymous TypeFeb 10 '11 at 4:28

3

The hardest thing about being a BA is making sense of the contradictory requirements. Every stakeholder has a different idea of what is required. Then the big bosses are the most delusional and insane. Extracting requirements that the programmers can put up with and produce something useful is enough to drive the BA to drink and expensive recreational pharmaceuticals.
–
CyberFonicFeb 10 '11 at 22:08

8

Yes but the bad managers just push the office politics from the client straight to the developer, which kinda negates the point.
–
sevenseacatFeb 11 '11 at 4:56

It's arguable of course, but a significant reason behind this is that they carry the responsibility of the project if it fails, not the programmers. They might give you a earful for cocking something up, but they face criticism from even higher powers. They're the ones in charge of planning and estimation.

Managing requires a very multi-faceted skill-set: people skills, leadership, ability to estimate costs and time. To do all this they also need to still be in touch with your side of the things (ie have some clue of what you're doing, technically speaking) or be very good judges of character.

If requirements were not defined correctly, it's their fault.

If test plans were not defined correctly, it's their fault.

If you go on vacation or break your leg or get wasted on a Saturday night or leave without giving enough notice and they have to find a replacement or <some reason here> and you cannot get to do your work and the product doesn't get delivered (on time or at all), it's still their fault.

Also note that when I mean they carry the responsibility, it impacts people above and below them. If they screw things up, it might be your team's jobs that are on the line. That's also the kind of pressure you get paid for.

PS: Plus, I don't know if I would say that programming is harder than doing Gantt charts (to reuse the example you mention). I don't know about you, but I find programming (in general, for 80% of the stuff you need to do in the industry) fairly easy. If you screw something up, you can fix it. If your boss screws up his gantt chart or his cost estimation, now that's going to be a much bigger issue than inverting a != null for a == null. Small mistakes matter on a wider scale for them. Most of the time, of course if you screwed up a test like this in an embedded medical application that went live, that's also a big problem. But they'll get more problems than you!

Supply and demand is an economic model of price determination in a market. It concludes that in a competitive market, the unit price for a particular good will vary until it settles at a point where the quantity demanded by consumers (at current price) will equal the quantity supplied by producers (at current price), resulting in an economic equilibrium of price and quantity.
The four basic laws of supply and demand are:

If demand increases and supply remains unchanged then higher equilibrium price and quantity.

If demand decreases and supply remains unchanged then lower equilibrium price and quantity.

There are many low-level developers, but competent programmers are needles in the haystack
–
Foo BahFeb 9 '11 at 16:01

10

That's certainly the theory of how salaries are supposed to work in a market economy. Your salary is not determined by the value you bring to the company, but by the marginal cost of replacing you. The trouble is there are no truly free markets. Nepotism, cronyism, rent-seeking, and asymmetry of knowledge, are endemic. In theory, organizations that fall into these inefficiencies should be put out of business by ones that don't, but when almost everyone does it ...
–
Charles E. GrantFeb 9 '11 at 19:47

4

Or perhaps--it's difficult to determine the quality of a programmer, and so the market appears flooded, but the majority of the supply side is actually unsuitable. This would explain a lot of code I've seen...
–
Alex FeinmanFeb 10 '11 at 17:12

1

Note that the market is not symmetric. An employer have a choice of thousands of programmers. A programmer have a choice of just several employers. The losses of an employer due to one programmer are negligible in comparison with the total capitalization or revenue of a company. The losses of a programmer are enormous - it usually takes several month to change a job, so it is like percent or several percents of the only resource of the programmer - his lifetime. You see that the managers have more power here since they are in a position to make their replacement more expensive.
–
Anton NazarovJun 20 '12 at 22:57

I've shifted between developer and PM roles throughout my career. I have developers on my project making twice as much as I do and others who are making half. The high wage earners are being paid what they are because:
A) They are "rockstar" developers.
B) They interact with the customers, explain the product in a way that is easy for the customers to understand, and are personable.
C) They direct teams of developers who work on multiple projects.
D) They are always available and eager to please.

They perform the roles of a developer, PM, and BA in varying capacities. Generally, if you're spending 90% of your time heads down, cutting code then you're not incredibly valuable and likely are easily replaceable. If you want to make more money then you need to take on more responsibility... and probably have to find another company that will pay you more.

The rationale is that a project manager's area of responsibility (often) is to deliver the whole project on time, with acceptable quality, within a planned budget. There's often a lot of money at stake, so naturally good project managers often have higher compensation than programmers.

However I don't feel that business analysts, on average, earn a significantly higher salary than programmers. And it's my feeling that it is becoming less common that salary level in a company is determined by hierarchy and not by an employee's value.

My experience might be different (or I'm living in an different universe with distorted laws of physics), but most business analysts and project managers (not program managers, but project managers or PMPs) positions I've seen are at or slightly below the average salary of programmers.

The salary gap begins to widen more when compared to the average salary of software engineers (on the software engineer's favor). The gap is even more when compared to senior EE or senior software engineers. Almost no senior business analyst or senior PMP will make the same as a senior EE or senior/principal software engineer.

A program manager, however (which is not the same as a PMP), that person will make a lot more than anyone else (and the reasons should be obvious.)

The thing that bugs me the most when I see these complaints about salaries is that as programmers (specially as junior/entry level programmers in the enterprise), we are (or were not) that special. There is nothing really in an entry level programmer right out of school that deserves a rocket scientist salary. No.

All of us that work on software started from zero. We all did.

And IF we are really honest, we know well that we didn't know crap. Being able to complete our undergrad CS course load is just the starting point. It does not make us that special or ZOMG!!!! uber-Einstenian. Really, NO!

And yet (and thanks to the ill-fated period of the dot-com bubble), we expect to make not just more, but a lot more than another university-educated person just because OH WOW, we are programmers and they are just business analysts and PMPs.

Can you spell arrogance? Newsflash - for most programming tasks in the enterprise, you don't even need a 4-year degree. Really, is that serious.

Put the time on the grind and build the experience to transition from programming to software engineering (or engineering for that matter) at the senior level. Then you can demand to make much, much, pero mucho mucho much more than a business analyst and PMP.

Get it over with - some of us are (or were) overpaid. Period.

Rant aside: reasons for a business analyst and/or PMP to make salaries close or similar to programmers that have not yet accrued the necessary time and expertise to be mid/senior software engineers (or that have still not developed expertise in a highly demanded niche area):

A business analyst is the liaison between software and systems folks and business people/business processes (which are the ones that justify the existence of your paycheck, not the other way around.) They are the ones responsible for breaking down business processes in methodical, analytical manners, as input amenable for forming requirements, the stuff you work on. They make sure that you spend most of your time programming and not dealing with the minutia of business.

Many of you think business is easy shit. If you really think that's true, God help you.

A project manager is the person in charge of juggling multiple projects (whereas you only have to juggle with one or two at the most at any given time.) He's your umbrella, and he's the one that has to do the dirty job most of the remaining unwashed masses don't want to do - to chase people down making sure they do their jobs or removing impediments to your job.

He's the one that will ask you "what are you working on? is what you working on helping moving the project along? do you have problems with your work? what are your obstacles, what do you need? who can give it to you?"...

and then he'll go to others asking the same hard questions, making sure that obstacles are removed, and making sure that you are pulling your weight on the project (if necessary.)

The number one problem I've seen in many failed projects is a lack of PMPs or a disrespect towards PMPs (specially from developers.) It is rare that I see projects fail because of incompetent PMPs, and yet one has to wonder why many programmers are more than eager to say that is the case.

@luis.espinal: Most people demand the highest pay they can get. The question is not whether they have a moral right to it (does anybody have a moral right to be paid more than anybody else?), but whether the market is such that they can get them.
–
David ThornleyFeb 9 '11 at 21:35

1

your post is too long i stopped reading after the first page.
–
Anonymous TypeFeb 10 '11 at 4:38

I'm in finance, and I think the mentality is similar in most non-tech outfits:

Pay is proportional to career risk

Barring a complete dismissal of a group or team, the low-level programmers always keep their jobs. It's the nature of the job, and programmers go into it knowing full well that they are taking zero risk. If there's a bug, its not their heads on the chopping block.

At higher levels, if something screws up, you are the first to go. I've had many experiences with a subordinate who made a small typographic error which led to us losing money, and I took the heat for it (not the actual programmer who made the error).

Quite simply, the pay is commensurate with the risk. Programmers, on the other hand, dont necessarily have any skin in the game, so to speak.

If your question had been "why do X and Y get higher salaries than programmers at my company" I might have answered "you may work at the wrong company."

The success of a company in the software business depends more on the abilities of its programmers than anyone else. Companies that don't recognize this are automatically at a disadvantage vs. those that get it. Hiring the best programmers and taking good care of them is your best bet. The difference in the work of the great programmers vs. the rest is enormous; way bigger than the difference in salary they command. But if you insist on underpaying your programmers, you'll get what you pay for.

That said, every other role in the business is important. The great managers have a huge impact. A lot of that is by getting great programmers and keeping them happy. Something similar can be said about business analysis, marketing, sales, testing, and support.

If you are a great programmer and you're not being handsomely rewarded, go somewhere else. Then again, you may not be a great programmer. Unfortunately if you're not great it's hard to see why. If you knew why, you could change and be great, right?

I have been a programmer and I have been a people manager. I worked with a lot of great programmers, but only a few great managers. When I was a manager I was not great, but at least I knew it. My people got more raises than I did, which they deserved.

It has little to do with skills and work, I mean little in the economy is tied to how much people deserve to make.

Deserving to make more money is an ephemeral idea, everyone believes they deserve to make more money.

While it may not be fair, managers make more money simply because the business owners trust them more. Managers often get higher salaries, simply so they won't take a new job out of the blue at an inconvenient time.

Management must be paid more than their subordinates. Seniority in a company is generally based on salary, and there's no way a junior employee can have the means to command their seniors.

Leading people is a specialist skill. Not everyone can be a project manager (PM). The task is more and more difficult as the number of staff increases. In a technical PM role, the PM needs to have a good grasp of the technology to effectively lead - or they will not have the respect and support of their subordinates.

I think the point of the OP is that not only the really qualified and good managers get higher pay than their subordinates, but (almost) all of them, even the really uncapable ones.
–
Péter TörökFeb 9 '11 at 10:03

1

Another issue: management is a people skill. I don't think a good PM is really needed to be very tech-savvy in order to have the respect and support of his/her team members (neither do I think these team members should really be subordinates of the PM). I fully agree with Peopleware in that a good manager works on removing all obstacles in front of the team, and then lets them do their job.
–
Péter TörökFeb 9 '11 at 10:05

11

Management must be paid more than their subordinates. Not necessarily. And definitely i don't want to work in a company with this "must" rule.
–
Nikita BarsukovFeb 9 '11 at 10:33

1

I've never found or heard of a company or organisation where it wasn't the case. Though admittedly, my experience is in two very old industries (banking and government).
–
TZHXFeb 9 '11 at 10:37

4

@tzhx: I did work for a couple of serious companies where my managers were paid about as much as me, and less than some of my colleagues who were better specialists than me. No, this did not bother any of us, nor made us look at managers as inferiors. Each of us was doing our own job, paying respect to jobs of others — our managers did do evidently sensible work. Team spirit should trump hierarchy, imho.
–
9000Feb 9 '11 at 12:37

In many professions, a core skill is the ability to sell something. And to sell something will, you need to sell yourself. You need the buyer to trust you and value the product or service you provide as much as you intend it to be. This skill is completely transferable to salary negotiations.

I've gone through every post, and I dare to say that most of them are trying to compare apples and bananas.

First of all, I believe that someone who says that 'manage is piece of cake' never had to manage anything further than his own schedule. On the other hand, say that 'anyone can code anything' is silly (and is in the wrong forum, for God sake!).

I specially liked rwong and luis.espinal asnwers, although I believe there are other facts that needs to be noticed as well.

I don't believe hierarchy as an answer - not nowadays - although it fit perfectly for the last 10.000 years. We lived for centuries in a society where the higher your profits, the higher your power (and vice-versa). I don't believe it applies for our world, in the way it is (specially in our area).

Back to the main question, I believe that managers usually earn more because they're more valuable to a company not because he's higher on hierarchy, but he's higher because of

all the knowledge he already gathered from previous experiences (usually programmers have less experience than managers in general)

for being able to manage several things at once (programmers have one task - or a tasklist - to accomplish, whilst managers have to manage their own tasks

they're the head contact for the project they manage, and for this reason they're the first 'target' in case something goes wrong. Is easier to lost your job if you're a manager;
being a developer, you have the 'license to redo something'. That's the 'risk' factor everyone mentioned.

developers are part of a whole project life cycle. I believe when we talk here of 'programmers' we are also thinking of the testers, technical writers and all other people who are highly important for the project's success.

and there's something that I saw only in a couple of posts across this topic: leadership. Being a manager is about to know how to be in touch with people, to negotiate, to keep
everybody motivated, to create synergy when everyone's mood is down.

In my opinion, the leadership factor is the main reason for the higher salaries, because it generates a huge long-term result for the company and for everyone who's around the leader.

BTW, I had only a few experiences as a team leader (far from being a project leader!) and as much I know what a leader does, as much work I realize I have to do.

That depends how you define 'difficulty'. Even though, I wonder if you do know what Project Management is about and what Business Analysts should be doing. I read much frustration from your question, so I think you have some bad experiences. Never the less, I want to try to answer your question.

Project Managers and Business Analysts are usually 'older' when they fulfill those positions. Where developers start their career very young (around their 20s), most project managers and analysts are near the age of 30 (which already creates a difference in payment just by age alone). They are also the ones that face customer exposing, which means they have to travel onsite, spend hours of torture to listen to the customer (especially when a project goes dead wrong) and enlist their wishes/needs. They have to be careful what they promise and especially within what scope (time-to-deliver). Even though from your perspective that what they do is only documenting, business analysts are educated to analyze the needs for the business, and project managers are guarding the planning of projects.

They act as a firewall between the customer and the developers. A technical perspective is something different than a sales perspective. Most business analysts and project managers are also facing a large variety of customers - they are exposed and therefor have 'leads'. Their network consists out of decision makers and therefor companies prefer to keep people with such networks within reach; after all a sale is a sale.

Regarding difficulty? Start a company, have ten developers and try to manage a project. The headache comes with it for free. Do this for a year and then look at your answer again. For BA's? Go for such an opportunity. Sit down with customers who have an AIX machine from 1974 and the designer of that system is dead/retired/dying/alzeheiming and the developer needs to know if a certain value is generated or has some mystical formula. Try to convince 20 people with a powerpoint about your solution within 3 days time. If documenting was that 'easy', Linux would've pwned the world in 1997 already. Really, try writing a technical white paper every month for non-technical people (the ones that think that Facebook is a revolution in computing).

I am a sales engineer. Which means, I develop but my specialism is for prototypes and demonstrations. And I earn more than a business analyst or a project manager. Not because I have a network (I do, though), but because I left the attitude and focussed more on the business perspective, got myself certified and taught myself some soft skills. And the experience to learn that 'no' is also answer, when it comes to overtime.

Now saying that my whole answer is flawed, is basically telling people that your opinion and experience is the only one that is truth/fact. I am pointing out that your 'fact' is not always truth, as I am experiencing other things.
–
ShyamFeb 14 '11 at 8:34

Why? Because they ensure that projects get completed, even if they're not doing the programming themselves. That means their value (purely in monetary terms to the company) is more than an individual programmer. The company doesn't believe that unmanaged programmers are productive, and therefore valuable... It's only the manager that makes them so.

Sucks, and we may not like it, but that's why the company pays them more.

Their position (as others have pointed out) comes with drawbacks, though: If they fail to get a project completed by a certain time, it's their fault, not the programmers. They shoulder more responsibility, and are highly likely to get fired for failing (unless there's some BS company nepotism going on).

So, really, they're not allowed to make mistakes, have more pressure on them, and have a much more volatile job... but don't get confused: This isn't why they're paid more -- a company doesn't give a rat's ass how much pressure you're under, how volatile your position is, anything like that. They only care what value you bring to the company. Period.

Management doesn't always make more than the engineering staff. The senior level engineering staff should be actively involved with business level analysis and decision making and charting the technical roadmap for the company. When this is the case, the senior technical staff can make quite a bit more than the business managers they work with everyday.

One of the popular myths of business is that the manager should be paid more then the people he/she manages. IMO, you find this notion more deeply entrenched in buracracies than in functional, agile teams.

To put it another way: compensation is supposed to reflect the value of a person's contribution to the company. There are stellar business managers and average managers, and there are stellar engineers and average enginers. If you have a stellar engineer that cranks out money making technology and has deep knowledge of the company's technologies, isn't it in the company's best interest to compensate this person more aggresively than an average business manager who happens to be managing this stellar engineer? What is the opportunity cost of losing that engineering expertise and skill set because you neglected this valuable resource?

I started one month ago with my first project as a PM. Before I worked as a programmer. (by the way, I get the same money as before.)

I found out that being a good PM means being a good programmer with a wide experience. You should be able to go from one team member to another and discuss the problems they have using your practical experience to help them to understand the problems by providing a different point of view. Your task is, besides other, to manage the interfaces. A PM is like a conductor. You can have the best musicians but if you don't have a good conductor who knows how to play the meta-instrument orchestra well, you get only a mess.

The counterpart is the specialist. This is the programmer who is able to solve difficult problems because he has a deep knowledge of the problem domain. These experienced people often also high paid if they are good enough in negotiation. Unfortunately specialists are often nerds and not so interested in money or good in making a good deal...

Programmers don't put salary as the highest priority (Assuming it is at a reasonable rate.). Imagine two job offers where one has a higher salary, same time commitment, but requires technical support, strict business hours, dress code, writing user documentation, dealing with legacy code in an antiquated language you were hoping you never had to use again, how much more salary would you require?

All right I am slightly surprised with the answers, so here it goes. But before that, I will just like to clarify that I am a Programmer and there is nothing I like more than Programming. That said I have a healthy regard and respect for competent PMs and BAs. I realize that many of us resent PMs and BAs because unlike programming it is possible to excel in them without the required level of competency (office politics, nice suits etc).

However both Project Management and Business Analysis are critical components of the software development.

Whenever we think of software development many of us have a tendency to focus only on programming to exclusion of everything else. Yet there is more to it than coding.

First aim of development, which is to create a software which actually addresses and solves customer's issues. This implies first actually figuring out the customer's requirements (as customer may not be really sure what he wants), this is only possible by a detailed analysis of domain in which customer operates and structure of the various artifacts (whether it be people, technical infrastructure or process), and afterwards develop suitable business solution (and its integration with technology) to address those requirements.

Similarly any project of significant size absolutely can not work without effective management. Now I don't know how it is in other places, but so far my experience has been that PMs are usually promoted from ranks of programmers, so they do have some idea about what it takes to organize and execute the project.

Many people said here, that programming is more difficult and that is why it should earn more. That is a very romantic view. The truth is, that in a normal, healthy company the payment is according to the responsibility, that means to the added value of that person and also the risk.

The risk will often be forgotten. Normally if the programmer fails in his hard-to-do job, there might be some increased costs, but nothing more. Not like 10% of the workers will lose their job or something like that. The risk is quite low.

Also I want to disagree with the idea, that most business people earn more. I bet the normal business guy earns less then most Bachelors of Science/Engineering will earn. For example as a undergrad holiday coder I earned nearly the same as some full time business stuff workers in the same company.

And last but not least, why is the project manager not an engineer? Normally the project manager is a guy with many years at the front in the topic of the project he manages, meaning in programming jobs it will be an experienced programmer who is the project manager.

There are corporate environments in which either the command and control pattern or the hub-and-spoke communication pattern dominates. In these organizations, the manager and the chief communicator are often the same person. This makes the manager a single point of failure - any dismal effects of miscommunications or lost-in-translations are amplified. Hence these environments require persons with extensive technical backgrounds as managers to ensure accuracy.

Better organized teams usually appoint a chief communicator to offload this responsibility. Organizations which practice knowledge management do not have any single point of failures in communication. In these organizations, the managers and chief communicators solicit for information and facilitate discussions. These information will be captured and processed for internal sharing. A different set of social skills is required.

Likewise, business analysts are often the single-point-of-contact between the customers and the company's technical staff.

This is not always the case. When I worked for Computer Sciences Corporation (CSC), most managers made less than the "people who produced something useful". In the case of CSC, I think this was the case was because the company had been started by a group of programmers.

At the time (1970) there was another software company in LA whose name I forget with an interesting salary schedule. Programmers got paid $25,000/year and support staff got paid $15,000/year. The idea was that if you were the worse programmer there you should not be surprised to get replaced.