89

Some context

I'm currently working in a large IT company for over three years. I have worked on five projects and have a new one currently.

Problem

Two of my past projects are finished on paper (one of them about two years ago), but the business keeps nagging me weekly to add or change stuff. These get all logged as incidents and my manager just asks me to go with it. Let’s say I put about two days work in them as of now. I'm honestly tired of it and don't want to keep working on them. I want to learn new stuff and keep past projects/tools behind me.

I know these will always drop in front of me as long as I work here, since I was the only developer on both applications and no one will spend time on it as long as I'm there. (There is documentation of all this.)

Question

Would I leave a bad impression if I leave my job for this reason? Could it give future employers the idea that I'm not willing to fix my own stuff or something like that? Would my current employer see it as running away from my "problems" and give a bad reference to my next employer?

  • 9
    Would my current employer [...] give a bad reference [...] Only your employer knows what your employer thinks, but I don't see why they would think that, unless you specifically tell them that's why you left. And even then, not really much of a reason for a negative reference. What is your locale? – rath Dec 12 '18 at 12:07
  • 7
    @JoeStrazzere No, definitely not. You don't have to tell them why you left, and in fact you shouldn't... – Apologize and reinstate Monica Dec 12 '18 at 15:59
  • 5
    What percentage of your time would you say is consumed with "old work" versus "new work"? – corsiKa Dec 12 '18 at 18:05
  • a) I don't really know what "they are finished on paper (years ago), but they keep nagging me weekly to add or change stuff". Does that mean the spec/ proj plan/ architecture were finished, code is buggy, or they're just PowerPoint fodder? b) Are you architect? software engr? scrum master? code reviewer? Do they have any decent project and productivity tracking? c) Is a reasonable accommodation to say to your management "I am only available for work/meetings/etc. on old projects on (say) Tuesday and Wed. Do not contact me on Mon/Thu/Fri, put it on the task board/buglist until next wk"? – smci Dec 12 '18 at 22:42
  • Thanks for this question. I believe editing your answer to help define what @smci is asking about (and perhaps even more context than that) is the key to determining whether this is your company's issue or your own dislike of the software industry. – zr00 Dec 13 '18 at 20:27

12 Answers 12

191

It depends on how you answer the question "Why are you leaving your current job?".

If you state it as you have in your question, it might not give a great impression. However, if you boil it down a little more, you're really leaving because you want to take on new challenges and stretch yourself & your skills in a new environment. This is actually a good reason to move.

A good overall answer would be something like "I really like my current company, but I feel to challenge myself, develop new skills and reach my potential as a developer I'd like a new challenge".

  • 59
    I understand that moving jobs somewhat frequently is required in IT/programming just to get reasonable raises too. – user53651 Dec 12 '18 at 15:25
  • 11
    @Steve Definitely true, though that is not necessarily the reason you want to give to a new employer when asked this question – Kevin Wells Dec 12 '18 at 18:10
  • 17
    No, this is just spin. It is being deliberately misleading (practically lying) if his overwhelming reason is that he doesn't want to maintain his work. After all its possible to develop new skills, stretch yourself AND find new challenges doing maintenance work. He should be authentic and ideally find a way to address the issue of why he wants to run away from a key part of the software development life cycle. You can't be a top class software engineer and just throw paint at the wall and leave your masterpiece for the next guy. – Brad Thomas Dec 12 '18 at 22:18
  • 21
    @BradThomas There's a difference between "not wanting to maintain his work", and "not wanting to continue to develop a project he is no longer assigned to". New features should be a new Project. Bug fixes are different, but that's why a properly defined Service Schedule for support should have been drawn up as part of the Project - is there a team that's supposed to be doing that instead? – Chronocidal Dec 13 '18 at 0:17
  • 3
    I agree with @Chronocidal, based on my understanding of how Projects can be run within a company. However, this all depends on the asker's company's definition of "Project" and how that is differentiated from maintenance. It may well be that this is the company's culture of making the last person who touched it THE EXPERT; it may also be that those product owners lack boundaries. – zr00 Dec 13 '18 at 20:21
101

Talk to your team lead/manager about this. State you keep getting these tickets for your old project and you're concerned that no one else is being assigned to them.

If the response is that "it's your project, you're the best person to deal with these", then point out that you can't be the single point of knowledge.

