My friend is a project manager for a software company. The most frustrating thing for him is that his engineers frequently leave their jobs. The company works hard to recruit new engineers, transfer projects, and keep a stable quality product. When people leave, it drives my friend crazy.

These engineers are quite young and ambitious, and they want higher salaries and better positions. The big boss only thinks about it in financial terms, and his theory is that “three newbies are always better than one veteran” (which, as an experienced engineer, I know is wrong). My friend hates that theory.

Any advice for him?


18 Answers 18


If many people are leaving the job, then it is a clear sign that the work environment is not suitable for them. This can be because either the work environment is generally poor, e.g. poor management, a lot of overtime, poor job satisfaction.

But it can also be because the company does not provide the means for the individual developer to pursue his individual goals. This is one thing that is very important to figure out during job interviews. Where does the developer see himself in, say 5 years time. If the company hiring is not in a position to provide that opportunity for that developer, there is great likelihood that the developer will pursue these challenges elsewhere.

So I think that you must take care during the job interviews to find candidates whose long term personal goal lies within what you can supply as company.

And yes, I completely agree with you, one veteran is better than three newbies.

  • 4
    Job satisfaction is a biggie - and more or less the only thing that counts when the salary is enough to make a living and buy some gadgets.
    – Heiko Rupp
    Commented Feb 4, 2011 at 9:52
  • @Heiko, yep some may say the difference between men and boys is that the toys get bigger and more expensive. My Kinect + Arduino + iPad set me back a little this year. Still is cheaper than the motorcycle I bought a few years back. Commented Feb 6, 2011 at 4:55
  • 4
    Asking a newbie where they see themselves in 5 years time is overkill. You'd get a half-baked answer borrowed from multiple people who've been interviewing.
    – Nav
    Commented Mar 7, 2012 at 8:54
  • There is also a culture thing. I've been told that job hopping is very common in India.
    – user1249
    Commented Sep 8, 2012 at 21:05
  • 2
    Even better is one veteran and one rookie. Commented Sep 8, 2012 at 21:13

When an organization has higher-than-usual turnover, there's ALWAYS a reason and it is ALWAYS management.

  • If the only way an engineer can get a raise is to change jobs, he'll do it.
  • If the only way an engineer can get better working conditions is to change jobs, he'll do it.
  • If the only way an engineer can see his wife and kids occasionally is to change jobs, he'll do it.

Tell your friend to LOOK IN THE MIRROR. The answers he seeks will be found there.

  • 75
    +1 high turnover should be one serious alert for shareholders.
    – user2567
    Commented Feb 4, 2011 at 8:44
  • 4
    Of course management might have decided it's in their interest to put out a mediocre product, and offer crappy conditions
    – Carlos
    Commented Feb 4, 2011 at 9:45
  • 11
    If your project manager friend can't convince the big boss that something needs to change, then he might want to follow his engineers to a new job.
    – Ken Bloom
    Commented Feb 4, 2011 at 17:27
  • I don't think that one is very helpful. It is not always management. It can also be HR for choosing the wrong people and it can also be the applicant itself, who doesn't know what he wants and misleads interviewers with lying about his goals and qualification. Often there are a lot of reasons why something is not working correctly.
    – erikbstack
    Commented Sep 10, 2012 at 8:15
  • 2
    @erikb - it is management - HR choosing the wrong people means that management give HR the wrong priorities + re applicant this is about several/many people leaving not one applicant.
    – mmmmmm
    Commented Sep 11, 2012 at 14:35

I think its a good thing to have a post-interview with people who leave the company. That way he can get a heads-up on the real problem why people leave. It is otherwise very difficult to find a remedy.

  • 79
    If the place truly sucks, then they will not tell the truth.
    – Job
    Commented Feb 4, 2011 at 4:37
  • 9
    Umm - the big boss is IGNORING the human cost, and other costs like lost productivity, reduced quality, reduced service to customers. He's just paying attention to the salary cost.
    – Stephen C
    Commented Feb 4, 2011 at 6:44
  • 23
    @Anders: It is a very common practice to leave on a good note. A lot of people don't really dwell on to the reasons that made them leave.
    – Geek
    Commented Feb 4, 2011 at 11:12
  • 16
    @Lennart : More people avoid the truth than you suspect. Most exit interviews are documented and if you stir the dirt in it you might even lose the opportunity of making a come back to the same company.
    – Geek
    Commented Feb 4, 2011 at 11:15
  • 10
    I once told the bare truth when I left a company and regretted it. I was annoyed and told them everything I was feeling. They couldn't cope with it.
    – paul
    Commented Feb 4, 2011 at 13:52

