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?
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.
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:
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.
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.
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.
- Justify your value and present it to your boss before asking for a raise.
- What is the company's financial situation - are all raises frozen?
- Has anyone else received a raise assuming they deserve it as much as you do?
- How hard would it be to replace you?
- Are you able to find a comparable job & salary?
- 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!
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:
- Look at the market for your particular skill set.
- If there's a strong demand (due to a shortage of labor) change jobs.
- 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.