TL;DR: Consider a non-disclosure agreement and avoid non-compete agreements, give them good and compelling reasons to stick with your company, and remain competitive in the market if you want to find and retain talent. Every company has these challenges and neither you nor your company are special here. May you find this reality check helpful, even if it's not necessarily what you wanted to hear in the first place.
Preventing Employees from either switching to Competitors or Opening Their Own Business
You can't and you won't. First, it's not like your employees are preventing you from firing them or laying them off whenever you feel like it. Secondly, you don't own your employees, and trying to act as such is, quite frankly, a border-line fascist approach to the situation.
I don't want my technical staff to abandon me
Then, rather than trying to impose your will on them to "prevent" them from leaving, give them good and compelling reasons not to. You clearly expect them to give you good and compelling reasons to keep them employed (e.g. good performance), so why shouldn't the same standard apply to you? You don't get to have it both ways.
Also, they're not "abandoning" you, as if they somehow owed you anything. The employment is a business transaction based on mutual consent, consent which can be withdrawn by either side at any time for any reason.
If companies can dump their employees like trash for any reason, including no reason, then employees can also dump their employers like trash for any reason, including no reason.
That's the environment that "at will" employment produces, with its pros and cons.
if they believe that they can have more benefits elsewhere
Then you lost to your competition. Your employment agreement with your employees is a transaction based on mutual consent. Either side is free to terminate said relationship at any given time. And that should be the end of it. If you try to impose agreements that survive a terminated employment relationship, then I think you're crossing the line.
To deal with this, you could start by genuinely trying to do better than your competition; you can also look for people who like to work in startups and those kinds of environments, but you may also need to offer them good incentives (e.g. as the company grows and succeeds, you will too; I don't know what it's called, but it may be profit-sharing of some sort, IIRC).
or decide to start a similar business like my own.
Look around. Every possible business idea has multiple/different companies trying to implement them. Imagine if your line of reasoning were applied to car manufacturers... only one car company would exist.
What you can consider is a Non-Disclosure Agreement (NDA), in order to put some teeth on enforcing cases where employees leave and take company property with them to use elsewhere (e.g. sensitive documents, etc).
As for other people's suggestion to using Non-Compete Agreements (NCA), and this is more of a personal take, but I would suggest you avoid going down that road. There're many reasons for this, and I could go into it in length, but I'll keep it brief:
- This is very immoral, as you'd be punishing your employees by making them unemployable1, depriving them of their right to make a living and look for work in their own field/area, even if you lay them off.
- If you think that they can simply "get a different job", that makes no sense, as their actual experience is in the work they just spent their time doing for you, so
- I have rejected otherwise good job offers precisely because of an NCA (that wanted me to spend a minimum of 2 years without working in my field).
- It's arbitrary, since the company arbitrarily decides who/what is concidered a "competitor", thus making it impossible to find a company in the surrounding area that isn't covered... again
For example, if I work 5yrs at company X doing Y, and I either leave or get laid off, then I'll be effectively unemployable for, say, 2 years. If my last 5 years were doing Y, why on earth would someone else hire me to do Z instead, when I don't have experience there? Worse, after the hypothetical 2-year NCA period expires, I will have no professional experience to speak off during that time, making it even more difficult to even get noticed.
In a technical field like mine, which you say is what your employees do, I wouldn't get past the technical interview stage. Thus, the former employer has used an NCA to setup their employees for future failure.
I could go on, but any reasonable person should've gotten the picture by now.
How do I make my employees stay and honor their agreements when the business takes off?
Presumably, this is where lawyers get involved, but given the kind of agreement that you want to force upon them, I strongly advise you to reconsider your general approach.
If you're not going to guarantee them work for some period of time, you can't expect to impose such a requirement on them (i.e. that they won't leave for a better opportunity, real or perceived).
If you're not going to keep paying them during the NCA unemployment period after your employment relationship is terminated (e.g. 2 years or whatever is stated in the NCA), then the idea of getting them to agree to not work in their field after their employment is terminated, and potentially pursuing legal action against them for finding a similar job at another company to get them fired, is fundamentally immoral.