I know the default response in our industry to this is to make ever more restrictive non-competes. I strongly feel this is the wrong approach for a few reasons:
1. It generates poor feelings right up front.
2. If you need a shackle to keep your staff there are issues. Eric Fullerton (formerly of Milestone) described this right by calling it slavery in one session I attended.
3. If someone is going to leave they will find a way to leave.
4. This is greatly contributing to wage stagnation in the middle class that people in both political parties in the US complain about.
5. Do we really need more lawsuits?
To be clear non-solicits should absolutely be used and enforced. Stealing employees and customers is highly unscrupulous. It's one thing if the customer leaves of their own accord, it is another if a former employee is treating your contact list as free marketing data.
A better approach is to do the following:
1. Grant the employees autonomy in lieu of micromanagement. I will say this reaps massive rewards. Staff retention is extraordinary and the sense of ownership for the people involved results in greater margins. Accountability for your own successes or failures cannot be underestimated.
2. Treat them as human beings, rather than cows to milk for profit.
3. Compensate fairly and reward the performers. As their skills increase their wage should increase. If you won't pay them someone else will. However, these other items demonstrate that compensation is not necessarily the single most important item.
4. Have actual employee reviews and raises annually. Even a small raise is better than burying your head in the sand. In my opinion reviews should be quarterly. How can someone meet performance expectations with no clue what they are being rated on? "Make as much profit as possible" is not a valid performance goal.
5. Eliminate or sequester any combative employees that create a toxic environment.
6. Respect vacation time.
7. As your firm becomes larger avoid the ivory tower mentality.
8. Train new employees. Every company is different. Speaking from experience it is quite easy to become frustrated and pull the plug in the first 3-6 months.
I can't say for certain that will prevent anyone from leaving, but it certainly would decrease the odds to near negligible.