Category: contract
Upfront planning
Last weeks I spent huge amount of time negotiating with the renovation company about the details of our upcoming bathroom renovation. You know, all this bargaining, market research and choosing between a multitude of option takes time. To make things even more complicated our house manager happened to be very peculiar about what he can allow to be changed - it triggered yet another round of negotiations and renegotiations even though we signed the contract already.
The biggest problem is that there is a decent element of uncertainty. Some technical decision can be made only after they start works and break the walls. Therefore we have to nail down plan B and plan C well in advance not to be offered a bill with the "additional costs" after the fact.
While it is possible to utilize fixed price, fixed scope contracts with the agile methods, fixed contracts are still discouraged in preference of time & materials or Pay per Use. The reasons is that in most if not all cases software development is not a mass production, but a new product development. It is rarely possible to just clone the existing system for a new client. At best, when implementing tunings for a new client, we can try copying the existing approach or best practices. Therefore in order to build something that is not known to the last bit in advance we have to unfix at least one angle of the quality triangle
Agile software development methods are sometimes criticized for the inability to rely on. Agile project managers are unable to produce the fixed upfront effort-time-costs estimation. Sometimes it is even the core argument of the waterfall process proponents.
In fact agile manifesto principles "Customer collaboration over contract negotiation" and "Responding to change over following a plan" do not state that contracts and plans are useless. Agile community recognizes the value of contracts and plans, it is just so, that the agile developers value collaboration and responding to change more. If there is a possibility to create the upfront time and costs estimation, the agile team