What happens if I go under a bus tomorrow?

In a decent team of developers, there should be the ability to share knowledge and work on each others code/projects as and when the need arises. Sure, if there's something complicated/urgent, then you're the first port of call. For the more mundane tickets, someone else should be able to pick this up.

You need to deal with this situation (or at least try) before moving on - you might well be faced with the same situation at a later date. I wouldn't use this as the only motive for moving on if you're otherwise happy with the work.

  • 63
    Key words: Bus Factor. – Matthieu M. Dec 12 '18 at 14:26
  • 8
    @Fractional Less morbid, but also falls short of the mark - if you won the lottery you could still take two weeks to train up a replacement before you left. – Steve-O Dec 12 '18 at 14:35
  • 19
    @Fractional "Winning the lottery" boiled down means "my financial status improves to where I don't want or need this job" which could also be fulfilled by a better job offer, and the OP may not want to give that suggestion. "Hit by a bus" boiled down means "incapable of continuing this job due to unwanted circumstances outside of my control". Looks much better I think. – Philbo Dec 12 '18 at 14:59
  • 25
    "Bus factor" is a pretty common enough analogy for "I might not be here when you need the unique knowledge that's in my head the most". That's why I used this example. – user44108 Dec 12 '18 at 15:02
  • 6
    I disagree with this answer. They can have a contingency plan for when you're gone, but as long as you're there it makes sense to take advantage of your expertise. – Barmar Dec 12 '18 at 16:50
78

would I leave a bad Impression if I leave my job for this reason.

There is absolutely no reason to give this as your reason for leaving. Find another job, resign, say goodbye without pointing fingers at anything, it's just a career move.

  • 28
    This. You only make it an issue if you make this the focal point of your reasons to leave... – Leon Dec 12 '18 at 12:54
  • 7
    More importantly, don't list THIS as the reason. You are leaving to "escape old technology"... you are leaving to "learn new technology". Don't leave because of a "bad" reason... leave because of a "good" one. – WernerCD Dec 13 '18 at 1:20
  • especially since when employers ask why you want / have left your old employer, they are looking for problems that may arise after hiring you. – RandomUs1r Dec 13 '18 at 21:01
25

First, you have to aknowledge that maintenance is if not the biggest, one of the biggest parts of the software development cycle, see this post for example. This means that in your company or anywhere else you should expect to be doing maintenance of completed projects. Second I think you should talk to your manager and ask if these tasks could be taken by someone else, but be prepared to hear a no, or no in the near future. If you can't take anymore it's time for job hunting.

  • 7
    And, perhaps the OP should learn from this and write more maintainable code for future projects? – Jon Custer Dec 12 '18 at 14:21
  • 5
    @JonCuster the OP doesn't mention any difficulty making these changes, just exasperation at being the sole maintainer (as far as the OP can tell), so while I'd expect them to learn more about what makes maintenance harder from maintaining their old projects, I doubt their code is worse than average. Boredom and maybe a bit of burnout seem to be bigger issues. – Morgen Dec 12 '18 at 15:45
  • 4
    Depends on what the changes are. If he's fixing bugs 2+ years after "completing" the project, not good. If he's having to change the way data is read due to a change in how a 3rd party provides the data, that is maintenance. If he's adding or changing how features work, that is scope creep and his manager should limit it or control it - perhaps by a new project for a new release that contains a larger collection of fixes. This would also be the OPs chance to bring other devs up to speed on his code base, so he won't be the single point in the future. – ivanivan Dec 12 '18 at 16:08
  • 4
    Totally agree with Jon Custer. If someone else isn't at least helping with that maintenance, it's likely the OP's code is not legible enough. At least it's worth it to consider the possibility, and to make efforts to improve that. Any time old code is touched, it should be improved, better commented, brought up to date etc. Otherwise quitting will be the only solution, and the problem will crop right up at the next job – user90842 Dec 12 '18 at 17:54
  • 1
    @ivanivan "Scope creep" is not getting paid to add new features in reasonable timelines after the initial release. "Scope creep" is when the client wants new or more complex features without extending the timeline or paying more. There's no reason to limit new work that can be managed without much trouble and that brings in revenue and job security. – jpmc26 Dec 13 '18 at 2:32
18

If this is your reason for leaving the job, you may find that you won't be satisfied with most jobs in the industry.

