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.

How do you ask the potential employer in the interview if the project you will be working on is Support and Maintenance or new development?

Last time in the interview I asked this question and I was told its a support + new development but it turned out to be support + enhancements. I don't want to make the same mistake again and get into something like this. Most of the time people interviewing will tell its a support + new development but thats not what it turns out to be after accepting the job.

So what kind of questions will get the right answer if the project is really a new development or its just support and patching and hope it works kind of a project.

share|improve this question
1  
You expect someone to really tell you "hey, it's support and patching and hope it works kind of a project"??? –  littleadv Dec 13 '11 at 20:44
    
will that not be the right thing to do ethically? Also i know nobody will tell this directly but by asking some kind of questions, it will be easy to figure out. I am looking for those questions that i can ask the employer and get an idea of what kind of project it is. –  Asdfg Dec 13 '11 at 20:46
11  
@Chad : I dont know how did you decide that if a person asks what kind of project he is going to work on then he is not a team player. May be you are one of those interviewers who wants to hire people who says "yes sir" no matter what is being asked and spend all their time in fixing crappy code that u left behind in your previous project. –  Asdfg Dec 13 '11 at 23:14
3  
As far as I can tell, the questioner did not indicate that he wants to do new development work exclusively, and he did accept a job that he thought was "support + new development". Perhaps he just wants to strengthen his skills in the early phases of the software development process and doesn't appreciate employers misleading him. There's nothing wrong with that at all. –  Alexei Dec 14 '11 at 3:13
1  
@littleadv - in my company they decided to create permanent positions for support engineers and in summary job description says pretty much what you quoted. Personally, I never expected to get anyone half decent interested in such job, but we actually found few guys who are very good at what they do and perfectly happy doing support 100% of the time. For them, they get to get out of engineering department, maybe even do some travel and they all comment how they don't have the constant pressures of release cycles to worry about. Not for me but there are people like that. –  DXM Dec 14 '11 at 5:40

9 Answers 9

up vote 11 down vote accepted

Ask a few questions:

Can you talk me through a typical day in this role?

As a percentage, how much of my time will be spent on support?

Can you talk me through a couple of the projects you had in mind.

(and similar)

That should hopefully give you a feel for the position. There isn't really much defense against lies though I'm afraid.

I'm sorry this happened to you, unfortunately mis-selling occasionally seems to happen sometimes in this sector. Most employers have more integrity than that though.

share|improve this answer
1  
+1 for asking for a ratio. That not only gives you something measurable, but also keeps you from looking like you won't do any maintenance, which is often a large part of the job. Just bear in mind that you'll want to narrow the scope a bit if you classify enhancements to existing projects as maintenance. –  Sean Dec 13 '11 at 21:45
    
Good questions. Definitely helpful. –  Asdfg Dec 13 '11 at 23:17

To find out, I'd rather ask something like "how old is the codebase I am supposed to work with".

Thing is, whenever there's support (=> application is in real use), it becomes unsafe to rely on wording like "enhancements" and "new development" anymore.

  • I've seen cases when total clean room rewrite was sold as an enhancement of an existing system; I also have seen cases when minor modifications of existing code were tagged as new features. When there are real users paying real money for an application, things tend to be labeled based on politics more than on pure technical meaning.
share|improve this answer

Look for the product on the web. If you find it, it's maintenance, if you don't, look for the company. If you find it, it's maintenance, if not, ask about the business model of the company (i.e. how are you going to pay my wages). If they can convince you they have enough cashflow to pay you for more than a month, it's maintenance. If the are paying you from vulture capital, the bosses mortgage, some kind of inter-company transfer, it might be new stuff.

Most companies don't recruit staff to do new stuff, in fact, when they do, the guys doing the maintenance usually leave, so guess who gets to do the maintenance, usually the last guy on.

Careful at interviews. If you are not prepared to do maintenance, you won't get a job.

share|improve this answer

One of the popular agile books put it this way, when you write new code, it stays new for about 10 minutes. After that, any changes are code maintenance.

I'm not sure what you are looking for, but unless you find a) a startup who is still working on version 1.0 of their product or b) a software house that does custom software for individual customers and move on, you will find that most companies are in what you call "maintenance/enhancement mode".

I joined my company when we were on version 2 of our product and currently we are about to release version 7. But there was plenty of new development work which under your classification would be considered "an enhancement" that you want to avoid.