Everyone can quit sometimes. You need to adapt a culture of quitting.

But there is one thing that we all can do. In fact, let’s all do it together, right now, right this moment. Employees, go ahead and say to yourself:

I know that I will quit my job, and there’s nothing wrong with that.

Now it’s your turn, employers/managers:

I know that my employees will quit, and there’s nothing wrong with that.

Once we’ve all accepted this, things will start to work better. Eventually, we’ll join the legal industry, the accounting industry, and so many others, and we too will have our well-oiled machine. But first things first: we need to embrace quitting, not fear it.


I don't think that "youngsters" leave just because of salary - If anything, younger folks with less responsibilities and a longer career ahead of them can afford to take risks or work or fun things that us Dinos can't.

However, I can certainly see them leaving if the Boss thinks that three newbies are better than a single veteran - who would want to become the veteran?

Employees want better work-life-balances, interesting work, career potential (including name recognition), etc. They may even be willing to take some sort of a paycut for it.

I'd like to think that more engineers would want to work at a Fortune 500 tech company or an exciting startup than in a drab small company in an unrelated domain.

However, I'd also like to think that everybody or almost everybody has a price that may offset the above.

Thus, either your company isn't changing enough in non-fiscal ways (such as management), or it's not changing enough in what it's offering.

  • 6
    Well, salary can sometimes be a factor. If a "youngster" has a year or two expereince under their belt and know that their friend is working down the street making a significantly more (where significantly is dependent upon the person) they may consider leaving so they can catch up with their friend unless they really like what they are doing.
    – rjzii
    Commented Feb 8, 2011 at 16:41

This is not normal for software engineers that love their working environment.

Use the Joel Test to create the best working environment for developers.

As your friend would attest, though these things have costs, so does turnover. The cost (time or money) in creating a better working environment and a better running software team will easily be offset by the savings in reducing turnover and the better results that a long-lasting team will create.

  • While every sane engineer agrees that Joel Test helps to create a mature software development environment, it will be up to the project manager (or hiring manager) to find out whether the new hires (or interviewees) really care about maturity at all.
    – rwong
    Commented Feb 4, 2011 at 7:58
  • 6
    I feel the Joel Test is completely unrelated to this problem.
    – o0'.
    Commented Feb 8, 2011 at 16:00
  • @Lo'oris fair enough - can you explain how? As I read the list, every single "No" to an item would add stress/friction to me (some more than others) and enough No's would just cause me to leave.
    – Nicole
    Commented Feb 8, 2011 at 17:44
  • I believe you, but I find this very odd. Failing that test seems to indicate that the product will likely be faulty, needlessly long and costly to develop, and hard to maintain. Those things are bad for the firm, but shouldn't affect very much the programmer guy: as long as they pay him and treat him well, he should not care too much if the firm is operating sub-optimally. Unless the firm is so sub-optimal to the point of being suicidal, then the employees may concern losing their jobs if the firm closes down.
    – o0'.
    Commented Feb 9, 2011 at 12:49
  • 2
    @Lo'oris I see now where you are coming from. Money and kindness can certainly hold some programmers forever, and most for some amount of time, but I think real job happiness most are searching for comes from the satisfaction of doing well at their job. And that's quite hard to find if the end result of their effort is a low quality product. I've already left one job for these reasons.
    – Nicole
    Commented Feb 9, 2011 at 16:58

How big is this company?

I always find this to be most common with small places ~20/30 employees.

The problem is the big boss, who I am guessing is the owner.

He has a small business, desperately trying to make money, win clients etc. Money is probably tight, hence he probably pays below average salaries, little benefits, expect more from his money from you etc.

It's a viscious circle, to retain the best talent you have to pay decent money, or have some other reason for them to stay eg. be well run, working on cool stuff.

  • 1
    Exactly, it's ~20/30 company with vicious circle. maybe the small business doesn't need talented engineers. Commented Feb 4, 2011 at 13:38
  • 7
    FWIW: I work at a small place with 21 employees. We pay above-average wages, people rarely leave, we're producing a great product with fewer people than our competitors. Maybe your friend should ask yourself why he's staying when everybody else quits...
    – nikie
    Commented Feb 4, 2011 at 14:55
  • 2
    @nikie - arguably, that might be the best type of place to work, small enough that you feel you can really make the difference, and with good benefits (monetary and non-monetary)
    – ozz
    Commented Feb 4, 2011 at 15:01
  • 6
    At a privately owned business of 20-30 people, a whole lot will depend on the overall boss (typically the owner or majority owner). I've seen both good and bad. Commented Feb 4, 2011 at 15:37
  • @david - me too, I wasn't implying all small companies were like this, just that most places I've seen similar things to the OP's question was with smaller companies. Big companies sometimes have the same issues, but more often they simply have completely different issues.
    – ozz
    Commented Feb 4, 2011 at 15:41

