Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?


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.


locked by Thomas Owens Aug 29 '13 at 11:56

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.

They wear better suits :-) – Stephen C Feb 9 '11 at 11:05
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. – MVCylon Feb 9 '11 at 14:21
"...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 McIver Feb 9 '11 at 14:26
Reminds me of Dilbert's Salary Theorem: – badgerr Feb 9 '11 at 14:42
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. – HLGEM Feb 9 '11 at 14:56

52 Answers 52

up vote 390 down vote accepted

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.

we need a list of 'Film Crew' software makers :) – Guillaume Feb 9 '11 at 16:29
excellent outline of the situation – lurscher Feb 9 '11 at 18:39
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. – dbkk Feb 10 '11 at 6:55
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 Kumaran Feb 10 '11 at 9:44
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 Paull Feb 11 '11 at 0:24

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!


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...


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.

Edit: Forgot to highlight: communication skills aren't a strong point for most of us, but is a must for a leader. Besides, I'd like to share a very good post at Coding Horror, related to good programmers and communication skills ->


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. – MattC Feb 9 '11 at 21:54
I like to play games, but not with other people. – Anonymous Type Feb 10 '11 at 4:28
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. – CyberFonic Feb 10 '11 at 22:08
Yes but the bad managers just push the office politics from the client straight to the developer, which kinda negates the point. – sevenseacat Feb 11 '11 at 4:56

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.

What a wonderful anecdote. – Alan Pearce Feb 9 '11 at 9:36
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_now Feb 9 '11 at 9:38
Pierre, sounds like public sector in the UK! – ozz Feb 9 '11 at 10:03
The employee could perhaps have proposed to work as an external consultant? – Thomas Stock Feb 9 '11 at 12:08
@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. – user2567 Feb 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.


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.) – biziclop Feb 9 '11 at 13:43
@9000 Bad project managers on the other hand are very easy to find and they command higher salaries too. – biziclop Feb 9 '11 at 13:43
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 Gudim Feb 9 '11 at 16:08
Getting fired for making the wrong decision and walking away with a multi-million dollar severance package sure sounds horrible! – Wooble Feb 9 '11 at 16:19
@biziclop: To be fair, bad programmers tend to stick like shit and just fill rank positions without hardship of their own either. And there a lot more of them. – Matt Joiner Nov 13 '11 at 12:18

All business analysts/project managers do not make more than all programmers.

There are other factors which are more important, such as industry/sector, level of domain knowledge, specialization, and the nature of the business you work in.

I know plenty of highly specialized developers who do contract/consulting work and pull in double or more what most BA's do.

It's all about business value, and if you bring that value, you'll get whatever the market can afford to pay.


My theory is that jobs that are closer to the money get more of the money. (excepting cashiers)


You think your language/compiler is finicky? Managers deal with self-aware complex-state compilers called programmers, and the good managers even get them to produce software.

Seriously, I like the widget factory vs film school answer, which I think is probably the best answer in thread, but there's a meta-level discussion it doesn't really address: no matter which kind of organization you're building, you're building an organization from material as capricious as people, and that's work that's often hard to do well. You can make a solid argument that it's weird that these positions often pay better than the programmer's when a significant chunk of analysts and PMs and PHBs are not in fact doing a good job, but the fact is that there is a job out there that involves building organizations that get things done, and it's a skillset that's arguably more difficult to master than building software systems that get things done.


While it may be true that on average managers salary is higher than a programmers one, what may be of a personal interest is that some programmer are paid better than some managers. If you want to get a higher salary, you can be a great manager, if you want, but another option can be to become an excellent programmer.

If you really want to understand why managers get more than programmers on average, you should try to understand how economics works, as economics is the science describing prices, money and things like that.

As other replies have already told you, salary (like almost anything in real life economy) is not "fair" in the sense more effort gives you more money, it is a result of free market. If you ask why managers get higher salary then programmers, you should also ask why actors or football players are paid better than scientists or miners.


Because bosses let managers to recruit programmers, so managers decide programmers' salary. As a result, candidates' salaries cannot be higher than interviewers'.


I disagree with the premise that programming is more difficult than writing documentation. Programs are read by computers. Documentation is read by people. I think most people here would agree that getting a computer to understand what you are trying to say is often far easier than getting a person to understand what you are trying to say.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler – Jeff Swensen Mar 4 '11 at 1:29

Simple answer: They're more valuable to the company than programmers.

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.

That's capitalism, folks.


I've my own little software enterprise and I'm both the programmer and project manager, so I can give you both points of view.

Your initial assumption is not true. Let me write it down:

Project Management & Software Analysis =

Creating documentation or even creating Gantt chart and asking progress to programmers.

If you really think that's all Project Management and Software Analysis is about, it's no wonder that you think that programming is harder.

But that's a ridiculing, unfair and non-realistic way to define those professions. It concentrates on merely visual aspects, as if the they didn't give value.

How would you feel about this other definition?

Programming =

Sitting in front of a computer and punching keys.

