43

I’m a software developer. I wasn’t careful enough and fixed a couple of bugs in our system that nobody in the team could fix. And that was the beginning of the problem. Today I have to fix the most of toughest bugs while another team members are creating the cool new features with cool presentations and getting all credit for getting the job done. As far as I know from some data has leaked—I’m also the least paid team member. What can I do?

1

8 Answers 8

74

This answer isn't geared towards software development specifically, in fact it's a lesson I learned in the military from one of the most outstanding professionals I've ever met.

Whenever I enter a new arena and I want to stand out, I ask for the dirtiest, least desired, most hated/reviled job or position I can do that doesn't conflict directly with my goals. Then I kick ass at it. I don't just do it well, I do it as well as it can possibly be done given my skills and the tools available to me. The reasoning is that anyone can build something new or keep something going that already works well. If you take the worst of the worst and you do it in a stellar fashion, people will take notice.

As @VietnhiPhuvan mentioned, these "cool things" will be forgotten in a couple of months. Next year when they're adding features, refactoring or looking to upgrade what is already there, your code fixes will still be there. When there's a problem with the software that they can't figure out, they'll look to you. You can make a stellar career in software development as a direct result of your efforts in diagnostics and repair of existing software.

None of us really likes the grunt maintenance work. We all want to do something cool and new. Maintenance is a fact of life though, and if you're being put on it, you can look at it as the opportunity to knock it out of the park. Yes, you'll shoehorn yourself in for a bit, but you'll establish yourself as a dependable, capable and competent coder. Once you've fixed some really hard issues effectively you'll be able to lobby for cooler projects and pay increases.

That segues into my supplementary concept. No one is going to love you if you don't "love yourself". Your performance review is your chance to show just how awesome you are. If your company doesn't do performance reviews, then you need to do one for yourself. Keep track of everything you do. Keep track of the metrics that are involved.

Fixed "X" bug. Resulted in 95% reduction in null reference exceptions.
Fixed "Y" race condition. Resulted in 25% reduction in thread resource conflicts.

Keep it in a file and keep it in a hard copy folder as well. As emails come in from various team leads, managers, business reps, sales, whatever, copy/print these into your file. The guy I mentioned before referred to this file as the "I love me" file. Do everything you can to make this sucker grow fat. Once you have some substance to it, it's trivial to go to your supervisor/manager and make a case for a raise, different position, alternate tasks.

You are the only person who can lobby for better circumstances. Your supervisor or manager is the one who can seal the deal and make it happen. So take these tasks and kick ass at them. Don't worry about what other people are getting with respect to opportunities and projects. In time, you'll be in the forefront of consideration for these because of your demonstrated skill, product knowledge, and "quirks" knowledge.

If you get to that point, and the company does not consider you worth the extra money you feel you deserve, then you'll have an excellent resume built up with your "I love me" file. Those are exactly the kind of metric bullet points that hiring managers want to see in new hires. I promise you if your current company won't consider the value, there's another company who can.

10
  • 22
    +1 How do I really learn to code? By fixing, cleaning up and refactoring somebody else's code :) A curse be upon their banner :) Jun 13, 2014 at 18:27
  • 3
    I am glad that you manage to generate enthusiasm for this kind of work. As a professional, I will do what's needed and required - whether I like doing it or not is irrelevant because the priority is that it has to be done. And even if I dislike the task, I will complete it as effectively and as efficiently as if I liked it. Whenever I hear the words "passion" and "enthusiasm", I start to shudder. Because I am the one who gets to be called in to bring to a successful conclusion what those who have lost their passion and enthusiasm had started. Yeah, I am cynical even for an old hand :) Jun 13, 2014 at 18:35
  • 4
    @VietnhiPhuvan: I love new projects and will always have "passion" and "enthusiasm", but at the same time there's a reason all of my employers end up bringing me the crazy problems. Fixing bugs/problems keeps me valuable. Using that value to do new exciting things keeps me coming back for more. Jun 13, 2014 at 18:49
  • 1
    The key to doing the tough jobs is to leverage them into getting everyone to understand your importance. With that should come some reward instead of just more of the same.
    – user8365
    Jun 13, 2014 at 20:23
  • 5
    Right on, right on. Any n00b can hack new features, but it takes an engineer to maintain, refactor, and optimize the code hacked out by last year's n00bz. Do the best job you can. If they don't recognize your professionalism, someone else will.
    – O. Jones
    Jun 13, 2014 at 23:14
