views:

1840

answers:

20

I found this question on the issue: http://stackoverflow.com/questions/129508/when-did-you-know-it-was-time-to-leave-your-job. But I would like to get more "under-the-skin" on the responses. The other question's answers included commuting, personnel conflict, when you are not getting anywhere professionally speaking.

Let's say I meet with your boss and talk to him about resources and how they are treated within the company. And let's say that he is honest in his reply. What would he say was his top-three list in regards to losing his best programmers?

Let’s leave out rotten office space, low salary, bad hardware, not getting the tools needed for the job at hand, bad assignments, disruptions from team, customer support, etc. I would like to know the things that make him lose his experienced developers after 2 years. What did you tell him to fix that he was unable to fix?

+19  A: 

Stagnation and the recognition that things are never quite as they are promised. The desire to leave is probably proportional to the amount of times you find yourself saying "... but that's the way we do it around here" and quietly cursing yourself for not having the time/inclination/support for solving that problem.

Unsliced
+1  A: 

Undocumented process of development, lying about information, blaming the ones who was not faulty (not me). At a huge multi in aviation software development. And a more money offer helped me too.

Edit: just forgot to mention that we had at least one absolutelly useless at least one hour long meeting per week, and there were projects where I had to book my time in 4-5 different application...

Zsolt Botykai
+26  A: 

Here you go:

Endless ridiculous meetings (the practical alternative to actual work)

Process and formality getting in the way of producing quality software. I don't need to waste a week at Six Sigma training to find the root cause of the problem - I already told you what it was!

Believing that MS Project is something magical and can create software by simply throwing some milestones on a chart

Hiring dimwits because we have positions to fill and then questioning my motives when I reject 95% of the interview candidates that I've talked to.

Hiring dimwits without having the dev team on the interview - we have to work with them and fix their crappy code and put up with their lack of qualifications - we have to petition that you get rid of them

I could go on, but that's a good start.

So glad I'm out of that situation! :)

itsmatt
I tend to sum up these scenarios as "metawork". Mainstay of HR and middle management departments worldwide!
DavidWhitney
Thank you - this is the kind of response I am looking for. I can almost sense the irritation you went through at your old job :) Thanks!
sonstabo
My pleasure. I'm actually glad I went through it now because I've got a real appreciation for my current job - we don't do those sorts of things at my shop.
itsmatt
meetings -> the practical alternative to actual work
Nazgob
+9  A: 

Reasons I have changed jobs over the years:

  • (1991) Company went out of business
  • (1992) Opportunity to program in Windows
  • (1996) Opportunity to program in C++
  • (1999) Opportunity to work at a dot-com.
  • (2002) Company went out of business. (Hey, it was a dot-com, and it lasted to 2002!)
  • (2003) Opportunity to work in C#
  • (2007) Opportunity to Work in C#3/WCF/LINQ etc.

(Also, in each case, "opportunity to" means "offered to be paid to" do what I'd been doing for my personal/hobby/shareware programming for the previous 2-4 years)

James Curran
I think this is kind of an interesting topic to explore. Reasons that I have changed jobs over the years.(2003) - Left to go do C# (almost 5 years in - 1st paying programming job)(2005) - Left to go make more money doing c#(2006) - Left to join a startup(2008) - Startup out of business.
Pete
+7  A: 

+1 for MS Project as an indicator of doom.

I have been doing development for over 15 years, and in that time I have NEVER seen a successful software project that has used MS Project. Not one.

chris
I actually have - but the team was very small. PM (me) and developer. He was new and good, and reported back all positive and negative things he came across. So we managed to stay on track and deliver on time +++. If this can count as a MS project type of project at all is another question :)
sonstabo
Actually, I've been in a successful project where MS Project was used. It's not a 100% sure way to forecase failure.
ammoQ
OK, so we're down to 99.99%. Anyone else?
chris
+3  A: 

