Tag Archives: Level of Predictability and Control

Agile Contracts – Does it Work? How Do You Do It?

A lot of people may think that it is inconsistent to impose cost and schedule constraints on an Agile project. It is difficult, but it definitely can be done – one of the areas where that becomes essential is Agile contracts.

Agile Contracts

An Example of Agile Contracts

For example,

  • I once managed a large federal government project that had all the typical government contracting requirements for cost and schedule milestones; but,
  • At the same time, the government customer wanted some level of flexibility to work out detailed requirements as the project progresses

The Relationship With the Customer

Does that sound inconsistent? It might be depending on the relationship you have with the customer. Obviously, this will only work if there is a spirit of trust and partnership with the customer.

  • The customer needs to collaboratively work out any trade-offs between the scope of the requirements and the cost and schedule of the contract as it progresses
  • If there is more of a typical “arms-length” contracting relationship or some kind of adversarial relationship, it’s not going to work at all

Doing this generally requires a hybrid Agile approach that blends an Agile development approach with a plan-driven “shell”.

  • The plan-driven shell provides some level of predictability and control over the overall scope, cost, and schedule of the project while
  • The Agile development approach operates within that shell to provide some level of flexibility and adaptivity in the detailed requirements

That approach is described in more detail in my article on the “Managed Agile Development Framework“.

Money for Nothing; Change for Free

Jeff Sutherland has created a very nice model for this called “Money for Nothing, Change for Free”. Jeff’s approach is based on two primary clauses in an Agile contract:

Change for Free

The “Change for Free” clause is based on the idea that the customer can make any change they want provided that the total contract work is not changed.

  • This allows new features to be added provided that lower priority items are removed from the project.
  • I have documented a case study in my book on how General Dynamics, UK successfully used this approach on a large government contract in the UK.

Money for Nothing

The “Money for Nothing” clause is interesting. It recognizes the fact that in many projects:

  • The customer always asks for everything that they could possibly need, but
  • If you prioritize those items and deliver the highest priority items first, at some point you will reach a point of diminishing returns where the cost of developing incremental features exceeds the value that those features provide.

This clause:

  • Allows the customer to cancel the contract at that point. The customer saves 80% of the cost that would have been spent to complete the remaining items; however,
  • The contractor receives a fee of 20% of the cost for early cancellation
  • That makes it a win/win for both the customer and the supplier.

What Kind of Agile Contracts Does This Apply To?

This concept is not limited to fixed-price contracts – that’s only the extreme case.

  • It can be applied to almost any Agile project where there is a need for some level of predictability and control over the costs and schedule of the project
  • Very few people get a “blank check” to do an Agile project without any expectations of what will be delivered and what the estimated cost and schedule of the project are likely to be

Additional Resources

You will find much more detail on this in my Online Agile Project Management Training.

Managed Agile Development Framework – A Hybrid Approach

I’ve seen many people ask a question like “should I use Agile or Waterfall for a project? That excludes the possibility that there is a hybrid approach that provides the benefits of both approaches. The Managed Agile Development Framework is an example of a hybrid approach that is very easy to implement

Background

A few years ago, I was responsible for managing a large government project.

  • The project required meeting some defined cost and schedule milestones
  • However, the customer wanted to take an Agile approach to defining the requirements.

In response to that project, I developed an approach which I call “The Managed Agile Development” framework that would satisfy those two seemingly inconsistent goals. The framework consisted of two levels:

LayerDescription
Macro LevelThe “Macro” level was the outer envelope of the project. It was focused primarily on managing overall contractual requirements
Micro LevelWithin that “macro level” envelope, we were still able to implement a fairly flexible Agile development approach at the “micro-level”
Managed Agile Development Framework

How Does It Work?

There are two layers in the framework as shown in the diagram above. The “Macro” layer is plan-driven; but it can be as “thick” or “thin” as you want it to be. The “Micro” layer can be any Agile development approach such as Scrum.

  • The macro-level framework is a plan-driven approach. It is designed to provide a sufficient level of control and predictability for the overall project. It defines the outer envelope (scope and high-level requirements) that the project operates within
  • Within that outer envelope, the micro-level framework utilizes a more flexible and iterative approach based on an Agile/Scrum approach. It is designed to be adaptive to user needs

Trade-offs to Consider

Naturally, there are tradeoffs between

  • The level of agility and flexibility to adapt to change at the “micro-level” and
  • The level of predictability and control at the “macro-level”.

It is important that both the client or business sponsor and the development team need to agree on those trade-offs. The framework provides a mechanism for making those trade-offs by making the “macro-level” as “thick” or “thin” as you want to fit a given situation.

Increasing Predictability and Control

Increasing the level of predictability and control requires:

  • Beefing up the macro-level,
  • Providing more detailed requirements at that level, and
  • Implementing at least a limited amount of change control

Increasing Agility

To increase the level of agility:

  • You can simply eliminate the macro-level altogether or limit it to only very high-level requirements
  • Other elements of the framework can be easily customized or eliminated depending on the scope and complexity of the project and other factors

Change Control

A question that often comes up is “How do you handle change control?”. The answer to that question is that:

  • You have to design enough slack into the milestones at the “macro” level to allow detailed elaboration of requirements to take place in the “micro” level.
  • However, when there is a significant enough change in the “micro” level that would impact achievement of the requirements in the “macro” level, that should trigger a change to the “macro” level milestones.

General Approach for Agile Contracts

This general approach can be used on almost any project. Check out this article for more detail on Agile Contracts:

Agile Contracts

Additional Resources

You will find much more detail on this in my Online Agile Project Management Training.