19

Fixing the tough bugs is one of the best things you can have a reputation for.

However, what you need to do is talk to your boss (not your coworkers) about how you can fix the things no one else can fix and that as a result you deserve a pay raise. In no way should you mention what other people get and in fact you don't know what they get unless you saw the actual payslips because people often lie when they mention their salaries. What other people get is irrelevent anyway.

Next talk to him about the work you would like to be doing in addition to the bug fixes.

But really you should get over this idea that it is somehow better to work on cool stuff. The real work isn't always or even often in the cool stuff, what you want is to be the person who contributes to the bottom line not the one who pursues only what is fun and cool. Now sometimes that is cool stuff but more often than not it is not. Right now as a superior troubleshooter, you are the more valuable asset, you just need to make your case to your boss. You are assuming you are doing scut work when you are not. You need to make your boss see that you can do what the others could not do and that makes you more valuable.

2
  • 2
    I'm not sure the OP is held up on doing cool work (fun programming) as much as the perception that their peers are way more valuable assets because their cool work (impressive to non-technical people stuff) is more visible.
    – Telastyn
    Jun 13, 2014 at 18:18
  • 8
    It seems the OP is fixing the tough bugs, that nobody else can fix, but there's no reward for it. What does the manager see when he fixes a bug that crashes the app and loses customers' data? He or she doesn't see a thing, because it doesn't crash anymore.
    – gnasher729
    Jun 13, 2014 at 20:27
9

In addition to the other answers, I just wanted to add that yes, it often does happen that the reward for good work is more work. Sometimes the guy that gets promoted is the guy with the big mouth that can't do useful work, so they just promote him to manager.

The dirty fact of life is that there is not always a direct positive correlation between how much work you do and how you get rewarded. I learned this lesson as a child when my parents would give me more housework than my older sister, because she was a rebel and would make a mess of things, whereas I was the well-behaved one that did everything perfectly without complaining. It is said that the reward for a job well done is more workload.

Pay attention, understand that there is a game going on and if you're just "doing your best" and hoping good things will fall in your lap, you're not even aware of the game, leave alone having a chance to win.

In your case, if you're really the only one that can handle the dirty bugs, why would they ever give you anything else to do? Ask yourself, do you like doing this? If yes, then fantastic, enjoy! If no, then stop doing it. Try to move toward other projects. If they don't give you anything else to do, it may be the case that you've already cast yourself as "that guy". Move to another company, and don't make the same mistakes again.

Now go ahead, everybody thumbs me down, you know you wanna!

3
  • 4
    I think what you say is realistic. This is what happens in the real workplace. The dirty fact of life is that there is not always a direct positive correlation between how much work you do and how you get rewarded. I want to say that there is usually no direct correlation ...
    – kaptan
    Jun 14, 2014 at 0:36
  • 2
  • I see multiple times some company culture where junior fix bugs, so fixing bugs = junior = people with less salary
    – Tom Sawyer
    Jun 15, 2017 at 18:49
5

What can I do?

First get clear in your own mind what the problem is and about the outcome you desire (not doing any bug fixing, sharing the load with others, getting more credit, getting a raise for doing this work, whatever).

Then talk to your boss about it.

Whenever you have a question about what has been assigned to you, talk with the one who could potentially change the assignment. I'm assuming that's your boss here.

3

Bear in mind that writing code is just getting ready to make money later. Fixing bugs and keeping your code and servers up and running day to day and supporting customers is the actual process of making money. Rest contented that you are saving your company!

