I will be discussing about the technical(related to development) aspect of Non-Disclosure Agreement (NDA) on this post. So don’t think of finance, law or press related aspects of it. I may agree with the necessity of keeping secret the financial situation/decisions of projects or necessity of hiding the fight of two managers from public or press.
NDAs may sound like a brilliant idea to protect your company’s technical know-how at first but they are as unnecessary as metal-detectors in your company’s gate. It is unnecessary because just as in the metal-detector-gate example, anybody who has a real intention to break it, actually will break it. Moreover there is mostly nothing to protect inside!
Let’s take a look on these two cases: Firstly; a good developer who develops a company’s ‘priceless’ software will eventually gather the necessary information and experience to redesign it. Even if the project is huge, he will at least be “fluent” in his part. When he is unhappy and find another job, he will naturally use those experiences and maybe help his new company to develop a software to compete with his former company’s. So what? He shall not use the knowledge, hacks and tricks in the new ‘home’ just beacause of the NDA? No agreement can discard this reality. If you are after to protect your workers’ experience then make them happy and don’t make them have to leave. If you are after to prevent other companies to make exact copies of your ‘super good’ product then use patents and trade laws, not NDAs to block developer’s freedom.
The second one and my main subject in this post is the fact that almost no company really has something secret and unique that should be protected by the silence of their developers. There are only a few exceptional companies(which are not in Turkey) and one digit numbers will be enough to count them! What will a software company in Turkey may want to hide from the public? Their use of JSF? Their custom CRM design? Their “customized” single sign on framework? What would possibly present in the developed code or in the life cycle of development that is not available to the internet?
What actually NDAs hide?
NDAs actually hide the stupid and funny decisions, error-prone procedures and mind twisting bureaucracy. I know companies with tens of million dollar-projects yet still not having a standard code-review procedure! They have the developers signed the NDA shit so that they don’t spit the word out to inform public about the stupidity of the whole software development cycle that the company uses to create million-dollar projects.
If a developer wants to inform the public about the idiotic decisions that managers with insufficient IQ makes everyday, and inform other developers about the fact that how these idiotic decisions pull down the efficiency of development, they cannot! Because NDA has a tiny phrase about procedures and management and individuals bla bla bla cant be disclose to bla bla… Great, so let other developers learn by living while let the public reputation of the firm stays high. Good job companies, good job…
Use NDAs to protect your customers’ personal information, your companies financial situation and so on… but let developers share their experience freely because they already share it under the hood.