How to Protect Yourself in the Assignment of Intellectual Property in Software Development Contracts?