There are whole books dedicated to this topic, and every elementary project management text book will have at least a chapter. Some theories include hygiene factors (http://en.wikipedia.org/wiki/Hygiene_factors) and the hierarchy of needs (http://en.wikipedia.org/wiki/Hierarchy_of_needs).

MS Project is not a reason for anyone to leave a company, it is just a tool to let project managers do what they would otherwise have to do by hand. Project Managers who are more interested in getting MS Project to give them a warm fuzzy rather than actually managing the project, however, are a huge source of pain for developers and everyone else.

We had one that was so driven to make his numbers add up that he bypassed chains of command and went straight to individual developers rather than the team lead to get the facts that he wanted to hear. Meanwhile project after project went down to the wire and required development to put in "a little extra". I don't think anyone has left our team since that PM left the company 9 months ago.

Robert Gowland
Someone had to quote Maslow ;-)
Keith
+7  A: 

Number 1 - Salary is not competitive with other company

Number 2 - There is no business plan so people leave to have better working condition (Working on a project that is not well planned is really a pain)

Number 3 - Employees are only a way to attain a goal, and they are not part of the solution

Patrick Parent
+1  A: 

I would have to say that the TPS Report cover sheet is the biggest reason for leaving a person's company.

Seriously though, most times it is caused by a conflict with management and how strongly the employee feels about the issue. I realize this answer is vague because there are so many conflicts an individual can have with management. Problems can range from budget constraints, stupid company standards and rules, IT is magic mentality, being forced to use bad development tools, working long hours, not following labor laws, etc. The list goes on, but it all comes down to the simple fact that there was a conflict with management, and the individual felt so strongly about the issue that they left the company.

Probably the biggest thing management can do to fix problems is just to have general communication with the employees about what issues there are and "actually taking an effort to fix the issues." Most times if an employee is passionate about an issue they will communicate that with management, but most often the issue gets placed in the things to do pile that has six months of things ahead of it. Management needs to make an effort of looking into issues and trying to fix them sooner. The major problem is that one employee's issue may not be shared with the majority, and fixing that issue may be a waste of resources; this is why management should have employee meetings on a regular basis, and survey the employees about which issues they feel most strongly about. After finding the major issues take steps to fix those issues.

Matt Pascoe
+3  A: 

Ancient policies on raises.

If a company caps their raises at 5% a year, a developer can jump jobs after 2 years and make more money. They'd be better off allowing larger raises.

+1  A: 

for me its simple, how much i earn is the first reason (money rules!), and the second one is the role that we played at the company, more roles with freedom for self improvements and the company willing to invest time to let me learn new stuffs related to web dev will be on the top priority.

Ariel
+2  A: 
  • 2006 - Wanted to make something i'm proud of
  • 2008 - Company didn't made top notch stuff, moved for more innovation
  • 2008 - Company didn't made top notch stuff, moved to a startup with the newest techniques
D4V360
+5  A: 

Someone else mentioned "stagnation", but I'll go the extra step to flat-out call it "boredom". In my pre-freelancing days, the typical timeline for my jobs tended to run 6-9 months from being hired until boredom set in, then another 6-9 months from the onset of boredom until I finally decided that it was a complete waste of my time and theirs and quit. The one exception was my last full-time job, where I was the sole sysadmin/netadmin for a mid-size manufacturing company. That one had me doing several different types of things most days and I never new which ones I'd be doing until they came up. (Not a lot of fighting fires, fortunately, mostly just small projects appearing in the moment.)

I don't do too well with doing the same thing, day in and day out, for long stretches. If you were to hire me and wanted to keep me around for two years or longer, you'd need to change things up and always have me doing something new.

Dave Sherohman
+3  A: 

In the Middle East and the sub-continent (as far as I can vouch for), it is, sadly, very common to find employees being treated in a manner ranging from condescending to outright rude to completely insulting (I tend to call it the master-slave treatment syndrome). Your manager will insult and treat you like crap to get work done, the one above that manager will treat them like crap to get work done, and so on and so forth up and down the hierarchy. I for one cannot stand that. If you pay someone to do work, you do not also get the right to insult them in the process. I have a hard time taking a manager or boss like that in stride, and no matter how lucrative an offer, or how big a company is, I'd definitely turn it down (or resign and leave).

