From the Agile Manifesto to Evolutionary Contract Models

First published in The Agile Journal, 5 August 2011

Republished in The Agile Zone, 12 September 2013

"Constant development is the law of life, and a man who always tries to maintain his dogmas in order to appear consistent drives himself into a false position".

- Mahatma Gandhi

Contracts, and why you can't avoid them

The Agile Manifesto places customer collaboration over contract negotiation. Yet it must be admitted that it would take a hardline ascetic to work without a contract at all. Look at it this way. Without a contract of some form to bind parties into an agreement, the prospects of being paid start to look bleak. This might not faze a yogi who eschews material wealth, but to employees of the tech sector an unreliable pay check presents a serious barrier to productivity. Consequently, without a contract, the client's prospects of receiving a deliverable that is fit for purpose can be expected to diminish as well. No matter how uncool and unhip the drafting of legal agreements might be when compared to the visceral joy of crafting code, agile developers need something in place upon which the expectations for delivery can be predicated and managed.

In many ways Gandhi was a hardline ascetic, and an examplar of the sort of intellectual who can live without written contractual guarantees from others. Yet he was also a canny lawyer, and in retrospect we can see he was right to assert that constant development is the law of life. It can be argued that the agile revolution has been founded upon this very principle.

When good contracts turn bad

There is a definite tension between the need to express contractual obligations, and the need to embrace change.

On the one hand, a contract needs to be precisely formulated and exacting. A well-written one will leave no room for ambiguity in interpretation, and the authoring of such documents has rightly become the domain of legal experts. We may enjoy painting lawyers as grasping types who relish discord and the opportunity to harvest fees, such as when the parties to an agreement fall out and seek redress through the courts. However, the measure of a good contract is the extent to which it satisfies the stakeholders. In fact a well-written contract will help to keep people out of the courtroom. It should also be remembered that legal agents can incur negative publicity and professional liabilities from a poorly drafted agreement. So in truth, contract lawyers are motivated to produce terms that are defined as tightly as possible, and which are unlikely to result in acrimonious wrangling.

On the other hand this drive towards unambiguous contractual specification makes change hard to accommodate. This is a problem. If market conditions change during a project - perhaps something which can lead to the business case being questioned or even invalidated - then the terms of the contract still hold. If the requirements are only poorly understood at the beginning of a project - but are subsequently clarified - then the original scope in the contract also still holds. The requirements and conditions which were enumerated within the contract are everything. Subsequent clarification and changing conditions count for nothing. Where is the client's best interest now?

What this shows is that although we need contracts in order to deliver products and services, it is horribly impractical to apply them in extremis. We need flexibility, and the traditional approach to squaring this circle is the Change Control Mechanism.

Welcome to Hell

The Change Control Mechanism started with the best of intentions. Since contracts become out of date as requirements and the business environment change, why not formalise a process of amendment? The original contract doesn't have to be set in stone. It's perfectly admissible to replace one contract with another one. If that's too cumbersome, then it is equally possible to replace outdated portions of a contract with an up-to-date addendum, as long as it is signed and understood by the impacted parties.

Unfortunately, the devil is in the details:

We clearly need a better way to "square the circle". To be more specific: it is clear that industry needs to replace the established Change Control Mechanism with a contractual model that supports Agile practice and a more evolutionary take on requirements.

Lifting the Curse

A few months ago Gabrielle Benefield (Scrum Training Institute) & Susan Atkinson (Gallen Alliance Solicitors) wrote a paper titled The Curse of the Change Control Mechanism. I reckon they're right. That's exactly what Change Control has become - a curse. The alternative is to look at the problem afresh, and to promote an "evolutionary" contract model which better supports change.

I and other proAgile staffers have been applying such contractual models since 2009, originally as part of the Codeworks DEV programme. A key plank of that initiative was the incorporation of an Agile-friendly contract model which redresses the balance between stakeholders, and which holds clients and suppliers to be equal partners in successful ongoing delivery.

Evolving better requirements

Technically, the core of the problem that needs to be solved can be reduced to two observations:

In short we need to capture requirements quickly enough so they don't lose value...but not so quickly that uncertainty remains a problem, and not so slowly that "paralysis by analysis" becomes an issue.

If we use an iterative approach then we can constantly track the changing requirements. Assuming each iteration lasts only a few weeks, we won't get even close to reaching that six month half-life, and the requirements set will be allowed to evolve. At some point, requirements will have been clarified to the extent that the additional return on investment in clarifying them further will not be justifiable. But if we are also releasing incrementally, by the time that happens we'll have delivered a viable system. And as we know, that "proof through ongoing delivery" is a key part of the Agile sell.

The Evolutionary Contract as a baseline for Agility

Seen in this light, the duties of an Agile-friendly "Evolutionary Contract Model" are threefold.

Firstly, the contract must define the Agile process that will be adhered to during the project:

Secondly, the relationship between cost, time, and scope has to be nailed down. There are two common Agile approaches to this:

Thirdly, the initial "first cut" of requirements needs to be specified:

Special case contracts

There are two special cases of Agile contract for which the heads-of-terms will differ from those outlined above.

Firstly, Lean projects:

Secondly, there are public sector projects:

Contracts, flaming torches, and the pitchforks of the baying mob

Let's not forget that there is a meaty and earthy purpose to an agile contract. It doesn't just set the parameters within which work can be progressed. Nor is it there just to make sharp practice harder. The contract also explains to the signatories - albeit in perhaps rather dull legal prose - what their responsibilities are.

Why point this out? Well, remember that certain parties might not actually know what they are expected to do in order to satisfy their side of an agile contract. For example, a client might genuinely not know that they are expected to participate once every four weeks in the evaluation and signoff of deliverables, or how seriously the exercise is meant to be taken. If they don't appreciate this - if assumptions are made, and these details are left unsaid or glossed over - then a client might well cut up rough when final delivery doesn't meet their expectations. A PR disaster may be in the offing. Upset customers might seek redress publically as well as privately. Flaming torches and twitching pitchforks might start wending their way up the hillside, baying for Agilista blood.

That's why it’s important to baseline expectations in contractual form. Again, the purpose is not to define the scope in detail - it is simply there to establish a first-cut of requirements and to define the mechanism through which changes can be managed, and value delivered on an ongoing basis. It establishes the terms upon which an Agile understanding between client and supplier can be encouraged to develop.

Conclusion

Remember that a well written contract will actually keep the signatories out of the courtroom as well as away from each other’s throats. Even if the relationship between client and supplier gets no further than a mutual toleration predicated on acceptable ongoing delivery, we can be justified in claiming success.

"It may be true that the law cannot make a man love me, but it can keep him from lynching me, and I think that's pretty important."

- Martin Luther King, Jr.