Software development projects are rarely completely "finished", there's almost always bugs to fix, new features to add, etc. NASA has some of the most stringent QA, yet they've had to send patches to space probes that are on their way to their destinations.

And often the best person to assist with that is the original developer. They could assign these tasks to someone else, but then they'll have a learning curve, while you could probably dash off the fixes relatively quickly. Maybe some large organizations have enough programmers that they can have completely separate groups for new development versus ongoing maintenance, but most can't split up these roles.

It's fine to want to work on new projects, but you should realize that as long as you work for the company your old code will probably always follow you. You can change companies, but the same thing will probably happen in the future. If a prospective new employer asks why you're changing jobs, you shouldn't tell them that this is the reason, because they may not want someone who will resist maintaining their code.

  • 13
    Re: "Software development projects are rarely completely "finished"". In general, the only projects that are ever completely finished are the failed projects. If you keep getting asked to work on old projects then assume you did something right, because somebody finds what you did useful enough to be willing to pay you even more to make it better. – Dunk Dec 13 '18 at 0:42
  • @Dunk But he's not actually being paid more, he's just getting his regular salary and being asked to do this in addition to whatever new project he's been assigned to. – Barmar Dec 13 '18 at 0:48
  • 1
    But there are companies that spread out the work over a team instead of always giving the work to the original developer. As motivation for writing good documentation, as a way of spreading knowledge, as a defense against employees becoming suddenly unavailable, and yes also to prevent boredom. – RemcoGerlich Dec 13 '18 at 15:51
  • 1
    @RemcoGerlich It really depends on the size of the organization, whether they have enough resources to distribute work like this. In my 4 decades in the industry I've never had the luxury of working for a company with such large teams. – Barmar Dec 13 '18 at 18:12
10

I think this is a very bad reason to leave your job. I get questions about older projects all the time, that's just like it is when you stay longer at one company. A lot of projects are never really finished. It is in the best interest of the company to have the same person deal with issues that worked on the project. If somebody else has to deal with an older project s/he has to invest much more time which costs the company money.

If you actually give this as a reason for leaving it might convey that you are not acting in the best interest in the company, and that you will probably leave the new company again for the same reason.

  • 9
    Disagree strongly with this. In the IT sector it is normal to change jobs every couple of years in order to learn new technologies and move up the pay scale faster. – user1666620 Dec 12 '18 at 11:36
  • 1
    His company SHOULD assure themself that the OP isn't the only one to know how the old projects work and how to fix them, because one day he won't be here anymore (for any reason). So that's actually very bad for the company to always only ask OP to fix things. And it's perfectly reasonable of OP to decide to leave his job because he doesn't like to work there anymore (for any reason; here it's because they keep giving him tasks he doesn't find interesting). – Echox Dec 12 '18 at 13:20
  • 8
    @user1666620 It may be normal to change jobs in IT, but if your stated reason for leaving is "I don't want to fix my old stuff, so I jumped ship." you may not show yourself in the best light for your new employer… – Odalrick Dec 12 '18 at 14:11
  • @Odalrick Why not? OP shouldn't tell the new employer this reason... so they'll never know. – Apologize and reinstate Monica Dec 12 '18 at 16:01
  • 1
    @only_pro The question is "Would it leave a bad impression…" so the obvious intention is to reveal the reason. If you keep it a secret it will leave no impression. – Odalrick Dec 13 '18 at 9:02
8

The majority of software work is maintenance and updating of existing applications and systems. Only rarely will you ever get to work on new green field projects.

