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.

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?

share|improve this question
84  
Boss should change his attitude first! –  Tech Jerk Feb 4 '11 at 4:42
29  
@Kumar: maybe my friend is supposed to think to leave the boss. –  卢声远 Shengyuan Lu Feb 4 '11 at 4:47
9  
Yes! Just ask your friend to explain why veterans are important. Still the boss refuses its high time your friend should find another job. Only when management supports a Manager in all means, he/she can deliver what they are expecting! –  Tech Jerk Feb 4 '11 at 5:05
43  
The most expensive person is the newest person! Not always for salary - the the time it takes to train them. –  quickly_now Feb 4 '11 at 7:41
34  
Your friend should do the same - leave and go somewhere where his new boss doesn't have the same short-sighted view on cost vs. salary. –  Bernhard Hofmann Feb 4 '11 at 9:01

18 Answers 18

up vote 88 down vote accepted

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.

share|improve this answer
2  
Agree. Personal goal should match company's supply. –  卢声远 Shengyuan Lu Feb 4 '11 at 6:23
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 Feb 4 '11 at 9:52
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 Mar 7 '12 at 8:54
2  
Even better is one veteran and one rookie. –  Austin Henley Sep 8 '12 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.

share|improve this answer
8  
I will tell my friend to let his boss look in the mirror:) –  卢声远 Shengyuan Lu Feb 4 '11 at 7:10
64  
+1 high turnover should be one serious alert for shareholders. –  user2567 Feb 4 '11 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 Feb 4 '11 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 Feb 4 '11 at 17:27
1  
@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. –  Mark Sep 11 '12 at 14:35

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.

share|improve this answer
4  
I feel the Joel Test is completely unrelated to this problem. –  Lohoris Feb 8 '11 at 16:00
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. –  NickC Feb 9 '11 at 16:58

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.

share|improve this answer
1  
This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. –  Matthieu Sep 4 '12 at 15:31

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.

share|improve this answer

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.

share|improve this answer
1  
Define often though. Are we talking people that change every year, there years, ten years? –  rjzii Feb 8 '11 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. –  Gabriel Magana Feb 8 '11 at 16:45

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.

share|improve this answer

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.

share|improve this answer
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 –  Paul Nathan Feb 5 '11 at 2:33

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.

share|improve this answer
1  
Exactly, it's ~20/30 company with vicious circle. maybe the small business doesn't need talented engineers. –  卢声远 Shengyuan Lu Feb 4 '11 at 13:38
6  
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 Feb 4 '11 at 14:55
1  
@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) –  jmo21 Feb 4 '11 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. –  David Thornley Feb 4 '11 at 15:37

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..

share|improve this answer

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."

share|improve this answer

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).

share|improve this answer
2  
I've been in places with high developer turnover. In both cases, I was extremely happy to leave. –  David Thornley Feb 8 '11 at 16:25

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
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 Feb 8 '11 at 16:41
2  
+1 for "...if the Boss thinks that three newbies are better than a single veteran - who would want to become the veteran?" –  Joshua Drake Sep 10 '12 at 13:38

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.

share|improve this answer
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 Feb 8 '11 at 16:38

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.

share|improve this answer
76  
If the place truly sucks, then they will not tell the truth. –  Job Feb 4 '11 at 4:37
8  
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 Feb 4 '11 at 6:44
22  
@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 Feb 4 '11 at 11:12
13  
@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 Feb 4 '11 at 11:15
8  
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 Feb 4 '11 at 13:52

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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