Opinion
After the PDC Party at Universal Studios, I joined up with some bloggers at the Wilshire and had some interesting conversations. It is a good thing that the PDC offered such an opportunity for the blog community to get together - there is so much talent active.
One of the conversations was with Robert McLaws. We talked at some length on the issues surrounding software IPR. Robert is a component vendor and is also an MVP.
It is now very easy to reverse engineer compiled code in the .net world (I believe that code obfuscation simply makes this more difficult, rather than preventing it). How should we react to this? The obvious answer is to attempt to hide our code more effectively, but I do not think that this is the appropriate response. In my opinion a better response is to be more functional, secure and reliable than your competitors.
What if a competitor reverse engineers your product? I believe that software products carry the 'signature' of an 'originating mind'. If this mind is removed from the product then that product will lose coherence. This is critical. A product without coherence is extremely difficult to maintain, to extend with new functionality, or to integrate with other applications.
In a world where application collaboration is increasingly important (Web Services etc.) and where functional cycles are repeating with increasing rapidity then as product developers we should be spending our time and energy pleasing our customers by making better products. By all means utilise code obfuscation, but don't imagine that this will protect your IPR.