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.

This question already has an answer here:

After I started working at a company, I found out that the job is to maintain a software product. Most of the work that I'm doing is finding and fixing bugs. It's not easy work. However, there is no new feature development. I am worrying about this, as it might mean I won't ever get the chance to focus on development.

What can I do to transition from a job that's maintenance-only to one where I'm creating and designing software?

share|improve this question

marked as duplicate by gnat, MichaelT, Kilian Foth, BЈовић, Yusubov Jun 5 '13 at 13:28

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Are you creating automated tests as part of your maintenance? That is a useful skill that you will have the opportunity to practice during maintenance. –  StuperUser Aug 17 '11 at 15:21
@StuperUser No. Just to fix bugs. –  Kim Aug 17 '11 at 15:22
Check my answer for more details. –  StuperUser Aug 17 '11 at 15:29

4 Answers 4

Your situation is far from unique. Most of the developer jobs are actually maintenance jobs, even though usually they include at least some new features too. If there are no feature requests for your product at all, maybe it is on the road to being abandoned... you should clarify this with your manager. It is important to know why there are no new features: is management unwilling to invest any more in the development of this product, or are the users completely out of new feature ideas? In the latter case, it is also possible that there are very few active users and/or they have grown so accustomed to the way the program currently works, that they can't even imagine any change in it. However, if management is not totally closing out new feature developments, and you have contact with the users, you might be able to catalyse them to request new features. Take any opportunities to discuss bug reports and possible solutions with them, ask their opinion about how best to handle specific error cases, and how this program could be made better in general. Eventually they may mention ideas out of which new features can sprout...

At any rate, discuss your concerns with your manager. If you are lucky, you will be understood and you can work out an expectable solution together with him/her. E.g. it may be possible for you to work part time on another, actively developed product.

If not, you basically have two choices: continue your current job and work on pet projects in your free time to keep up and improve your development skills, or start looking for a new job.

share|improve this answer
+1 for discussing your concerns with your manager. If your manager is a good one, he/she will likely try to get you involved in a project you really want to be in –  Casey Patton Aug 17 '11 at 17:20

Learning automated test techniques as part of your maintenance will be a useful skill that you can use during your career.

You can learn a unit testing framework for the technologies (client and server), a mocking framework, unit test techniques, integration test techniques; there is a lot to learn.

It can help your regression tests for maintenance work you're currently doing and keep you interested until you will able to take on functionality.

share|improve this answer
+1 This is indeed a very useful skill, and one doesn't even need to get management permission to do it - it can be simply implied in the bug fixing process. Moreover, once there is a good suite of unit tests, it enables refactoring... –  Péter Török Aug 17 '11 at 20:49

Ask your manager whether you will be implementing features in the software or whether you will strictly be maintaining the software. You basically want a description of your role and your responsibilities. If what you hear doesn't meet your liking, you can let your manager know at this time. If they aren't willing to accommodate you, you have no choice but to start looking for work elsewhere.

share|improve this answer
agree with Bernard but also exercise caution, your manager may tell you that there will be plans for enhancements in a few months etc just to keep you happy...when in reality fixing bugs with the current software is probably the only thing on their road map for the future. –  Dal Aug 18 '11 at 23:43
Well if you end up discovering that they lied to you "just to keep you happy", then you should definitely leave the company right away. No sense working for those making broken promises. –  Bernard Aug 19 '11 at 13:34

You need to check if there are feature development opportunities in your workplace. If not, then at some point, you will have to make a decision - do you acquire the maintenance skills or do you move on.

I'm not sure what to tell you to do. I'm not familiar with the set up in your location. For the most part, the likelihood is that your life will not be a support-free zone, unless you're working in some product development shop, and even though I imagine the options for developing features from zero will be limited.

What you do will depend on a decision which you have to make. Decide what you want to do and how you can get to do it. There is little else I can tell you in terms of what do you do

share|improve this answer

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