You should first talk to your software provider about the needs of your organization.
You also need to inquire about technical support. Usually, this is in the range of 3-5 minutes. All it takes is for you to interconnect the program with its appropriate obfuscator. Skater has designed their obfuscating software for use per machine. You can also go for an option that runs from a server. Examples that are worth of mention include mangling names, encoding strings and control flow. It also protects your programs when you are doing upgrades. The Skater .NET software provides code protection in numerous ways. You can equate this with someone trying to solve a puzzle whose end result does not make any sense. Anyone trying to crack your codes will not get through to doing so. What they cannot crack is the intricacies. In the event that you need an update every year, this can also be arranged.
One last word, you should not forget the way such software works. Once you have acquired the software, downloading and installing it takes a short time. Other people trying to copy the same will see the program working in the way it was intended. That is how your program's safety is boosted.
Private and Public members names obfuscation scrambles names of classes, methods, variables, and other assembly members. It makes assembly code reverse engineering much harder by obfuscating names. Some Skater settings allow to generated names that will prevent recompilation.
Public members in dll libraries are advisedly reserved from obfuscation because they are intended to be used in external assembly code. If you are sure some of public members are not to be accessed from outside, you may want to obfuscate them.
For exe executables you may consider the assemblies to be self-contained, and set obfuscation of all possible names very aggressively, including Public Members.