Well, I am civil engineer by graduation but my liking towards software development has led me working in a software company. We have our software developed using MFC and plan to switch on .NET in say 6 months. When my hiring took place I was told that I would be trained for 4 months and would be assigned on a software solely as developer. I am paid pretty well but what worries me is that my code is not reviewed even once in 8 months and neither am I assigned to be worked on software. I am being told it will soon happen but only my bosses know when. I am worried because of 3 reasons,

  1. As a developer, I am not growing at all.
  2. As my code is not being reviewed I do not know where do I stand.
  3. Even if I would be assigned work, I would be working on technology that was developed in 1998, I am afraid with .NET so much in use MFC is going to be obsolete soon

Is leaving job a better option? but again there are very few possibilities as the extent of industry I am working in is very acute. I have no clue what would be a better thing to do as of now, but yes I am very keen on improving as a developer. The skill sets I have currently are few, what in your opinion can be done to make my situation better and improve as a developer?

  • 3
    If you quit what will you do as you said your skillsets are limited. Instead maybe a more constructive question for you would be what should you do to learn new skills in this situation. Commented Nov 20, 2012 at 15:11
  • Just because the original vendor abandoned it does not mean that others think it is obsolete. You would be surprised if you knew how long time code can live. Commented Jun 7, 2013 at 9:58
  • If you've got time to be a detractor, you've got time to refactor :) Commented Oct 10, 2014 at 12:56
  • From what you wrote, one might make an observation: little responsibility and oversight (as indicated by code reviews). Consider these circumstances, and try again to answer your own question of "what...can be done to...improve as a developer"?
    – user2973
    Commented Dec 22, 2014 at 8:38

4 Answers 4


Your worries are entirely reasonable. I would recommend you discuss these with your bosses first of all. After all, if anyone, they can address the issues.

I am being told it will soon happen but only my bosses know when.

Are you sure they actually know? They might be (almost) as uncertain as you. There can be many reasons for delaying projects or putting them on hold indefinitely, including corporate politics and unstable markets, to name just two.

As a developer, I am not growing at all.

It is not clear from your post whether you are still attending trainings, or just hanging around. In the first case, soak up as much as you can. In the latter case, use your free time to study whatever interests you - .NET sounds like a prime candidate, but feel free to discuss with your bosses what would be the most useful for the company (as well as yourself) -, do pet projects, etc. Ask your bosses / colleagues whether there is a library of professional books available, and/or is it possible to order such books for self study. Browse the net - there is an endless supply of tutorials and blogs on almost any programming topic. Network with colleagues to exchange thoughts, study together, invent pet projects to work on together... Make proactivity a habit - you shouldn't depend on anyone to ensure your professional development in the long run.

As my code is not being reviewed I do not know where do I stand.

If your bosses haven't addressed this, you may ask an experienced colleague whether (s)he could informally review your code. You may also post code snippets on our sister site Code Review. If you have concrete coding problems or questions, post them on StackOverflow. You may also learn a great deal from the answers and code samples posted there.

I am afraid with .NET so much in use MFC is going to be obsolete soon

No need to worry too much about that. On the one hand, even old technologies can have a huge existing code base which needs constant maintenance, giving work to many developers for decades yet. If your company has an MFC app which has been used for years and is still being maintained or even actively developed, should they decide to replace it today, it ought to take several years from now to fully retire it.

On the other hand, working in a real development project using any technology, you gain very important transferable skills - communication, design, debugging, business domain knowledge, experience with non-language-specific tools such as IDEs, source control, issue trackers, testing frameworks etc. etc. - which are not bound to a single specific language or framework but can be reused in the next project with little or no adaptation.

Is leaving job a better option?

You may start looking around for better opportunities if you want to, but IMHO only after giving a try to the above. Note that having a workplace with a good salary and ample time for self-study is a way better place to be than being unemployed while looking for a job.

  • +1 for pointing to the benefits. I have heard from others, and personally experienced that it is easier to find a job when I have one already. Commented Nov 20, 2012 at 21:20

Your situation is very familiar to me as I have found myself in something similar to this in the past.

When working in an extremely acute company that serves a very small niche market then there doesn't exist generally the same business incentives to upgrade older technology as there is in other industries like iPhone mobile app development for example.

If I am a company specializing in custom iPhone app development then I have to compete with tens of thousands of such companies all across the world. This not only drives the value of my services down but also provides an enormous incentive to make sure that my developers are up to date with the latest and greatest technology in the field.

When I am a company focused in an acute market then their may be little to no competition. It may not be a lucrative market but a good business person will know how to corner it and capture the few clients that do exist for this highly specialized software product. The clients are more likely to be captured since the market is mostly cornered and there are few competitors, the clients often do not need to be appeased with good quality or the latest and greatest technology.

Therefore upgrading from MFC to a newer platform may not be a life or death situation as it would for other companies. Sure it is important because you want the client to be happy with you, but often times for money reasons you only need them to be happy enough with you to not try and leave for a possible startup competitor or to just do without your service altogether.

The bottom line is that they continue to make money with or without the new technology platform so it is not elevated to the importance level to where they are utilizing your time working on it.

Another issue to note is that often times when a company is enormous business success in an acute IT market, they often fall victim to their success by floundering and becoming ineffective technically. After more than a decade of no significant platform change, they have slowly fallen out of touch technically and likely don't have the technical knowledge or resources in house that would be demanded for a full scale rewrite of their product in a new platform. Sometimes even business requirements are lost over time where managers and analysts don't even remember why the software happens to behave the way it does. These forgotten features often need to be re-evaluated and requirements formalized once again, which can be an enormous struggle for a technical team that has been in maintenance mode for over a decade.

The technical problems are tantamount and until the business relationships with clients are in high risk then nothing is likely to change, and when it does change they will likely have to bring in high price consultants to manage and implement the rewrite anyway.

Where a developer thrives in such an environment is when he becomes a repository for business knowledge. Unfortunately this business knowledge is incredibly specific to your job and will not carry over well to benefit you in your career at other jobs. If you are looking to expand on technical skills then this doesn't sound like the appropriate environment for you to do this in.

  • 1
    +1 I am in a very similar position to OP and you nailed it on the head. I'm trying to get a new job because everyone I work with has been in "maintenance mode" for most of their career and I don't want to have that career. Commented Nov 20, 2012 at 16:54

You asked two questions:

  1. Is leaving job a better option? - This is hard to answer if you don't state the alternative(s) - not just for us, but primarily for you. As long as you don't have an alternative, you don't have a choice to make. So my first advice would be: Go and get at least one alternative! (I presume unemployment is not a valid alternative here.)
  2. What in your opinion can be done to make my situation better and improve as a developer? - That depends on your goals. Write down some bullet points on what you would like to have achieved in 2-3 years time. That might include certain technologies, having worked on certain project sizes or industries, having worked with seniors, some certificates you want etc. - whatever feels important for you, write it down. Then talk about your plans. First with your current boss(es): You might be able to work out a plan together, including milestones so both of you know you're on track. Secondly, if you're following my first advice, tell prospective alternative employers and see what they offer.

As you are not exactly from IT background, leaving a job, getting unemployed and then finding a job in that industry where you are not expertised is not going to help you, as you have mentioned there are very few possibilities as the extent of industry I am working in is very acute.

It is recommended to stay at your current job and start looking for the best alternative of it. Also a little friendly talk with your boss about your task not being reviewed properly could show your loyality towards your duties and might you get some attention for your work.

You must log in to answer this question.

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