I have been working as a maintenance programmer for a couple of years and am wondering if there is such a thing as a raise for maintenance programmer? I ask because responsibilities don't get wider, you're still doing almost the same things, maybe a little faster as time passes. If it's possible, then what would be the path to get it?

  • 1
    It depends what you're maintaining. I've worked in places where the "maintenance" programmers pretty much could set their own rate. Look at some old Cobol programmers, they're racking it in, because they've been around so long, they're the only ones who know how the application work.
    – RoboShop
    May 5, 2011 at 12:46
  • 8
    Have you asked for a raise? Talked about it with your manager? Asked your manager what it would take to get a raise, and what the career path is? Your value is almost certainly increasing as you get better at maintaining whatever system through familiarity, if nothing else. May 5, 2011 at 14:09
  • 4
    If your company doesn't have a upgrade path for you. Get a new job at a new company.
    – user7519
    May 5, 2011 at 15:52
  • I agree with Jarrod Roberson.
    – user36878
    Sep 16, 2011 at 20:40

12 Answers 12


It's difficult to answer this question because a lot depends on:

  • Corporate culture
  • Regional laws
  • Office politics

Essentially, you should be able to expect cost of living/inflation increases. Despite the name, they usually increase more slowly than inflation.

Assuming your company has merit increases or bonuses, which is what the three bullet points are about, increasing your odds of getting a slice of the merit pie will boil down to the following:

  • Knowing your client so you can anticipate their needs. In maintenance there is usually a bit of downtime between releases, and this is a good time to "play user" with the software you are maintaining. Try to solve the problems they need to solve. Think about how the software could support that better.
  • Adding value to the software you are maintaining. If your suggestions from the first bullet point get implemented, you get the credit. That means you are adding more value to the company than the guy next to you who just puts in their straight 40 hours a week.
  • Sucking up to the boss. Sadly, some companies are more politically charged than others. This is a point that only gets you so much, and one I personally can't do. If I agree with my boss, I'll support him/her. If I don't, I'll bite my tongue when we are with a client, but I'll express my concerns afterwards directly to him/her. Some people rely on this though. The first two bullet points have served me well so this one hasn't been needed. Some bosses want you to do this, others are quite offended if you do. Those are the types of bosses you want, because they are more concerned about the first two bullet points anyway.

Bottom line, if your company doesn't or can't do merit increases or spot bonuses for good work, it doesn't matter what you do at that company. However, when you do change jobs (an inevitability, not advice for the situation), the other company usually will have preference for people who add value and can get inside the head of their clients. That will influence the starting pay they will consider giving you.


I think it is reasonable to expect raises in line with inflation at least. It is also more than reasonable to expect raises reflecting your increased experience and knowledge of the products you are maintaining. However without changing job roles (and this is true for anyone I feel), be it to a new company, or with the same one, you are not going to get large raises.

  • I think that your comments are probably true for large companies. I have received a large raise without a change in role at a small (<100 emloyees) company. May 5, 2011 at 12:56
  • @FarmBoy if you don't mind me asking, why did you get that raise then? I tried to think of caveats to my answer but the only one I could think of was for graduates in the first couple of years, generally their salaries go up in larger chunks as they go from 0 to 3 years experience.
    – Kevin D
    May 5, 2011 at 12:59
  • 2
    I've received large raises at both small, medium, and large companies. It really depends on the management, and how much they are willing to go to bat for you. Some managers just don't stick their neck out for anyone. Others truly value good workers. May 5, 2011 at 13:00
  • I was working as a consultant, and it became evident that the client company was willing to pay me significantly more than my current salary. May 5, 2011 at 13:02
  • 2
    @Kevin D, large raises go with adding value. When a company realizes that you provide more value than you are getting paid, and they don't want you to leave, they will compensate you accordingly. Sometimes that's due to what the company invested in you, sometimes that's due to the fact that they didn't realize just how good you were in the interview. May 5, 2011 at 13:02

In any case, in any vocation, the way to pursue a raise is to pursue excellence in your craft, and to strive to provide the greatest value to your employer.

For the maintenance programmer this means that you strive to makes things better, whatever things are within your control. Even when no new functionality is required, you can make the code better, more readable, more maintainable.

Of course, your manager won't look at your code, but the goal is to reduce the cost of change, and reduce the defects introduced with changes.

Look at the worst part of the system, get tests that cover all of the desired behavior, and then refactor until it's understandable and easily modifiable.

For more details, check out the following:

Working Effectively with Legacy Code - Michael Feathers