If programming is defined like that, PM & SA look much more difficult, even by your definition (which isn't correct).

Those professions are better paid because they are, indeed, more difficult than programming.

  1. They involve dealing with people, not machines. People are vastly more difficult to work with, given their non-deterministic nature. The subset called clients is specially troublesome.
  2. Others have said it, but let me repeat it: responsibility. If a programmer screws up, it's up to the PM to solve the problem. Not just to report it, to solve it. It might involve delaying a launch for 2 weeks. Or skipping one feature.
  3. The amount of multi-tasking one PM has to do is usually staggering. It's a constant exercise in balance between the team, management, the clients, and the budget. It is not easy.
  4. It also involves communication "the other way around" - Not only the programmer must report to the PM on the status; the PM is in charge of properly communicating expectations, risks and goals. If some cases they're also in charge of training.
  5. Have I mentioned dealing with clients?

If the project managers that you work with just do powerpoints, they are not doing their jobs correctly. And that's sad.

I think you will not really understand why project managers earn more than programmers until you meet a good project manager.


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. – Shyam Feb 14 '11 at 8:34

Managing people is harder than managing code. And good managers have the unique ability to find good programmers.


I think the answer is very simple. Managers have to justify their high salaries by placing greater importance on other managers. If they see to it that the managers below them are earning hefty salaries then that ensures they have an even larger salary.


Business Analysts and Project Managers have more access to managers up the chain. That's the main reason why they can get paid more. Not all do. There are also organizations that pay really poorly for business analysts but they risk a very high failure rate due to the most expensive form of bug - a requirements bug.

Programmers who demonstrate the capacity to effectively gather business requirements and or manage a project get paid more than all three of the choices you've listed. It's important to remember that technical services are in service of business needs in most organizations and people tend to trust and value people that they feel understand their needs.


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?


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.


Project Managers, manage upwards. Programmers manage downwards.

A Programmer's job is to write bug-free code that delights customers as quickly and cheaply as possible. A Programmer manages there code (downwards), thus if they do a good job there code is happy. The code does not pay there wages and those that do, do not understand the code.

A Project Manager's job is to predict schedules and help the programmes (e.g. make project run faster) A Project Manager spends little time doing anything to help the programmers (managing downwards), and if the project is late they blame the programmer. By isolating the programmer from the upper-management/customers they are able to manage the upper-management/ customers, thus influencing these with the money (managing upwards). They may enrage the programmers, but this does not matter as the programmers are not paying them.


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.


For the exact same reasons that a CEO can make 263 times as much as their average worker.


in general the project managers must see the general picture while programmers only do their own specific task,

you can run a successful web business with average programmers but rarely with average managers

if you are a manager you need to do the finance math, you need to work on the personnel issues and trust issues, have a say in the recruitment matters etc.


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.


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.


Simple answer: people who knows how to negotiate a better deal often be able to negotiate a better salaries.

Now tell me who is a better negotiator: business analysts or programmers? (I skip project managers because quite a lot of them were programmers one point)

Or put it this way, if those programmers feel that this is not good and continue to work in a company like that, it would be their own problems since they either couldn't change the situation, or they don't know how to express that to who pay them. Not to mention if the company itself also makes even more money in some cases.


In my world (in my country, or the environment I'm used to be working in), a System Architect and a Project Manager is the same person. Once he designed the system, he should plan the development, do charts, monitor what's happening, etc. He shouldn't get involved into programming.

Right now I am playing this exact role, though the system we're making is rather simple. What I observed when I was hiring, is that most developers (of the ones I came across), to my dismay, can't see the big picture. Hell, they can't even comprehend a whole, but separate, small task.

I am being paid more than them, because they constantly ask me about things they don't understand, or bugs they can't find. And because I have to describe the tasks in such a way, that the programmer wouldn't find anything to understand in a wrong way. I write tons of code, in English. My correspondence is about 20% in size of the total project code size.

I am also the bearer of the responsibility on this project. Every time the project is late, I get to be punished. And I also ensure the final quality of the whole system.

And I think it's fair. I see the big picture, they don't. I tell them what to do, in small tasks, so that in the end something good would come out. I solve the most complicated problems that occur.

If you feel you are in no way worse, then it's the company's fault that you still haven't got a promotion to something bigger than a developer.

A simple developer must be that person, that can do small individual tasks, in a way he is asked to do them. A simple developer must not be that person which understands more, and participates in the project at another level.

It's absolutely not fair if a person who just plans and constantly checks for progress, gets paid more, than those who actually do something for that progress. This exact situation is at the heart of the slowly rotting company.

-1: I am being paid more than them, because they constantly ask me about things they don't understand, or bugs they can't find. And because I have to describe the tasks in such a way, that the programmer wouldn't find anything to understand in a wrong way.: I totally believe you, and you should be paid more. Much more in fact. Still, this doesn't speak about most project managers who couldn't do this if their life depended on it. – Jim G. Mar 24 '12 at 0:38

Tricky but valid question. My school of thought is a little different though I'm a programmer myself. In the IT field, we have many positions ranging from devs to BA's to PM's to QA's. Each role has a set of tasks to perform in order to deliver the product. And each role gets paid by virtue of its importance. Yes, they all have to go hand in hand. BA's role is important since they understand the specifics of the domain and help the customer to come out with detailed requirements. Programmers convert these requirement into reality. Managers look at the bigger picture and ensure that we are shielded from the day to day management related activities which are important from the higher management perspective. QA's ofcourse ensure that a quality product reaches the customer.

In all this, you can see that we cannot debate who is more important or who does more work. Its just roles that different people need to play.

Also remember that as you grow in an organization, you'll slowly transition from a programmer to a lead dev and so on. This will make you almost equally paid or better paid than a manager. A Programmer is considered as an individual contributor where as a dev lead is managing a team of programmers.

Another hypothetical thought (apologize if my data is incorrect): Have we thought why an eye surgeon gets lesser paid than a say ..orthopedic surgeon? All are important parts of the body to us right?

But at the end of the day, we still do what we do coz we love it!! I love getting to work every day and churning out some whacky lines of code!


Not the answer you're looking for? Browse other questions tagged or ask your own question.