ayaz
+1  A: 

Oct-2000... I went to work for myself and never looked back. Why? How did I know? Supervisors, "team leaders" who could (and should) not manage people. Management who could not run a project nor bring a product to market. I dont how or when these, usually very bright, folks lost their brains but they did. Bottom line is, if you have to ask why you're still wherever you are, its time to look.

Optimal Solutions
+4  A: 

The reasons I've left positions are as follows:

  • Sub-par pay (i.e. minimum wage, yes, it happens)
  • No possibility of advancement
  • No skill development opportunities
  • Location
  • Benefits
  • "Growing pains" of small businesses (server downtime, downsizing, etc)
  • Failure to meet pay roll on time for myself, or coworkers whom I helped hire (i.e. forgetting to pay)
  • Moved from hourly to salaried position

Eh, I could keep listing for hours. I've never left a position for a superficial reason, so I usually remember them all. All that in the past 6 years or so. ;)

Abyss Knight
+2  A: 

I think it depends on the personality of the developer, but from my experience, I realized I'm the type of person who dislikes working in brownfields for long periods of time. I like to build new things. So if I come into a company to work on a project, two years is about the amount of time that it takes for me to fully design, develop, test and deploy a large enough project, and then get fed up with having to maintain it afterwards.

That's why I now consult. I can now go into a client, do exactly all the things I enjoy on a project, then when it's done, go to a new client. In the meantime, I've stayed with the same consulting company for a good period of time, so I get all the benefits and stability that comes with staying with the same company for several years.

I think all the other reaons that tend to be offered up, like poor management, MS Project, lack of tools, etc. don't matter as much. We say them because when we get sick of maintaining something we don't want to maintain, those other things tend to get under our skin more, but they aren't the root cause. Because realistically, those will be problems at any company you go to. You just live with them at companies where you already like what you're doing.

Nick
+3  A: 

Dead Sea Effect

In a nutshell, the better programmers/IT professionals don't tolerate incompetence from a company, thus leaving the company...

Chuck Conway
I suspect the Dead Sea effect is a little bit inevitable anywhere. Unless you're the #1 company in your field, there's always a little bit of pull of your best people towards somewhere better.
interstar
+5  A: 

Turn it around.

Two years is long enough at any company unless the company is particularly good. (Treats you particularly well, enough variety, enough new stuff to learn, career development etc.)

interstar
+3  A: 

Well, I think it is time to leave my job! Let's see my motivations for that:

  • Lack of leadership
  • Lack of a technological plan
  • VaporWare > Shipped Software
  • I'm seen as a number and as a cost
  • People don't care about what I think/do/develop
  • There is no such thing that I could name as "Team"
  • All personal relationships are based on e-mail
  • Non-technical people deciding about technical stuff
  • Horrible screens, chairs and tables
  • Too much bureaucratic procedures to do something simple
  • Low wage
  • There is no office for the programmers (they say open-spaces are good for communication)
  • People just don't use the software that your company is "manufacturing"
  • Non-technical persons deciding about technical stuff
  • Having 2 iMac + 2Mac Mini parked in the storage room (they were bought just because someone thought they were good for programming/managing Win based applications with Mac OS X).
  • When you just don't have access to the development resources (internal software, internal data-servers, no user/password for me in the main app that we were developing!!)
  • No SVN
  • When you are obligated to program in VB3 (yeah, Visual Basic 3!)

So, if you are facing a situation like mine, please, run away from that job! Quickly!

Unless you are facing a global crisis, with global unemployment raising day-after-day, and you really need the money that your crappy job is paying to you.

Armadillo
+1  A: 

Well, for me the thing is usually stagnation. I like programming because there's always something new to learn. But you do sometimes run into situations where you feel as though there's nothing left to learn from a project or that it's just plain not challenging anymore.

And I'm surprised no one's pointed out the obvious: personal reasons. These are things like wanting to move to a different city, wanting to spend more time with family, etc.

Jason Baker