If a software department is constantly getting new people, (1) it's really easy work, or (2) it's hard work, and the company is wasting an enormous amount of money, paying programmers for months before they've learned the system well enough to actually be competent with it.

If your friend's work is anywhere near (2), your friend's boss is an idiot. On difficult projects, a skilled, veteran programmer is worth more than ten green programmers. With green programmers, it's not really software development... it's R&D. They'll spend 2% of their time actually writing code and 98% of their time researching, reworking the design, trying to figure out why the program doesn't work properly when they make a few changes, and bug-testing.

I'd tell your friend to leave the company. The boss thinks he's got it all figured out, but he's actually just a moron that's making everyone miserable. When the boss man realizes his software development/maintenance department is in disrepair, it'll be too late... the entire company will crumble like a deck of cards, and he'll be left to face the stockholders, his boss, etc. The company will have what you might call "alien ship" software -- the smoking husk of what was once impressive, but nobody knows how to fix it because nobody knows how it used to work.

You could also suggest that your friend try to get his/her boss to agree to a thought experiment. "You've just lost your job as boss, and now you're a developer. Here's your desk. Now start programming." When his boss complains that he doesn't know how, your friend can say, "Oh? You're new, huh? Don't know how it works, do ya? Well, you can read these 10 books -- make sure you take notes, by the way -- and then when you're done with that, you can read over project's design, then the code, then you can watch all of the meetings the developers had when making the software, and then you can read their emails, and then the code once again. When you're done with all of that, we'll let you tinker with your own copy of the program -- to see if you can work with the software without screwing it up. When you're done with all of that, you'll be ready to write your first line of code. See you in six months."

  • The whole deal to say that green programmers are worthless is silly. Everyone starts somewhere. The reason why they're leaving is probably that the job isn't working out well for them... or its frustrating.
    – monksy
    Commented Sep 10, 2012 at 17:54

The way to deal with the big boss is in purely financial terms - recruitment has a cost, quite a substantial one in most cases - so the first thing to do is determine what that cost is and the second is to demonstrate how a saving can be made if churn is reduced. (This is quite aside from any issue of the cost to the projects of the churn which is probably hard to evaluate and in any case will probably be discounted.)

In terms of dealing with the churn - the first question to ask is "why would they want to stay" - what is it that this company offers as an employer that the staff will lose if they do elsewhere. Some of this will obvious i.e. pay and benefits others less so (nature of projects, nature of work, tools, office space, chairs (!), training, work environment and culture as a whole).

One other problem is that at the moment the notion of churn is inherent in the business - new employees will arrive in an environment where their "senior" colleagues expect to leave to progress and this will be passed on..

  • There was a chapter in De Marco & Lister's "Peopleware" (IIRC) that had a two-question quiz for managers and the like: 1. What's your annual turnover rate? 2. What's the total cost of replacing somebody? Scoring was easy: if you answered both questions with at least a halfway reasonable estimate, you passed. Commented Feb 4, 2011 at 15:39

This is very difficult. The boss's recruitment policy and his unwillingness to look after his employees are hurting the company. This needs to change if the company is to prosper.

Your friend needs to decide whether he wants to stay with the company or not. If he wants to stay, he needs to choose between putting up with the status quo or trying (somehow) to get the boss to change. Neither option is easy, and the second one is potentially risky. (The chances are that the boss won't take kindly to an underling querying his staffing strategies, especially since it seems that he is not the kind of person who would ask for input on this kind of thing.)

The easy option is to look for another job. And I suspect this is the most realistic option.


Seems the company has bad work conditions, salary, working hours, atmosphere, work-life-balance, ...

If the company doesn't change these conditions (and it seems the boss doesn't want to), there will always be a frequent quitting.

Maybe your friend should also consider finding a new job.


I haven't worked in a place that has high turnover of developers. I have worked in a place that has had high turnovers of jobs that needed a lot of expertise though. And that place came up with a good way of dealing with it. And it wasn't even conscious, the place just adapted. And the main part of that way of dealing with it was pair-programming.

Well, since it wasn't programming, it strictly speaking was just pairing. :-)