I think what you actually want to focus on is not whether or not maintenance/enhancements happen but whether or not the company has long-term goals for a product. There are certain products that once they reach maturity level, all new development stops and there's no more major releases. In these cases, an engineer might get hired strictly to fix existing bugs, deal with tech support and possibly provide minor enhancements here and there. In this case, I would agree with you that this is the type of work I'd like to avoid.

So you could take a look at their products, ask which ones you would be working on and then ask (better lead engineers than managers) on what the long-term, maybe 1-3 years, vision is for the product. If they stumble and not give you a vision, then it's a full time support position, but if the engineer gets excited and starts talking about all the cool "enhancements" that they want to add, I'd guess there would plenty of new development for you.

share|improve this answer

If you want to do new development all the time, you're out of look seeking an employer where that will be the job description.

The only way you'll ensure the majority of what you do is if you take on contract/freelance work only. And then refuse to support your own work (which will cause you to run out of paying jobs quickly)

Maintenance is part of the job. We all prefer doing new development. Who doesn't. But if you write things properly, maintenance becomes much simpler for the next guy.

And honestly, if you don't do maintenance, you'll probably never evolve your programming abilities. By seeing and having to fix "what not to do" you learn not to make those mistakes. If all you ever do is write "new" code, and leave the mess for others, your skills, no matter how good now, will stagnate.

Note: That if I'm hiring and you ask that question with the intent of only working on new development, I'd never hire you. Even if the job WAS going to be mainly new development. That question tells me you aren't a team player, and have the wrong attitude to do the job.

share|improve this answer
1  
+1 I only take on short term contracts, generally they are new developments. Almost always though a couple of weeks after being on site I end up being pulled into support work for other systems, just the way it is, companies will make use of the extra resource. Contracting may get you a better percentage of new dev work but it will never be just new dev. As Chad say, without doing maintenance you won't improve, I've learn more from support than I have new dev. –  G3D Dec 14 '11 at 11:28

I'd ask straight away.

However, realize that wanting only to work on new code makes you a less desirable hire- even if the gig is for writing new code (a lot of programming work is maintaining someone else's code- it's highly likely that some day your company will need someone to do that, and they'll prefer to have someone who has no qualms about it).

So, if you are concerned about lying, I'd make sure that I don't give the impression that I think maintenance is shit (as a matter of fact, I do- everyone does). You could ask about the architecture they want to use, the tools they have decided to use, if it's a firm choice (not as in "huh, I'm more clever than you and just by talking to you I know your choice is wrong and I know better"- rather as "huh, I think that's a good idea and I'd prefer if the project continued this way); the answers to things like that might give you a better idea of how much code has been written.

In any case, if you find you've been plainly lied to, you might be able to resign gracefully (and it might be a good idea- working for liars doesn't sound great... although to some extent, everybody lies).

share|improve this answer

Ask them some examples of the kind of "new development" they do.

And be open to "enhancements", as that is pretty broad. Something may technically be an "enhancement" to an existing product, but still involve quite a bit of new development. Either way, you'll need to discuss examples with your potential employer to get an idea of what the job will entail.

share|improve this answer
    
this. just asking would be the best way, try to be fairly specific –  Ryathal Dec 13 '11 at 21:16
    
I understand the difference between Enhancements and support. The problem here is i have to add 1 textbox to the existing form. And you cant call it Enhancement. Its purely support and it becomes nightmare when you have to work with the code generated by "Code Generators" and poorly implemented MVP pattern. –  Asdfg Dec 14 '11 at 14:42

The answer is going to be a bit misleading at times.

All places have an existing code base and while they may have new things on the agenda, there will without a doubt be people doing bug fixes and enhancement requests.

Enhancements are "new" so it's not really bug fix. If you have a program and I want a new widget added, that's "new". It's going to require to go through the development cycle and get things going.

The odds of you entering the door and starting on something from Day 1 on a new product where they are just figuring out the requirements isn't going to always be in your favor

share|improve this answer

You ask them like you did before. You have little control over if people are going to lie to you.

Also it could be argued that enhancements is new development on an existing project, which isn't far fetched.

If you only want to do new development make it clear in the interview and only accept jobs where you are told you will only be doing new development.

share|improve this answer

Your Answer

 
discard

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

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