Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
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 '11 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. –  David Thornley May 5 '11 at 14:09
3  
If your company doesn't have a upgrade path for you. Get a new job at a new company. –  Jarrod Roberson May 5 '11 at 15:52
    
I agree with Jarrod Roberson. –  Dragos Toader Sep 16 '11 at 20:40

12 Answers 12

up vote 9 down vote accepted

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
Always train your replacement. If you don't have a replacement, you can't move up. –  Scott Wilson Sep 16 '11 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. –  Dragos Toader Sep 19 '11 at 16:50

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

share|improve this answer

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!

share|improve this answer
    
Excellent advice. Continuous self improvement is the Japanese philosophy of Kaizen –  Dragos Toader Sep 19 '11 at 16:43

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.

share|improve this answer
    
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. –  Dragos Toader Oct 4 '11 at 17:17

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.

share|improve this answer
    
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. –  Eric Wilson May 5 '11 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 '11 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. –  Berin Loritsch May 5 '11 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. –  Eric Wilson May 5 '11 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. –  Berin Loritsch May 5 '11 at 13:02

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.

share|improve this answer

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.

share|improve this answer
    
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. –  Dragos Toader Sep 19 '11 at 17:00

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

share|improve this answer
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 '11 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. –  Eric Wilson May 5 '11 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. –  perdian May 5 '11 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 '11 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. –  David Thornley May 5 '11 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.

share|improve this answer
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 '11 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 '11 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. –  Dragos Toader Oct 4 '11 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.