The "easiest" way to get people to stay is to pay well. Nine times out of ten, when I hear someone complaining about how their guys are leaving to go somewhere else, the employee got a raise by moving on.
I've been in my job 10 years because my boss trusts me to do my job the way I think it needs to be done, and he gives me the freedom to put my family first. I know that if he asks me to do something extra, it's important, and he knows that if I say no, I mean it.
I've kinda cheated. I was at my first real job for 12 years, and am coming up on 18 for my present job. But I take programming jobs on the side, volunteer with a few groups that do stuff that is NOTHING like my day job ... so that gives me some of the variety that I don't always get at my day job.
I'd agree with paying 'well'. At least 10% above average for your industry/area.
The interview gives you a practical example of how the person will interact with you and your team. There are exceptions ... where an incompetent talks his way in, or a really good candidate completely freezes and can't speak at all. But my limited experience shows that your 15 minutes with the candidate is an estimate of how they will work with you.
But after you're paid 'enough', including benefits, then other stuff becomes more important. Like having your boss trust you to do your job, and backing you up when you decide to 'do it right' instead of 'do it cheap'. And you get some small amount of appreciation for a job well done, doing stuff on weekends, and generally going above and beyond 'the minimum'.
You would think this would be simple, but I haven't even made the 5 year mark at any place I have worked at. Treat'em well, like you actually want them on the team and don't give them reasons to leave, have yet to see companies get this.
- If you hire young, then as they grow pay them market rates. 3-5% raises can't compete with 15-20% from job hoping.
- Decent benefits
- Have some type of compensation for weekend work and long stints of travel
- Build an environment people want to be part of, strong leadership and core values. It's easy to bail on a bad manager even if the company is a good place to be.
- Don't burn your people out, you work for them as much as they work for you.
- Provided opportunities to learn and grow, don't get in the habit of type-casting.
- Don't expect HR to magically find good controls people
- Actively participate in college/technical college internships, COOPs, career fairs
- Networking at industry events
- Recruiters
- Offer relocation packages that will make experienced people actually consider it. $15K- $20K net minimum, remember Uncle Sam is getting his too and these people have homes to sell and family decisions to make. $5K gross for a U-haul is insulting.
Yup. +1 on that.
Interns are like 16 month interviews. If that person does not fit with your team after 16 months, they never will. Summer students (4 months) less so since by the time you train them to be useful, they're gone.
I've been involved in hiring about 5 employees, and maybe 15 contract people. So my experience is .. limited
As for my personal experience being an employee .. I've looked around at other jobs ... even interviewed a few times. But every time I've evaluated the 'whole job' ... I've stayed where I am. Well, I did change jobs ONCE