However you have been in the same job for 3 years now, and 2 years is about average to stay in the same role/company. Just say you're looking for new challenges, to work with new or different technologies etc. If you stay in the same job, and unless you're working on some mission-critical niche software (here's looking at you, COBOL), then moving on to keep your skills up to date would be considered normal.

  • Yes, the answer to OP's question is "It would give a bad impression because you left your job because you didn't want to do your job". This is such a weird question! – C Bauer Dec 12 '18 at 15:07
  • @CBauer People leave their jobs all the time because they no longer want to do their job (and dealing with the things surrounding their job). That's not abnormal at all. – JeffC Dec 12 '18 at 19:12
  • 1
    Yeah, if OP stopped wanting to be a programmer. But the job is to build and maintain software. – C Bauer Dec 12 '18 at 19:23
  • 1
    @JeffC You're not talking about someone who decided he doesn't want to build bridges anymore; you're talking about someone saying "Working on this particular bridge is getting annoying; I need to find another bridge to work on [so that I can abandon it after another year]." – Luaan Dec 13 '18 at 14:19
2

Simply put, you are interested in leaving your present job, for a job with different role and responsibilities. That is valid. No need to dwell on two year old maintenance or continuous upgrades.

The issue is that you are looking for a different role. Think through the role(s) you are looking for, so that you are prepared to speak to them, and to increase your odds of landing the right role for you.

When you interview, emphasize what you like about your job. When I hire someone, I want to know what they like, what challenges them, and what they do well at. I don't want to hire someone who is sour on their last job.

0

A lot of answers here are talking about how important maintenance is in the development and lifecycle. This is pretty true but there are places where it is less important. It's certainly wrong to say that you should just quit because you don't enjoy maintaining legacy products. You aren't alone and there are business models that it can align well to.

Look for places that do contract or project type work for medium-to-large enterprises. These contracts will tend to have fairly fixed deadlines and a set budget of hours you'll be given to work on it. When you're done you'll move on to a new project and probably a different client. You'll still be expected to fix bugs but large updates will go through the whole project management lifecycle again so they don't happen as often.

They are more likely to want multiple people across projects to avoid situation like this. They tend to be more keenly aware of the bus factor for their projects because employee turnover can be a bit higher.

They also can be good at convincing the client to rip it out and build something new in 3-5 years as part of a tech refresh project. This is usually good for everyone since the contracting company makes more money. The client gets some shiny new systems to show off. The devs get to build something new instead of dig into old legacy code.

You'll still need to be able to write decently maintainable code and be able to quickly build the types of software they work with. The main things you'll need to be able to do are hit deadlines and build to requirements.

It isn't for everyone. Personally I sometimes wish I got more time to go back and maintain my old projects. But there is always too much new stuff to build. (It isn't the worst problem to have lol.)

0

You should not say you can't or won't do it. Saying that you can't or won't can make you look bad.

You should say "Schuuure.. I'd love to do it. My fee is XXXXXXX (maaany Xes)"

Then they have to be the ones saying no.

So don't quit. Instead say that if I am to do these things which are outside scope I want this more pay.

  • 1
    And when they tell you it's your job, your pay will not be increased, and if you don't like it you can find a different job, then what? – Phil Dec 16 '18 at 11:24
  • @phil if you feel are not suitably compensated for the job then that is an option – mathreadler Dec 16 '18 at 11:30
  • 1
    It's a silly stunt which could only possibly work if you, the employee, genuinely held the cards, and the employer actually recognized that, and even then only if the employer didn't cowardly hide behind salary bandings, performance reviews, and process in general. Try this, only if you're prepared to leave, and then only if you are prepared to pick up a reputation of a diva. – Phil Dec 16 '18 at 11:45
  • @Phil it appears to me as if the employee is indeed holding the cards, because he is the only one left from a previous project who seems to know how to do it. If I had to choose between getting a label as diva or pussy doormat screwover I know quite sure which of those two I would pick. – mathreadler Dec 16 '18 at 15:04
0

It's a red flag for future employers,
DON'T resign officially for this reason!

It's valid to seek new challenges but it's also everyday occurence to get unwanted assignments and a professional performs their duties regardless.

It's bad for the company to have only one person knowing about a project but it's also your "job guarantee" if you look at it that way.

Instead I suggest to inform management that you'd like to train someone else to ensure they have more than one person familiar with that project.
You can let them know that you'd prefer to work on different ones instead.
Keep in mind, it most likely will come over as unappreciative and you being a DIVA.

If you want to quit, follow other answers here and rephrase your reason.
They also won't take kindly to you leaving them hanging with that project.

0

It depends. The occasional question or query is considered normal but significantly more than that is a sign that things are not being handed over properly. Are you writing documentation of the projects you've done? Are they being read? Is there officially someone in your old position on the project?

If this is down to bad documentation, that is a bad one to use for leaving the company simply because the onus was on you to make the documentation. If the reason is more down to mismanagement of the old project, you should probably state that old projects were being handed over incorrectly, leaving you to deal with the aftermath.

Not the answer you're looking for? Browse other questions tagged or ask your own question.