The difficulty with contracts is that it is about trust. Here lays the roots for success or disaster.
If no trust exists, the henceforth dreaded process is established. After tough negotiations, the development team starts but does not collaborate with the customer. They just build what is written in outdated requirements. A subpar solution is shipped and the relationship with the customer is deeply damaged.
We can do better. We shall collaborate, trust each other, and create an awesome product. This is the essence of being agile.
How shall we be agile and work the lean way in a contractual environment? By contractual I mean no time and material approach.