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
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:
|Macro Level||The “Macro” level was the outer envelope of the project. It was focused primarily on managing overall contractual requirements|
|Micro Level||Within that “macro level” envelope, we were still able to implement a fairly flexible Agile development approach at the “micro-level”|
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
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
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:
You will find much more detail on this in my Online Agile Project Management Training.