Why managers get paid more than programmers??

I've been managing a small team for the past 6 months now, when I was just a developer I always used to wonder why is that people who manage people get paid more than people that actually build the product and bring in the moolah. Ideally pay should be directly proportional to difficulty of task. If that's the case let's compare the relative efforts involved in programming vs. management. Since we developers understand programming very well, let us try and think of management as a programming activity where people are analogous to computers, getting a computer or group of computers to do what you want if similar to managing and getting work done from a person or a group of people. The dominant language style is different in both worlds, computer languages are dominated by imperative languages which require explicit instructions on how to do a particular task, whereas people programming is dominated by declarative(SQL like) languages where only the intent of the task is provided and not the actual steps.

When you don't have experience with managing people it's hard to imagine why people programming is hard, after all humans are logical and intelligent entities(with some exceptions - http://www.darwinawards.com/) capable of making their own decisions and carrying out tasks based on just the expected outcome, sweet!! this is Object-Oriented utopia. Compared to computers which need to be told in very explicit terms what to do programming people should be a walk in the park.

Once you start managing people you realize that things are not so rosy, to put this in perspective, lets imagine that we were to design programs for a new set of computers that had human like qualities, here are some issues off the top of my head that you would face in programming this new breed of computers

- You could never predict the output for any given input, the output would be different on each machine and it would be a function of
    1. Past programs -  knowledge, experience, culture, ethics, attitude etc.
    2. Physical conditions - physical health, fatigue etc.
    3. Mental conditions - stress, family issues, inter-personal issues

- Efficiency would vary each day depending on mental and physical conditions

- While debugging, the computer would give you incorrect values for watch variables, so that you don't think that it's the computer's fault.

- Not upgrading or paying enough attention to your computer could cause it to become grumpy and not execute the instructions properly

- Having sleeker and more powerful computers around could reduce the efficiency

- It would delibrately try to make other computers execute instructions improperly so as to get more upgrades

- The computers would not startup on some days

- A program that works on one computer or set of computers would always need some tweaking to make it work on a different set of computers

- Sometimes the computer would want to become a programmer himself and do underhanded stuff to make sure that the program does not work properly
 
I am sure there are many more issues you would face in programming this new system but I think the above set gets the point acorss. As you can see it's making computers do what you want that is a walk in the park compared to people programming. To program a regular computer you can learn a programming language, or pick up a book on how to use some tool and 99.99% of the time the computer will exactly behave as it says in the book.

Is this exact behaviour possible with humans?, for sure there are a lot of books on how to deal with people, but they deal in probabilities, the only way you can predict the output for any given input with a reasonable level of certainty is experience. So like quantum mechanics, even with a well written program there is always a positive probability of unexpected outcome, when this is multiplied with the number of persons being programmed the uncertainty becomes unmanageable. This is usually combated by adding a layer of abstraction(middle managers, supervisors etc.) to reduce the uncertainty at higher levels. Thus programming people is tough infact tougher than any other engineering discipline that has predictable outcomes for any event.

Trying to get work done with a group of people is a herculean task compared to programming the regular computers, because even though we have the tough job of telling the computers what needs to be done correctly, management has the tougher job of understanding each individual person and coming up with a language to effectively program that person. Not only that, the program needs to change based on the presence or absence of other people. The effectiveness of a people programmer is directly proportional to the langauge used for programming each individual. This is also the reason why most good managers have years of experience, because experience based on an extensive dataset of inputs and outputs is required to effectively program people.

And that is why my dear fellow programmers, our managers are paid much more than us weenies trying to program these submissive and static regular computers. :)

