In class on Tuesday, during a discussion of computing ethics, the students were of the opinion that it is unethical for companies to require that they sign away all intellectual property rights for the duration of their employment. They were also speculating as to whether it is unethical for them to even agree to work for such a company.
Such clauses are common, of course, because programming jobs do not lend themselves to being defined in terms of "hours worked". Since usable work can be (and is) produced at all hours of the day or night, it makes sense from the company's point of view to claim ownership of all ideas produced by the employee.
It was interesting to juxtapose this discussion with an experience I had at a conference (MAICS 2014) the previous weekend. Two research presentations were given by employees of a company, NextIT, which develops interactive customer-service systems for its clients. Now, I do not know if NextIT maintains an intellectual-property clause in its employee contracts, but it was notable that its employees were presenting the technical details of innovations they had created in order to make their systems work better, with the encouragement of their employer.
This suggests that disclosure of ideas is not necessarily the commercial-suicide scenario businesses seem to fear. Removing such clauses may well attract stronger employees with a higher sense of goodwill without really doing any damage to the company's business plans. It would be very much worth examining whether the harm done by such clauses exceeds their (alleged) benefits.