This is a guest blog post by Jacopo Romei. Author of the Italian version of the book Extreme Contracts, and author of an upcoming book on the same topic in English.
In 2011 I had the ultimate bad experience that pushed me to investigate how I could craft better agreements with my customers. I had already spent months fighting a battle to bring home a web development project for a large Italian non-profit. Requirements were very volatile, the product owner—the person in charge of defining them and their priority—was candid enough to declare “I don’t understand anything about the web.” In general, in that organization, getting even the slightest focus on the project they had assigned to us seemed impossible.
We had set up an iterative development agreement to deliver working software every two weeks so that we could use it as an effective measure of progress. Iteration by iteration, we had tried to make sense out of the mess of requirements that kept emerging from the product owner and other random users, all the while hoping to converge on a successful conclusion of the project within the planned deadline. We had signed a fixed price agreement with a fixed delivery date. That meant—now I know—only one thing: they had the upper hand, and had no incentive to reduce the ever-growing volatility in their requirements. Unsurprisingly, the project ended up being very late, after the advance payment we got was way overspent.
“How can I avoid this in the future?” was the question I had to answer…