Musings on Holistic Software Development
Agile Contracts: The Big Secret
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.
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 Big Secret
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.