There’s endless debate in the industry around contracting models and which is the best model, to further confuse the subject there’s always a “Yes but” in the mix, over the last 10 years its been “Yes, but what about contracts with agile” before that it was “Yes, but what about contracts with iterative development”
In a software context a contract is a written or spoken agreement that is intended to be enforceable by law between a customer and a supplier on how a product or part of the software development process will be delivered.
Holistic Software Engineering – Contracts
I’ve recently noticed a backlash by some customers against the Time and Materials contracts used by some suppliers using “agile” teams. This negative customer reaction is founded on the customers belief that their suppliers are failing to deliver and simply burning their money. I’ve seen the suppliers do little to help themselves in this situation by deploying ever-increasing resources onto these projects simultaneously increasing the burn rate and making delivery less likely.
The end game of this customer reaction is a reversion to “good old” Fixed Price contracts in an attempt to get the project portfolio and spending under control as the trust relationships between supplier and customer have broken down.
There is problem with the way we view contract models: Fixed Price is portrayed as an old fashioned approach with big up front requirements definitions, but better control of spending, whereas Time and material is portrayed as a model chosen by customer who cannot decide what they need and is open to abuse by unscrupulous suppliers. This inaccurate portrayal of the two contract styles is masking the truth and we need to think about contracts in a slightly different way.
Long term fixed price contracts are unsuitable for high risk projects; risks are a source of variability that a fixed price model doesn’t easily cater for, we have seen many attempts to incentivise fixed price models, often resulting in negative behaviours by both supplier and customer.
The time and material model is effectively time-hire and can work well in a high trust supplier customer relationship, there is the risk however that if the supplier is not well directed by effective customer engagement the supplier may leave the contract without delivering anything of value. This feels like a trap for the customer.Attempts to monetise Story Points are doomed to failure as they’re based on an abstract relative measure. Normalising them defeats the purpose of having them in the first place. Points based contracts lead to inflated point estimates, non-requirements being treated as stories (bugs, changes, overhead objectives etc.) and inaccurate velocity.
The Big Secret
The secret though, is that because of the way each of these choices is implemented in reality, neither actually makes any difference. In practice these models are actually the same!
In reality long term Fixed Price contracts tend to be broken down into shorter fixed price phases. We don’t often see a 20 month fixed price contract, it’s normally broken down into a framework commercial agreement and then 6 or 3 month fixed price periods.Similarly a successful Time and Materials model is normally staged (review points every 3/6 months) with a cap placed on the maximum spend.Both models have the option to continue or quit at the phase/stage boundaries. Where both models fail is the inability of supplier and customer to make informed decisions on whether to continue or quit at the stage boundaries.
“Ultimately the best incentive for good performance is continuation of work.”
A continued revenue stream is of more value to a supplier than a paid for change request, or an extension of a couple of months to finish a project. Incentives in contracts cause negative measurement driven behaviour and are typically gamed dysfunctionally. Instead a successful supplier builds trust and has a track record of delivery, making them a strong option for future work. A supplier that fails will damage their relationships and track record, they’re less likely to be picked again.
This idea of using supplier history can even be formalised as the Weighted Fixed Price model, although that might be too formal in some cases.
A simple solution is to shrink the fixed price phases to a small amount of time (e.g. in line with a release cadence if there is one or every quarter if not). If using T&M then insert review points at the same points. These review points give a point for evidence based decision making where the evidence must be:
- Open and Honest communication between supplier and customer
- Working software, delivering some Features or Integration Scenarios
- Delivery of Business Value
The H-Model of Software Engineering combines the various different concerns in the nexus of Release Planning – from a requirements, architectural, planning, integration and quality perspective. But also, from a contractual perspective.
In either Fixed Price or Time and Materials the levers of control are already there, regular review points based on Releases – just use them.