>You can protect your data, and your code. But you can't really stop someone quitting a job at your company, working somewhere else and reimplementing a software system that worked well. It might take years to do it, but probably not decades.
I don't even think this case is undesirable. If we were welders, it would be absurd to be prevented from using a welding technique we learned on the job at a new employer. System design is just a technique.