Refactoring - Martin Fowler

Clean Code - Bob Martin

  • 7
    "In any case, in any vocation, the way to pursue a raise is to pursue excellence in your craft." This is aspirational rather than practically true. Most companies concentrate on paying as little as they possibly can.
    – temptar
    May 5, 2011 at 12:45
  • 2
    Sure, but if you are becoming more skilled, your market value will increase, and your company may need to pay you more just to keep you. May 5, 2011 at 12:49
  • 2
    @temptar: If the company isn't valuing the work I'm doing then it's the wrong company for me and I should have chosen another job in the first place. May 5, 2011 at 12:50
  • 3
    @temptar: companies that want to pay as little as possible will get as little skill as possible too. It's a race to the bottom. Avoid such companies if you have more lofty goals with your life. Otherwise prepare to be outsourced.
    – Macke
    May 5, 2011 at 13:31
  • 3
    The way to pursue a raise is to pursue excellence in your craft, and make sure your manager knows you're more valuable and want to get paid for it. I got the same bad advice through elementary school: don't toot your own horn, other people will recognize your ability and accomplishments anyway, that sort of thing. In the real world, if you want to get rewarded, you show why. Giving real reasons will be easier than making something up, and will make you feel much better about it. May 5, 2011 at 14:13

In a lot of companies, the only way is to leave and go somewhere else. This will either a) result in a higher salary elsewhere or b) a counter offer in recognition of your value.

  • 3
    Needless to say, this is a very dangerous strategy to use to try to get a raise out of your current employer. You have to be perfectly OK with leaving if you try this.
    – mwigdahl
    May 5, 2011 at 21:24
  • I would concede that. But I would also hope that prior to asking for a raise within the company, anyone would have considered their options in the event of a refusal and that typically involves considering leaving at that point too. If you want to play it safe, you want to play it safe, either which way.
    – temptar
    May 6, 2011 at 8:58
  • A counter offer in recognition of your value can be a ploy to get you to stay just long enough to train your replacement.
    – user36878
    Oct 4, 2011 at 17:14

Assuming that you are getting better at your job - finding problems more quickly, implementing fixes that don't cause additional problems, and generally making the application better then you have a good argument for a raise above and beyond "cost of living".

If you can point to any specific things you've done that will help. These could include (for example):

  • Fixing a bug that was causing a customer to threaten to leave.
  • Implemented a system that reduced installation errors.

Show where you've added value to the company.


Accepting a role at a company should never mean that you agree to never get a raise. Who on earth would ever accept a position like that but the least qualified or most needy? Certainly an employer would prefer to get maximum output from their employee and never provide any raise; the opposite is also true: the employee would like to get as much money as possible while giving as little time and energy as possible - this gives rise to economic terms such as equilibreum, etc.

In the end, if an employer is interested in keeping an employee, they will provide incentives to stay. Ask for the raise. If your employer does not feel that you deserve it, they will deny your request. If they don't value you enough, then you move on, and find some better use for your time.

  • Another reason technical stay with a company is that their job duties are so specific that no-one else is really looking for these very specific skills.
    – user36878
    Oct 4, 2011 at 17:17

The rule is the same for all jobs: you'll always get a bigger raise by moving to another company.

Why? In part, because you can keep turning down offers that are 2% over your current salary, or 4% over your current salary. In part, because the incentives are different for the two employers--one wants to pay the least that will keep you from leaving, the other who wants to pay you enough to make you switch.


I would say yes it is possible. You have to sell yourself to your employer and show them your value to the company.

Because you are maintaining their software, you have a knowledge of the codebase that someone new doesn't have. If something were to go wrong, you have the experience and expertise to fix the issue. You as you gain more experience, you get faster at fixing issues which will affect the company's bottom line.

This sort of knowledge and experience they can't just get from a new hire, it's something you've gained from working with the system and knowing the software.

You just need to sit down with your boss/manager and discuss the issue and sell yourself.

  • The above holds true if your boss/manager is sophisticated enough to understand that "programmers" of varying technical experiences and backgrounds are not interchangeable like "gears in a clockwork mechanism". Unfortunately, that level of sophistication is sorely lacking in management today. All the more reason to move into consulting. You sell yourself, you set your rate, you set your time.
    – user36878
    Sep 19, 2011 at 17:00

