There is an extremely negative side effect to the extreme length of non-disclosure agreements in the software industry. What happens if you are let go due to a layoff, but the layoff itself is covered under the NDA?
I know of a layoff that occurred less than a month ago. The people who were affected by this layoff aren't allowed to talk about the layoff for another 11 months.
Needless to say, this can be a bit of a pain in the ass for those who are now hunting for jobs. "So, where did you work?" "[Company X]." "What did you do there?" "I'm not allowed to say due to my NDA." "Why did you leave?" "I'm not allowed to say under my NDA."
About five years ago, I did some development contract work on the side for the psychology department of a local university. My NDA with them said that not only was I not allowed to discuss my project with anyone other than my contact person, but I'm not allowed to acknowledge that I even worked on the project. At least my contract with Utah State University for similar contract work was less stringent on my NDA.
To those that were affected, I feel for you. I missed out on several job opportunities because in my final interview, I had to spend three minutes explaining what I could not do under my NDA/non-compete. All I can say is there are many creative ways of getting around an NDA/non-compete agreement, and if all else fails, move to Texas, where they wouldn't hold up anyway.