Focus on the outcome, not a contract

Always focus on the outcome you're trying to achieve (i.e. meeting a user need). To do this you will need to employ different methods with different types of contracts. To make this more manageable (and increase your chance of success) keep everything constrained in terms of time, teams and budget rather than deploying overly-rigid contracts or processes. 
Organisation Responsiveness