I don't want to go into a lot of details but I have recently explored non-compete agreements myself and this what the gist of the consultaion explained: It is hard to enforce a lot of NC agreements for far too many reasons to list. However, this is my understanding at this point - If you hire a person that already has experience in the work you are hiring them for then a NC can be required as a condition of employment but the only provisions that can be enforced are those regarding the use of the company's name, logo, customer list, vendor list or any copyrighted or proprietary documents, tools or methods.
However, if you were to consider hiring a person with no experience in the field, and you will train them using your methods, standards and policies then a NC can be a condition of employment and they can choose to decline it and walk away if they do not wish to agree to it. Most NC are for 24 months and can be enforced since you trained them and gave them access to your proprietary methods which are not disclosed to the general public.
Current employees including those that are recently hired cannot be forced to sign a NC as a condition of continued employment - it has to be agreed to and signed prior to employment.
There is a lot more to it so I tried to summarize it. By all means get YOUR OWN legal opinion before creating one.