Can fixed bid contracts be executed in agile fashion? Can we figure out and fixed schedule and / or cost in agile? I have seen, heard and faced a lot of debate and opinions around this. All were clarified when I read Agile Estimating and Planning by Mike Cohn. When estimated and planned in correct agile way, you realize that agile is in fact a far better and suitable for such contracts!!
But what are contracts any ways?
According to The Free Dictionary, contract means
- An agreement with specific terms between two or more persons or entities in which there is a promise to do something in return for a valuable benefit known as consideration.
- Commitment – To perform, to do, entrust
- Accountability – Liable to being called to account; answerable.
And what purpose do the contracts serve? And how?
- Contracting is like *crafting* a high level scope statement
- We identify & explicitly state constraints which are fixed
- We identify & explicitly state constraints which can be flexed
- And we keep referring and reminding ourselves of the contract every once in a while
Most of the managers and leaders tend to think that agile is not suited for fixed price or fixed schedule kind of contracts or engagements. Question that I ask them is, how do they see the famous Project Management Triangle or triple constraints in an agile environment?
Agile, for me, is an inverted iron triangle:
From contracts perspective, traditionally the question asked in RFP phase was:
What is the cost and time that you quote for a fixed set of scope?
And traditionally, even after knowing (or rather having lived) the concepts of triple constraints, customer would try and lock in all 3 constraints. Which we know is practically not possible. However, flexing time and cost is rather difficult while approaching the end of the project due to obvious reasons.
Whereas in Agile world, time and cost are anyways fixed. Scope is flexed. By the end of the project almost 85 to 90 % “value” is already delivered, tested and ready to be pushed into production. In most cases, 50% “value” is already in production and dolling ROI. Flexing scope is rather easy while approaching the end of the project!!!
From contracts perspective, define more stable parameters in master contract and more flexing once in SOW, more high level in master contract and the finer once in SOW.
Have fixed price stories in SOW!! Have fixed price stories with re-estimate option in SOW!!!
What are your views about contracts in agile? How do you define / manage / plan contracts in agile?