I worked at this place before Extreme Programming got Really Cool, so I hadn't heard of it then, but the company would document everything carefully, and they would teach the new arrivals by letting experienced people sit with them when they worked. In practice, every time anyone did anything even remotely complicated, they paired up, mostly a newbie with an old-timer. Basically, the only time you did not pair, was when both people would have done exactly the same on their own anyway.

I completely agree with the statement that the fault of high turnover amongst programmers is always management. And in cases like this, where middle managers end up in a squeeze between reality and upper management, it can't be fun. But make sure your friend reads a lot of agile books, especially the ones by Kent Beck on Extreme Programming and test-driven development. By implementing test driven development and pair-programming, you'll keep a high code quality while transferring knowledge to new people quickly.

It's not as good as fixing the problems, (your friend needs to make sure he knows exactly why anyone quits, so he can try to fix that as well) but it can make the problem less prominent.

(Also make sure to always have free fruit, coffee, soft-drinks and candy. And there are loads of ways to keep people that doesn't involve raising salaries, but it's unlikely your friend can implement them without some budget from the upper floors).


Your friend may want to outline for his boss the costs of this policy, and I'm not talking about product quality because although that's important it's not something the boss can really wrap his brain around. I'm talking about things like agency fees and product delays.

Young, ambitious programmers will generally work with you until they feel their career can't move forward anymore at your company. A kid straight out of uni will probably grab that Junior Developer position, but after a year he doesn't see himself as "junior", nor does he want to be stuck doing menial tasks - after all he has a year of experience under his belt!

He wants a better paycheck, a better title and better projects. If your friend can't offer those things then that's why he's losing people.

  • 2
    This is very true as well. If the OP's boss is not inclined to be promoting or encouraging the career path of the engineers... bye bye company, hello better one! thanks for the resume line Commented Feb 5, 2011 at 2:33

All Youngsters(including me ;-)) will be very ambitious and would want to rush the highest possible salary but not all these ambitious guys are really good or should I say WORTH keeping. You friend and his Boss should be selective they should really put the worthy candidates on a high growth curve with both money and vertically, the common one's who leave should/can be replaced.

  • 3
    Having a clear career ladder can do a lot to keep "youngsters" around since they know what the rough time-lines are to when they should get promotions. If a junior developer knows that after three years they should have a promotion then they will likely stay that long and if they know that "rock-stars" get a promotion after two years then it will be motivation to work harder.
    – rjzii
    Commented Feb 8, 2011 at 16:38
  • @Rob: I agree but in some they are meaningless for quiet a substantial time something like for the 1st 10 years. Pay raises depend on market conditions and title changes have little effect on the pay check. It is only around 10 years experience that the wheat gets differentiated from the shaft. I mean 'some Organizations' all need not be that pathetic :-)
    – Geek
    Commented Feb 8, 2011 at 17:06

While I agree with the answers given so far, I'd like to add something (almost) not yet covered: if your boss has a superior, your friend might try to explain him why you think he's bad for the company.

This will either lead him to a promotion, replacing the bad boss, or force him to find another job. Since finding another job is unanimously considered what he should do anyway, he might as well take the risk of getting a promotion instead.

  • You've articulated the upside, but it's risky. How would that middle manager feel if he/she survived? // P.S. Have you seen the episode of 'The Office' when Dwight did exactly what you're describing?
    – Jim G.
    Commented Sep 8, 2012 at 20:57

Tell him to bring up the issue with his superiors. Have him suggest incentives for engineers to stay long-term: personal growth, advancement in the company, higher salary, bonuses for performance, better environment.. etc. If they don't budge, he can either switch jobs or keep complaining.


I would suspect that your software "engineers" are essentially firing themselves before management realizes that they don't know what they're doing.

Your management has what I think an atypical attitude. Most shops that I've worked in frown very heavily on job-hoppers.


Simple: Don't hire people with a history of changing jobs often.

Do that first and then you need to follow the advice of all other answers on here.

  • 1
    Define often though. Are we talking people that change every year, there years, ten years?
    – rjzii
    Commented Feb 8, 2011 at 16:35
  • 1
    @Rob: It's subjective. Is 3 changes in 5 years too much? Two changes in three years? Who knows. Ask the candidate why they changed jobs, and listen closely. Some guy who has bad things to say about every job usually is the problem. Commented Feb 8, 2011 at 16:45
  • Maybe a few years ago, but definitely not now. Now people are lucky if they have a job, let alone keeping one for long...
    – o0'.
    Commented Feb 10, 2011 at 0:19

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