views:

809

answers:

16

In my career I have had two programming jobs. Both these jobs were in a field that I am most familiar with (C# / MSSQL) but I have quit both jobs for the same reason: unmanageable code and bad (loose) company structure. There was something in common with both these jobs: small companies (in one I was the only developer).

Currently I am in the following position:

  • being given written instructions which are almost impossible to follow (somewhat of a fools errand).
  • we are given short time constraints, but seldom asked how long work will take, and when we do it is always too long and needs to be shorter (and when it ends up taking longer than they need it to take, it's always our fault).
  • there is no time for proper documenting, but we get blamed for not documenting (see previous point).
  • Management is constantly screwing me around, saying I'm underperforming on a given task (which is not true, and switching me to a task which is much more confusing).

So I must ask my fellow developers: how bad does a job need to be before you would consider jumping ship? And what to look out for when considering taking a job.

In future I will be asking about documented procedures, release control, bug management and adoption of new technologies.

EDIT:

Let me add some more fuel to the fire ... I have been in my current job for just over a year, and the work I am doing almost never uses any of the knowledge I have gained from the other work I have been doing here. Everything is a giant learning curve. Because of this about 30% of my time is learning what is going on with this new product (who's owner / original developer has left the company), 30% trying to find the relevant documentation that helps the whole thing make sense, 30% actually finding where to make the change, 10% actually making the change.

+1  A: 

Time to change.

I think, you will know in your heart to do that. You don't need advice from SO on that :)
I am curious to understand what other methods people use when changing job. (networking?)

shahkalpesh
+13  A: 

I'd say you have limited years of life you get to do a career you enjoy, why spend anymore time than you have to in a no-win situation?

There are a lot of companies looking for talented individuals. -- If you've truly exausted all your options, don't waste the valuable years of your career.

Hugoware
+21  A: 

In this economic climate I would suggest first lining up something that seems better before jumping anywhere.

Your issues are not uncommon. There are many ways you might improve this situation:

  1. When given tasks, send out a confirmation email with the tasks listed (possibly divided into subtasks) with your estimate in hours next to it.
  2. Make it clear that these deadlines are reasonably aggressive and assume nothing goes wrong while implementing them.
  3. Give a date when YOU suspect the tasks will be finished, based on these estimates.

Few things that might happen:

  1. Your superiors would want to discuss these deadlines with you to see how you reached them.
  2. They ignore your emails and demand it gets done sooner. Try to explain some concepts to them that they actually should already understand given their position. Scope/Time/Cost

If all that fails, simply make them understand that you don't believe anyone would be able to perform these tasks significantly faster and that you fail to believe it until proven wrong. :-)

Maltrap
+1  A: 

I think if you are becoming unhappy in any company it is time to start thinking about making a move. Now that could be to a different team or project, or it could be to a completely new company. I think most of us deep down know when it is time to make a move.

Mr. Will
+1  A: 

It really depends on several factors. 1) the economy--this is not the easiest time to change jobs, what are your prospects? 2) how bad is it really--merely frustrating, or truly impossible? If as bad as you make it sound, then you probably want to change while you are in control vs. being fired. 3) are you honest with yourself about your own capabilities--could it be that you need to gain more training, learn to be more flexible and communicative with your coworkers/superiors, etc. Is there anything you can do to upgrade yourself to make the job work better?

Jay
+7  A: 

Sounds like your job is making you miserable.

I'd say two things need to happen to make it bearable:

  1. Your superiors need to understand your job.
  2. Your superiors need to understand technical debt (which they're accruing), and its implications.

If they can't (wont) be educated about these things, it's time to go.

lukef
+4  A: 

If you're asking this question, then I think you already know the answer. Get on the hunt for something. Turn it around on your next interview like you are the one interviewing the company. Why would you want to hire/work with them. Just my opinions.

Hcabnettek
+4  A: 

My general rule is that I don't like to walk away from something unless I'm satisfied that I've done enough to try and make the situation good.

In addition to @Maltrap's excellent suggestions, I'd say this: if your estimate exceeds their deadline, suggest ways to cut back the task so that it could be finished in time.

And give management specific suggestions on how to improve your process. If you don't have specific suggestions for improving your process, then maybe you want your next job to be one where you report to a more experienced developer who does have a good handle on the software development life cycle instead of reporting to non-technical managers, which it looks like you are now.

And similar to @Jay's #3, take honest stock of what you are contributing to the bad situation. There is probably some part that is your responsibility.

Some good books on software engineering as it relates to businesses might be helpful for you (see accepted answer on this thread). And you might want to ask your future employer if they've read (or heard of) any of them.

JeffH
+36  A: 

A good rule of thumb is that if you're asking "When should I jump ship" on Stack Overflow, it's a good time to jump ship.

womp
+1  A: 

Most of the time its the immediate manager that dictates how good a job is, Try to judge the level of your relationship with him, on ways it would improve. will help you decide better

Umair Ahmed
+2  A: 

So, my take on it goes like this. Your management does not understand the implications of the development task and you are in need of a process that allows you to scope the work accordingly. Essentially, when you are given a task, you want to estimate it. This will allow your superiors to have an idea of how long its going to take. This also gives you a baseline to perform against. You'll find that most issues like this are based on communication issues. The development process structures will help you for sure, but what you need is a stable cadence with your customer before this can be expected to help. Ask, why are our perceptions on a given task out of sync. You may find that they just don't get what you mean when you say it. So, you may want to change what you're saying.

karbon
+1  A: 

If your manager isn't on your side, then I don't think your ever going to be appreciated at your job.

I put up with a less then perfect work environment because my I get the sense that my manager is on my side. He advocate for me and as a former developer understands the work flow.

Without that I wouldn't put up with the job. You need someone to shield you from people who don't understand the development process otherwise your going to to at the mercy of them.

James McMahon
+1  A: 

If all of your problems with management were straightened out so that all of your complaints were gone (ie. management listens to you about deadlines, gives to clear and reasonable instructions, doesn't confuse you with constant changes, etc.) would the project you're working on be inherently fulfilling?

If so then you can look at the possibility of fixing your relationship with management to remove the layer of aggravation that's interfering with the work itself. If you think it's reasonable to assume you can do that, then you should probably stay and work on it.

If you don't think you can do anything about the management problems then there's no point hanging around. And if you're not excited about the work itself then there's no point in even looking at the management problems. Start spending your free time looking for something new.

Robert
+1  A: 

Right now sounds like a good time!

Captain Insano
A: 

May I ask a question? Why hasn't your employer fired you already, if he thinks so lowly of you?

CannibalSmith
+1  A: 

If you are about to go postal and cause significant amounts of damage, that would be the warning sign I'd use for when to quit. My suggestion for your situation is to ask your boss what he thinks you should be doing to meet the deadline as maybe they have some ideas as to how to do things differently than your own.

JB King