It is important to only fix the bugs that everyone agrees impact on your customers and must be fixed. Since fixed bugs easily get forgotten quickly (as people don't like them) keep a record of all the bugs that you fix, plus an estimate the value of fixing them to your company, which is ammunition for your pay review.

Also try to get TDD, regression testing and unit-testing with good coverage to be an enforced part the development process. This will push the responsibility of making sure that cool things do not break other stuff or generate hard to find bugs.

1
  • I don't think the question is asking how should he save himself, what has "saving your company" got to do with saving oneself?
    – Pacerier
    May 28, 2015 at 10:01
1

What can I do?

Say no.

You don't have to do anything. Nobody is putting in the mind control devices, nobody is holding a gun to your head.

Don't be a dick about it. Most of the time, the people who get the crap work isn't because of any better reason than nobody else wants to do it, and certain people don't complain - so they get the work. Usually all you need to do is complain a little bit and you'll get a more equitable arrangement.

Beyond that, you hold a bit of leverage. If you don't deal with the bugs, there's nothing they can really do but do the bugs themselves (which is what you want) or fire you. Nobody likes firing people. It makes managers look bad, and is a whole lot of paperwork. It costs the company tons of money too.

But it (probably) won't get to that point. Giving you credit for the bugfixes or some tasks in the cool new stuff is a small thing compared to doing the nasty work themselves. People are lazy. People largely avoid confrontation. Exploit that.

5
  • 2
    @JoeStrazzere - absolutely. But a simple "Can't Bob do that? I did the last 4 bugs..." is way better than a "yes, sir" and then building resentfulness until you quit.
    – Telastyn
    Jun 13, 2014 at 18:15
  • Yes it is the same thing. The fundamental concept that Telastyn is trying to convey is not the literal phrase "no", it is the idea that you do have personal freedom and you often have more power over what you can choose to do than you may think. Jun 14, 2014 at 0:33
  • There are many bad advices in this post. First, if it's assigned to you, you do have to do it. Second, there's a difference between complaining and bringing a matter to your supervisor. third, purposefully and premeditatively making your supervisor look bad just to change your workload is, at best, a terrible idea, and at worst, going to backfire in your face. Fourth, exploiting your co-workers just seems like it would foster exactly the kind of work environment quality people want to avoid. I truly wish I had the rep to downvote on this site, because this would get one for multiple reasons.
    – corsiKa
    Jun 14, 2014 at 2:48
  • @CaptainCodeman No, the message here is "If you don't like it, don't do it." and "If you don't do it, someone else has to. They're unlikely to call you out/fire you for it." This post literally tells you not to be a dick in the second paragraph, and the proceeds to describe actions directly to the contrary in the next paragraph.
    – corsiKa
    Jun 14, 2014 at 2:54
  • @corsiKa - I'm sorry if you read it that way. I thought it would be painfully obvious that you shouldn't just stomp your feet and pout like a child, but to negotiate. Maybe I've been using managerspeak for too long but "can't Bob do that?" translates pretty directly to "this is decidedly unfair, and I don't want to do it". The message is that too many people think that their boss is their master who must be obeyed without question.
    – Telastyn
    Jun 14, 2014 at 13:22
1

New features, fancy user interfaces are the mostly visible and let's say tangible. Especially for non technical people. It may compared to football or basketball. Some players do hard work in defence and have huge impact for a team success but usually the most remembered and paid are top scorers.

However, if you're constantly fixing the toughest bugs, it means that someone else didn't complete his work and you're assuring to function it properly. You should clearly present it. Keep track of bugs, they are hard to fix but easy to forget. Otherwise, show initiative to implement new features.

0

Actually, you are sitting in the catbird's seat. You just don't realize it. From now on, anytime someone asks you to fix a bug, require them to request it via email. That is Step 1, very basic. Then Step 2: You respond, "I'm very busy with other important stuff. How important is this? How many customers are affected/complaining? How much money is involved?" If they say it's only 1 customer out of 1000, then tell them it's not important enough for you to work on, since you are the company's top bug fixer. If they say it's really important -- and give numbers to justify their concern -- then you go to Step 3. Ask "Can't Mr. X or Ms. Y fix it?" Don't accept "they're too busy" as an excuse. That's not a reason; you're busy also. FORCE the requestor to admit, in writing, that Mr. X and Ms. Y and the requestor have all tried unsuccessfully to fix this important bug. (At the very least, you force them to admit that they can't be bothered to fix an important bug.) Only then do you agree to fix the bug, because now you have all the written info you need to prove your worth to the company.

2
  • 1
    This seems like a very aggressive answer. I'm not sure it would lead to the best solution. Jun 15, 2017 at 19:00
  • 1
    It's not aggressive; it's assertive. It is forcing his team leader and colleagues to put into writing how important he is to the team. If he doesn't do this, he will be crapped on forever. The higher-up bosses who determine pay scales rarely appreciate grunt work. They see flashy stuff and they go, "oooh, give that guy a raise." So anyone doing grunt work must document how important they are to the bottom line. If they can't -- if their grunt work is non-flashy and useless -- then they need to know that, and take action to get out of that, because their job is about to disappear.
    – dmm
    Jun 15, 2017 at 21:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .