Category Archives: Hybrid Agile Methodolology

How to Make a Hybrid Agile Process Work

Have you given any thought to “How to make a hybrid agile process work”? Some people claim that hybrid Agile projects don’t work at all. For example, I recently saw an article on LinkedIn entitled “Why Hybrid Agile-Waterfall Projects Fail” that caught my eye.  I’m not surprised at this article:

  • It takes some skill to make a hybrid Agile process work successfully and
  • Anyone who would literally try to combine an Agile methodology with a Waterfall methodology to create a hybrid methodology is asking for failure

That’s not the way to do it

Blending Two Recipes

This should not be a matter of literally combining an Agile methodology and a Waterfall methodology.

  • That would be like trying to take a recipe for Italian food with a recipe for Chinese food and literally trying to mix the steps and ingredients from the two recipes together to create “Italian-Chinese” food
  • A good chef would never even attempt to do that. However, he/she might create an entirely new recipe that blends together some of the aspects of Italian food with some aspects of Chinese food

Creating a Hybrid Approach

It takes a lot of skill to create an effective hybrid approach and doing it effectively is like the difference between a “chef” and a “cook”. 

When I talk about creating a hybrid approach, I try to avoid the words “Agile” and “Waterfall” if possible. Those words give people the impression that you are literally combining two different methodologies together like combining two food recipes: 

  • I prefer to think of a hybrid approach as the appropriate blend of an adaptive approach and a plan-driven approach
  • The words “adaptive” and “plan-driven” convey an entirely different meaning than “Agile” and “Waterfall”

Creating a hybrid Agile approach:

  • Doesn’t mean that you’re trying to literally combine two very different methodologies by mixing them together
  • Means that you’re creating a blended approach with the appropriate amount of emphasis on being “adaptive” versus being “plan-driven”

An Example of a Real Hybrid Approach

Some years ago, I was responsible for managing a very large development program for a US Federal Government agency:

  • It had a fixed-price contract associated with it and a fairly aggressive delivery schedule
  • However, the customer wanted some level of flexibility in the details associated with defining requirements 
  • I created an approach for this situation that was very successful that I have called “The Managed Agile Development Framework“.

The Managed Agile Development approach:

  • Does not attempt to literally combine an Agile methodology and a Waterfall methodology
  • Instead, it wraps a plan-driven layer at the “macro” level around a standard Agile/Scrum process at the micro level

Here’s a diagram that shows what it looks like:

How to Make a Hybrid Agile Process Work

You might say:

  • “That’s not a hybrid Agile-Waterfall model”
  • “It’s only a standard Agile development process with a plan-driven layer wrapped around it”

And, that would be correct.  There has been no attempt to actually mix-and match a phase-gate Waterfall methodology with an Agile methodology.

How To Make a Hybrid Agile Process Work

This is a very flexible model – that is why I call it a “framework” rather than a “methodology”.

1. Project Planning

You would start out a project by at least developing high-level requirements with estimates of the costs and schedule for completing the project.  Those estimates can be as detailed as you want them to be. That’s what makes this model so flexible.

  • You can have a relatively “thin” layer of planning with very high-level requirements and less-detailed plans or
  • A “thicker” layer of planning with more detailed requirements and planning

The most important thing is that there has to be a common understanding between the development team and the customer about how detailed the requirements and plan are:

This model will not work without a spirit of trust and partnership between the customer and the project team.  The customer and the project team must agree to working collaboratively as the project is in progress to:

  • Further elaborate requirements,

  • Continuously refine the plan for completing the project, and

  • Resolve any trade-offs that may be necessary to stay within the budgeted cost and schedule.

2. Managing Changes

As the project is in progress, any changes to the project requirements made at the “micro” level need to be fed back into the planning at the “macro” level.

By agreement with the customer, there should be enough slack built into the plan so that minor changes can be absorbed easily without a change to the overall plan. Only more significant changes might require trade-offs and adjustments. When trade-offs are needed to stay within the budgeted cost and schedule, the customer may need to either:

  • Adjust the planned cost and schedule as necessary, or
  • Reduce the scope of some of the requirements if necessary to fit within the planned cost and schedule.

This is a fairly simple model but it works and it can be easily adapted to a wide variety of projects. However, note that this is not a simple step-by-step cookbook approach. It takes some skill to make this model work successfully.

Matching the Level of Uncertainty in the Project

A good strategy is to match the design of the hybrid approach to the level of uncertainty in the project:

  • A project with a lower level of uncertainty might lend itself to a more plan-driven approach particularly if predictability is important to the customer of the project.  That would mean putting a higher level of emphasis on developing a “thicker” layer of planning at the  macro-level
  • A project with a higher level of uncertainty would probably require a more adaptive approach to further elaborate the plan as the project is in progress.  That would mean that the level of planning at the macro-level would probably be much “thinner”.

Additional Resources

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

What is a “Hybrid Agile” Approach? Is There Such a Thing?

What is a hybrid Agile Approach? Is there such a thing? I recently came across an article on the Internet that was posted in several places entitled “The Moment of truth: There Is No Hybrid Agile“.

  • This article is so full of stereotypes and misconceptions about “Agile” and “Waterfall” that I felt that I had to respond to it. 
  • It is typical of many articles that position “Agile” and “Waterfall” as two binary and mutually-exclusive alternatives with no middle ground between the two.

What Are the Flaws in This Thinking?

Treating Agile and Waterfall as Discrete, Binary Opposites

The biggest flaw in this thinking is that this article and many others like it treat “Agile” and “Waterfall” as if they were individual, discrete methodologies. They also position “Agile” and “Waterfall”  as diametrical opposites of each other.  That’s not very accurate.

“Agile” and “Waterfall” are not really discrete, individual methodologies at all and both of those terms are used very loosely.  In common usage. Neither of those are individual, discrete methodologies:

  • Many people  may think of “Agile” as being synonymous with Scrum but that is not really accurate.  “Agile” is much broader than Scrum – it is a way of thinking defined by the Agile Manifesto
  • “Waterfall” is also not a single, discrete methodology. In today’s world, many people use the term “Waterfall” for any plan-driven methodology that is not Agile.  What about RUP and other iterative approaches that probably wouldn’t be considered to be Agile?  Is that “Waterfall”?

A Better Way of Thinking

Instead of thinking of what people commonly call “Agile and “Waterfall” as individual discrete methodologies, it is more accurate to see it as a continuous spectrum of approaches from heavily plan-driven at one extreme to heavily adaptive at the other extreme like this:

What is a hybrid agile approach?

If you think of it in that way, it is much easier to see the possibility for lots of approaches in the middle of that spectrum that blend the right level of plan-driven principles and practices with more adaptive principles and practices to fit a given situation.

Here’s what some methodologies would look like plotted on a spectrum of heavily plan-driven versus heavily adaptive:

Adaptive vs Plan-driven

As you can see from this diagram, “Agile” is not a single approach and there is not just one way to do “Agile”:

  • Kanban is more adaptive than Scrum, and
  • Even within Scrum you will find different styles of implementation from
    • Simple team-level projects which may tend to be more adaptive to
    • Larger more complex multi-team projects which may tend to be somewhat more plan-driven

Putting It Into Practice

The most important point to get out of this is that there is not a clear and well-defined boundary line between “Agile” and “Waterfall” as many people seem to think.

Fitting the Approach to the Nature of the Problem

Many people make the mistake of performing a methodology mechanically. They think they need to do it religiously and “by the book”(That’s true of both Agile and other non-Agile methodologies)

  • The right approach is to fit the methodology to the nature of the problem rather than force-fitting all problems to a given methodology (Agile or non-Agile)
  • It takes more skill to do that but it definitely can be done.
  • It requires understanding the principles behind the methodology and why they make sense in a given situation rather than doing a given methodology mechanically

If you think of methodologies as being rigid and prescriptive,

  • It will be difficult to see how two seemingly disparate methodologies could be blended together in the right proportions to fit a given situation.
  • On the other hand, if you understand the principles behind the methodologies at a deeper level, it is much easier to see how they could be complementary to each other rather than competitive.

Learning to be a “Chef”

It can take a lot more skill to learn how to blend different approaches together in the right proportions to fit a given situation. In my book on Agile Project Management, I use the analogy of a project manager as a “cook” and a project manager as a “chef”.

A Good “Cook”

“A good ‘cook’:

  • May have the ability to create some very good meals, but
  • Those dishes may be limited to a repertoire of standard dishes.
  • And, his/her knowledge of how to prepare those meals may be primarily based on following some predefined recipes out of a cookbook”.
A “Chef”

“A ‘chef’, on the other hand,

  • Typically has a far greater ability to prepare a much broader range of more sophisticated dishes using much more exotic ingredients in some cases.
  • His/her knowledge of how to prepare those meals is not limited to predefined recipes, and
  • In many cases, a chef will create entirely new and innovative recipes for a given situation
  • The best chefs are not limited to a single cuisine. They are capable of combining dishes from entirely different kinds of cuisine.

That’s the challenge for project managers and agile practitioners in today’s world – we need more chefs and fewer cooks.

What is a Hybrid Agile Approach?

In simple terms, a hybrid Agile approach is one that blends the plan-driven principles and practices with Agile (adaptive) principles and practices in the right proportions to fit a given situation.

Managed Agile Development Framework

An example of that is the Managed Agile Development framework that I created. It simply wraps an outer layer of project-level planning around an Agile development process.

Managed Agile Development Framework

The outer layer can be as thick or thin as necessary to fit the situation.

The Origin of This Approach

I originally developed this framework when I was managing a very large government program for a US government agency.

  • The government agency had to have some level of predictability over the costs and schedules of the program.
  • The program was so large that it actually had some level of congressional oversight so some level of predictability and control was essential
  • However, within that outer envelope, the government agency customer wanted to have flexibility in many of the detailed requirements.
  • We were able to find the right balance of control and flexibility to satisfy both needs.

What Are Examples of Hybrid Agile Approaches?

Some of the most common examples of hybrid Agile approaches are:

Agile Contracts

  • The government program I mentioned is a good example
  • I also have a case study in my book on General Dynamics UK, Ltd. They successfully used a hybrid Agile approach to manage a large defense contract for the ministry of defense in the UK
  • I just finished building a new house. I naturally had a contract with the builder that defined the cost and schedule for the home. However, the builder offered a lot of flexibility to make changes even as the construction of the house was in progress (He charges for changes, of course)

Large, Enterprise-level Projects and Programs

It’s almost impossible to successfully implement some large complex enterprise-level projects and programs without integrating some level of project and program management.

  • A good example of that is the Harvard Pilgrim Healthcare case study that is written up in my latest book.
  • The project involved over 100 Agile teams and involved replacing almost everyone of HPHC’s most critical business systems over a period of time
  • The whole effort involved a lot of moving parts that had to be carefully planned and synchronized. It’s impossible to imagine how that could be done without a sufficient level of project and program management to guide and manage the overall effort

Other Business-driven Initiatives

Many people have the mistaken belief that you need to force the entire company to be agile in order to adopt an Agile development approach. That isn’t necessarily true.

Fitting the Approach to the Business

A business has to be designed around whatever critical success factors are most important for the business that they’re in. Becoming agile may not be the only factor and may not even be the most significant factor.

  • For example, some companies are in very cost-competitive industries and succeed primarily based on operational excellence to lower their costs as much as possible
  • Becoming more agile may play an indirect role in that but it isn’t necessarily the most important factor
Product Development Companies

On the other hand, in a company that is technology-driven that succeeds on bringing leading-edge products to market as quickly as possible, it’s much easier to see how a pure Agile approach might be a very strong and direct driver of the business

  • Agile was originally developed for companies that do product development and that’s where it works best.
  • In companies whose primary business is not developing products per se, there is typically more of a project-oriented approach.
  • The company has to typically evaluate a potential portfolio of projects to determine what mix of projects and programs is going to have the greatest impact on their business.
  • Then they need to monitor the execution of those projects and programs to determine if it is really delivering the expected returns.

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.