Earlier this year, I wrote a couple of articles on protection of intellectual property called “The dark side of CRM” (article, article, article, article). Today a colleague stumbled on one of the articles, and he asked me “Why would you even protect your code? Even Microsoft is embracing open source?”.
He considered my opinion to be a stone aged one.. *hmmz, makes the author wonder about his age*
We discussed this for a while and my opinion was (and still is):
It depends on the job you are doing. In case you are an in-house developer then you probably don’t need obfuscation. In case you build commercial solutions on top of Dynamics CRM, you seriously have to consider to use obfuscation. Otherwise you might end up not being paid for your labour.
He came with the argument that CRM is an enterprise product, and we are dealing with enterprise customers. He really loves the ability to decompile code in order to find out what the code is doing.
Sure it can be quite handy to find out why software is behaving in a certain way. But still I believe that certain intellectual property should be protected, no matter what.
Suppose you have been working for over a year to build a complex piece of code, and your competitor is able to literally copy and paste your work for his own product. Leaving you with nothing but competition… How would you feel at that moment?
I can imagine a scenario in which you obfuscate certain parts of your application (especially when working with multiple dll’s in your solution that you merge via ILMerge). You could obfuscate the sensitive parts in your application, such as the licensing mechanism, and leave the non sensitive parts as is.
A penny for your thoughts
Am i too paranoia? Should I trust in the honesty of humanity and don’t protect my code (incl. sensitive intellectual property)? What do you think?
Please, share your thoughts with me. What would be your strategy?