Time and Materials vs. Fixed Price: Choosing the Right Cooperation Model for Software and Hardware Development