Different Types of Contracts You May Require When Developing a Product