You're only going to get a raise depending on what is going on at your company and the surrounding job market. Maintenance contacts can be very profitable for a company or you may be working on a project the company intends to cancel.

  1. Justify your value and present it to your boss before asking for a raise.
  2. What is the company's financial situation - are all raises frozen?
  3. Has anyone else received a raise assuming they deserve it as much as you do?
  4. How hard would it be to replace you?
  5. Are you able to find a comparable job & salary?
  6. Does your company value what you do or are you just a replaceable gear.

An application will barely exceed in complexity with your ability to manage it.


Innocent question. In these days of competitiveness, if you do what is expected, you are at the mercy of your superiors. Think it is wrong. Think again. It really isn't bad. Your urge to 'whatever', be it a pay rise or better recognition will force you do something different constantly, thus bettering yourself continuously. It is this that changed my life for better and frankly I'm not satisfied with what I'm today. There are miles and miles to go, before I sleep :)

Heck, how can I be different? First thing, measure your current delivery metrics in terms of speed, volume and quality (that can be measured or experienced). See how better you can improve your delivery metrics. This alone can be the differentiator. Wish you good luck!

  • Excellent advice. Continuous self improvement is the Japanese philosophy of Kaizen
    – user36878
    Sep 19, 2011 at 16:43

Don't ask for a raise. Ask for more responsibility. The raise will follow.


Your rate is what you negotiate when you first interview for a job. Speaking from personal experience, raises have not netted more money in the same way that new jobs have.

You need to start thinking in terms of labor economics (supply and demand).

When you believe your labor (your education, experience, skills,
what you are able to do) is under-valued:

  1. Look at the market for your particular skill set.
  2. If there's a strong demand (due to a shortage of labor) change jobs.
  3. If there's weak demand, stay in your current job and learn other skill sets (with strong demand) on the side.

While you are trying to assess the labor market for your particular skill-set, you will observe that other skill-sets (experience with particular software packages, programming paradigms, etc) are "in demand". By "in demand", I mean that there are a lot of jobs posted for those skill sets with rates considerably higher than what you're getting.

This is called doing a labor market survey.

You need to find what the most "in demand" skill sets are. Make a spreadsheet with the skill sets you encounter on job boards (indeed.com, dice.com, monster.com)

Next to each skill set, list the count of jobs currently advertised (in your local area radius if you're not willing to move).

Go down the list and research each skill set. You may find that a lot of the skill sets that are "in demand" happen to require proprietary software that you have no access to (i.e. costs lots of money, you need to enroll in an expensive training course). Write down the investment required (time and money) for you to acquire each skill set in your skill-set "market survey" spreadsheet.

You may want to avoid skill sets requiring an unreasonable investment.

Find the best skill sets (most jobs, best rates, least investment on your part) and go about learning these on your own while keeping your current job.

Then apply for jobs and interview. You can schedule multiple interviews during vacation days. Be prepared to drive a lot, be prepared to be thoroughly grilled on the newly learned skill set and be prepared for rejection. Don't give up.

If you do get a new job after interviewing, you will have a good bargaining position with your current employer.

You can start thinking of your current employer as your "client #2" and your new employer as your "client #1"

Ask for a raise at your current job to match the hourly rate you negotiated for at the new job. Be polite but strong. If they nix the raise (the rule, not the exception) politely give 2 weeks' notice. You may get called in for an exit interview. Explain your position and let them know that you are happy to do maintenance work on the side/part-time, at your new hourly rate.

If they ask you back full time for more money than your new job, politely refuse their offer. More often than not, this is their ploy to get you to stay long enough to train your replacement.

Again, be polite but strong. Do not explode. Do not burn bridges. Client #2 may still need you and you can make some nice money forking for them part time or telecommuting for a while.

Keep repeating the above recipe until you feel that you have "topped out". You "top out" when you no longer have more money to gain from learning a new skill set.

Be prepared to work long hours and to negotiate a lot. Your clients (#2,#3,#4,#5,...) will have a lot of work for you to do.

P.S.: Never train your replacement.
The worst self-inflicted injury technical people make is training their replacement.

What it boils down to is that you need to apply market rules to your situation.

  • Always train your replacement. If you don't have a replacement, you can't move up. Sep 16, 2011 at 22:57
  • Training your replacement is really your judgement call based on how you see the future performance of your company. Suppose you train your replacement. Now there are two employees with the "same" skill set. That's redundant. If the company is growing and profits are up, redundancy means that the more experienced employee moves up the ladder to bigger and better things. If profits are shrinking and reducing overhead is the first priority, redundancy means that the more experienced (and better paid) employee is axed. You would have had a job had you not trained your replacement.
    – user36878
    Sep 19, 2011 at 16:50