117

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?

yannis
  • 39,647

18 Answers18

286

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.

94

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.

Pete
  • 9,016
46

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.

AndersK
  • 1,016
25

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.

Carra
  • 4,281
22

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.

Jim G.
  • 8,035
Nicole
  • 28,243
22

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.

Uri
  • 4,856
12

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.

ozz
  • 8,352
11

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

Michael
  • 483
7

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

Murph
  • 7,843
3

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.

Stephen C
  • 25,388
  • 6
  • 66
  • 89
3

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.

Simon
  • 1,774
2

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

2

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.

JohnL
  • 1,890
-1

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.

Geek
  • 3,961
-1

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.

ZJR
  • 6,361
o0'.
  • 839
-2

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.

Mike
  • 189
-3

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.

-4

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.