23 Comments

  • Ok, I'll bite ;-)



    One of the laws of nature is that things change. Like all people, managers experience this law every day. You argue that managers should be paid more because they have to cope with a much bigger amount of uncertainty/change. Because you are a manager, and might you want to rationalize your recent paycheck increase I understand you are looking for supporting arguments. I, however, do not agree with this argument, because uncertainty is also a very big friend of the programmer. Complete methodologies like Extreme Programming are created to cope with constant changes in requirements. A 3rd party module doesn't fit the bill, but you forced from above to use it. Computers crash. Someone borked a server you use for development, etc.



    A big part of the rational behind the amount on the paycheck of the manager and the programmer is about how smart/good they are in solving their set of issues. Experience helps, so does intelligence. The other part is responsability. Yes, some managers have big responsabilities, but also do software architects. Do you know how costly a bad decision of a software architect can be? You need people you trust to handle big responsibilities. If you develiver every time, that trust should be reflected by your paycheck.



    Don't let arrogance color your arguments. If you do you work good and get paid accordingly, great for you! Management may feel more difficult for you than programming, please don't assume that true for everybody.



    Regards,



    Ward Bekker













  • > As you can see it's making computers do

    > what you want that is a walk in the park

    > compared to people programming.



    A few years ago I read somewhere how difficult it was for programmers to interact with people after spending 8 hrs with a computer that does exactly what you ask it to and does not question the request.



    I am not sure how true it is (and I cannot remember the source) but there are days where I can relate to that article :)

  • Actually it has been my experience, with one notable exception, that managers get paid less than developers.



    I am sure you could make a case either way, but my own 20 odd years of experience doing both has taught me that managing people and projects, while difficult and potentially complex, is no where near the complexity of most development.



    Another issue is that comes to mind is risk. If a manager makes a bad decision a project may come in late, if a programmer makes a bad decision it could cost the company dearly.



    Again, I know you could give me examples of the opposite case. But remember we are not talking high end management but we are talking I assume senior developers.



    Anyway, thats my two cents, for what it's worth.



    Cheers,



    Bob

  • I completely disagree. Managers should get paid less; in fact, a lot less. In my 15 years of professional experience as Software Architect and Senior Developer, there is nothing more uncertain than the meeting the business requirements of the users or the expectations of users in a commercial shrink-warp software. I’ve managed some developers before and it is a lot less complicated then delivering an overall solution that meets or exceeds the users’ expectations. Granted, it also depends on being able to utilize highly-skilled and experienced developers. I’m talking about Senior Developers or Guru Developers, not College grads or offshore-outsourced developers. But, a highly-skilled AND experienced developer should be paid a lot more than a manager because at the end of the day, the developer will be the one who delivers the product and not the manager. The developer is the one who actually “creates” and not the manager. You can’t have management and no developers (even it is outsourced to a cheap, low-quality offshore site). But, you can (not that you should) have developers without management. I could go into a lore more detail; but, that’s for another time...

  • well, you just walked to the dark side and kissed their asses already.

  • I disagree.



    Managers earn more due to: 1. Citizenship 2. Relationship to the stakeholders.



    As we all know, many coders are H1-B indentured servant-types. (yes, there are H1-B PM's, but very few). The h1-B program has driven rates, thereby wages, down considerably. (argue-away, I'm in my 23rd year in this business and my rate is at my 1990 rate).



    2. Managers are exposed to the people who write, or a close to those who write, the checks. Schmoozing = Money.



    I own a small, 30-person consulting shop. I am a developer, manager and owner. I find the project management component of the business far, far less taxing than the actual development. I also pay my developers and managers the same; architects more than all others.

  • Managers get paid more simply because there are less people willing and able to perform this role. It's supply and demand. Many, many good programmers that I know would make horrible managers, and many more have zero desire to play in this role. It's much easier to worry about yourself than everyone else.

  • No, that's simplistic. What actually matters is Supply and Demand, that is:



    - How easy it is to get management at a given level vs programmers at a given level



    Depending on what kind of project you're working on, you may want to alter the spend ratio between development and management based on where the risks are, but you can't buck the market rate (well, you can of course, and people do all the time, normally with sub-optimal consiquences)



    Additionally, if your project is sufficiently large/technical that your management needs to have a lot of technical experience then you might find yourself having to employ / promote an (ex)programmer as the manager. At this point the supply/demand economics *demand* that the manager is paid more - or they'd (presumably) go back to coding.



    How much 'harder' managment is than development doesn't matter - all that matters is the availability of people to do the task. This is affected by 'hardness' (less people can do it), but also by other factors (like whether colleges are pooring out middle managers rather than developers, and skills-transferability etc...)

  • It's interesting that managers get paid more than developers. How come it doesn't work that way in sports? Why doesn't the coach of a sports team make more than the players?

  • If it is management of people itself that is more demanding then shouldn't the salary be the same for someone managing people in another field? For example should the individual managing six developers earn the same money as a foreman managing six builders?

  • How many of us programmers would respond well to a manager attempting to direct us in our work environment knowing that said manager was earning for example, £10k less than we were. Logical or not salaries are often based on seniority of title rather than seniority of intellect.



    The company I work for uses ex programmers as development managers and it works very well. There is a salary uplift because the managers have to deal with staff higher up in the chain of command and they carry personal responsibility for the success / failure of the project they work on. The basic premise is that if you haven't managed your team well enough to deliver when agreed then you are in the wrong position.

  • well i want ot keep it simple,

    its all abt ResponsibilitieS, a manager has much more higher responsibility than a programmer, he has his neck on the entire project and not a part of the project like a module or so. he has to manage the project as well as the people, and see to that programmers do their job properly and in time. he is responsible to deliver for the project and not the programmer. But he has to make sure tht the programmer does his part properly.

    he has to make critical decisions, not like programmers who's decisions are often guided by senior ppl (critical ones that is).



    bottom line

    With great Pays, comes greater Responsibilities. (or the other way round)



    (ok some part of it was from Spiderman movie.)



    Regards,

    ASD.



  • well i want ot keep it simple,

    its all abt ResponsibilitieS, a manager has much more higher responsibility than a programmer, he has his neck on the entire project and not a part of the project like a module or so. he has to manage the project as well as the people, and see to that programmers do their job properly and in time. he is responsible to deliver for the project and not the programmer. But he has to make sure tht the programmer does his part properly. he has to make critical decisions, not like programmers who's decisions are often guided by senior ppl (critical ones that is).



    bottom line

    With great Pays, comes greater Responsibilities. (or the other way round)



    (ok some part of it was from Spiderman movie.)



    Regards,

    ASD.



  • I believe managers should be paid for what they are worth, not simply because they are filling a seat with an associated title.



    In my days since the late 80's I've seen managers who didn't have a clue about anything as well as managers who were good at managing resources but lacked the technical experience to properly relate to the tasks their teams needed to perform. A lot of managers are often not worth as much as the developers they are required to "lead".



    However, there are also managers who come from a technical background, have been developers for a very long time, keep their technical expertise at a current level and happen to have the additional skills that allows them the capacity to efficiently lead a team of developers. Someone like myself, who has been doing C/C++ since the mid-80s and has additional skills beyond solving the technical tasks. Why should we be paid less than a developer if our experience and effort goes beyond that of other managers in similar or identical roles that do not have the same background?



    In other words, managers should not be paid more than developers just because of the job-req but because of what they bring to the table and the team.

  • I have read all entries and some of you make very good points. I am PMP certified (which really does mean something unlike CNA and other less rigourous certifications) and would like to make one thing clear.



    If you are a developer and are discontent with your rate, please take on a manager role and the accountability that goes with it to earn bigger bucks. You will most likely revert to full-time programming because you won't last very long in the political arena.



    I hear the same argument from full time Federal employees (FTEs)stating that contractors make far too much money...



    Yet, here I sit waiting for my contract to be signed after 3 weeks of outage in a single income family. They are literally holding me hostage and don't get me started on sick leave, stress leave, pension, holidays, bereavement, child care leave, training, short/long term disability, hospital, dental, travel expenses, blah blah blah

  • Hmm.. Interesting article. My thoughts.



    Managers should be payed more than programmers. I disagree.



    Reasons:

    Most of the managers neither manage people not manage projects. When I say most I mean 80%. In most companies today, managers are people with 5-12 years of programming experience . Out of these, probably the early managers do exhibit their managerial skills. But the later managers, i.e. those with 8-12 years of pre-management experience are managers simply because the company needed to retain them.



    Programmerrs should be payed more than Managers. I disagree.



    Reasons:

    - In most companies programmers do not interact with the client for whatever reasons.

    - A programmer is not concerned of retaining his team after the annual appraisals.

    - A programmer is not concerned with implementing initiatives like KM, best practices within the team. He may do it for himself though.

    - A programmer is not concerned with maintaining relationship with the clients, to get more work.

    - A programmer does not have monetory budget worries.



    And last of all but not the least, a programmer does not have to make unrealistic commitments to his client ;)



    This does throw up a few open questions:-

    1. Is there a need to change the way people are promoted as managers?

    2. Should managers be MBA's with only knowledge to manager?

    3. Should RA, Estimation be best left to Architects/Programmers?

    4. Should mangers come in only when the project actually starts?



    Think aloud.



    Cheers!

  • OOPS...u kicked a whole bread of perceived intellect under the belt....It pains, really.



    One R (Reasons) is not enough to understand why, but RRR (Responsibilities/Risk/Resurance) should be the way to go.



    Though managers do not work as much as the programmers do, they do carry the RRR for a community (a bunch/group/mob) of developors.



    In complex project environment, the managers do need to understand a veriety of complex technologies and make a decision as to what to choose and why ? Programmers simply write to accomplish the tasks assigned.



    Anyway, the truth is "One who can create/cope-up higher pain and stress in one's ass, gets paid more".

  • It's pretty simple. It comes down to supply and demand. Programmers these days are a dime a dozen compared to the period in time when we were paid better. Once you have a field that pays well you'll see university enrollment for that field skyrocket, which is what happened to computer science. People that have the skills along with the software knowledge necessary for software development are short in supply.



    Sports athletes are higher in demand but shorter in supply than coaches. The star players are what draw people to the games, not the coaches. Programmers don't bring buyers because the end users don't know about us.

  • Even though most of the managers I have had are completely clueless, there are a few that actually are good and deserve the pay. The part that is hard to understand is why a project manager gets paid more than a senior developer. They capture requirements and just monitor the progress of the project. Not the outcome. A good development lead / project lead can do just the same and has a direct impact on the outcome. I hope corporations will see that senior developers do a lot better job of gathering requirements and driving a project than project managers. We still need portfolio managers to help with project priorities, but that is about all.

  • For the person who said developers are a dime a dozen. Try finding a senior developer that can handle a half a million dollar project. I spent weeks interviewing and only found one who might be able to do the job. Now try finding a PM. It took less than a week to find several.

  • A Manager? Oh sure learn a couple of programs and call you self a manager. Crystal reports no problem, but learn a programming language and "wow" that's a different story.

  • If you find managing people more difficult than managing computers it demonstrates nothing other than your relative ability at managing people vs managing computers to extrapolate it further is a misreading of the system log.

  • I must also disagree with the argument that managers should get paid more!

    How long does it take and what concentration of learning does one require to be a decent employable Programmer/Software Engineer? - Much longer than any manager!

    I know people who program for up to 16 hours a day sometimes, practising there skills and trying to make there application as manageable and extensible they can.

    Do Managers practice/research there so called "Managing" skills routinely in there spare time?
    No they are on there golf courses...

    Managing is easy, there are simple steps to follow to ensure an employee does what you want when you want with minimal fuss, rinse and repeat and you have a manager...

Comments have been disabled for this content.