Update: Don't forget to read Part II.
Yesterday on CodeSnipers and his blog, Peter Hawkins wrote about Non-disclosure Agreements (NDA's) from the perspective of the person handing them out. While everyone believes *their* NDA is legitimate, I'm going to share some areas where you may want to review.
First, is your NDA really an NDA?
A Non-disclosure Agreement is normally based on the concept of “once you're involved with us, you're going to learn sensitive information. You are not allowed to share it with anyone else.” This is quite straightforward and relatively simple. Anyone who has ever known a secret from a friend knows this concept and has either learned to practice it or has lost many friends. It's the same concept but with a legal aspect.
Or is your NDA really a non-compete?
A non-compete is completely different from an NDA and focuses entirely on preventing the signee from working with companies or efforts in your same space. Last year I was offered the priviledge of signing an NDA which included a non-compete clause which prevented me and CaseySoftware from working on any ecommerce application for the next five years. This is not reasonable and any software development organization or developer with any sense is simply going to consider you a bozo and move along. If you're serious about finding a good person/team, you can't afford to have smart people consider you a bozo. A few years before CaseySoftware, I joined a firm which attempted to disallow me from working with any firm that had a presense within 50 miles of a customer site. Since one of their biggest customers was the FBI, that clause would have prevented me from working in much of the populated portions of North America and near most world capitals. Not reasonable.
Is your concept/implementation novel?
If your idea – or “secret sauce” as Peter calls it – is truly unique, then there might be something important and vital to protect. Just two months ago, someone contacted me about having CaseySoftware work on a module for dotProject. Naturally, I assumed they had an interesting and innovative concept to implement or at least something on the roadmap that they simply needed sooner. When I actually spoke to the person, he told me of a great concept to “share information between systems in real time!” In case you haven't read this blog, we have a thing called The Domino Bridge which does exactly this between two systems… with dotProject and SugarCRM as the first pair of applications involved. Obviously, he came to the right people, but I can't promise not to disclose something which I've already blogged about for months.
Finally, what are you really protecting?
Are you really trying to protect your ideas or are you trying to protect your customers? Protecting your ideas somehow is great and required quite often, but there's nothing you can do to protect your customers. They will talk about their other needs, about their experience with you, and even about their customers and competitors. If you are trying to prevent your signee from contacting them about anything unrelated to the project, you're fighting a losing battle. We recently worked with a customer who had a default NDA which included “cannot solicit our customers for anything” sort of clause. While I respected that, it meant that while we were doing software development on their Inventory Management System (their core business), I couldn't even talk to them about blogging, project management, or even painting their office. 😉
I requested that it be rephrased to “cannot solicit our customers for any type of work substantially similar to service provided by us”. The customer was fantastic and was happy to oblige because growing business helps everyone involved…
So what am I trying to say with all of this? Simple… before you consider asking someone to sign an NDA, make sure it is a) protecting something valuable, b) protecting the right things, and c) not protecting too much. Failing to do one or more of these things will make you appear to be a bozo and/or you'll only get people who don't have enough sense to evaluate these things reasonably. If you're trying to make a run at a business, you don't want either to happen.