Hybrid projects: diagnosing a contradiction
2024-08-26
What do we mean by "hybrid projects"?
There are two ways of creating a product in a project: predictive and adaptive. The adaptive approach is also called Agile, and the people in the Agile community refer to the predictive approach as waterfall.
For a few years now, some people and resources have been talking about a third alternative they call "hybrid"; a combination of the two primary approaches. The best of both worlds, they say.
We can't say what a hybrid approach is until we say what we mean by predictive and adaptive. So, let's take a few seconds to do that.
The predictive approach
A predictive approach is one that contemplates at the beginning, considers everything, and comes up with a thoughtful design of the product. Following that, we also build a complete plan on how to create the product.
Most projects are done like this and should be done like this.
The adaptive approach
The predictive approach doesn't work very well when the product's acceptance is not an objective measure, but depends on the unpredictable preferences of end users. After all, human perception is complicated.
In such cases, instead of trying to predict what will satisfy users, we have to use trial and error. We create a special environment, go on with the project, try different things, and based on the feedback we get from end user representatives, try to understand what the best next step can be.
Many people think of adaptive approaches in terms of their relationship to change, but that's misleading. We always have change, and what we do in Agile (adaptive approaches) is not really accepting change requests but discovering our path. The feedback we receive should be used to discover our best path in the future, not just to fix what was done in the past. Again, the latter is the case in all projects.
End users can't really understand all subsets of the product. It should be working subsets, representing the real end-to-end interactions with it. So, a subset of software that has only a few features works, but the foundation and structure of a building without the walls, windows, and the rest won't work.
The mixture
A hybrid approach is a combination of predictive and adaptive approaches. We don't want to be fooled by labels, so let's replace the labels "adaptive" and "predictive" with their definitions:
A hybrid approach is a combination of an approach where we take our time at the beginning of the project and contemplate what the best product is, design it carefully, plan how to build it, and then proceed with executing the project. We do it without spending too much time in the beginning as we know we can't predict the acceptance of the product well, and instead of a detailed upfront design and plan, we go ahead, execute the project, and discover its path through careful trial and error.
Do you see the contradiction?
Alternatives
There are 3 ways of thinking about combining the two approaches in this context:
- On the same product at the same time: A combination of Agile (adaptive) and predictive is not possible in the same product at the same time unless you lower your expectations of what adaptive or predictive is to very superficial aspects, and we shouldn't be that superficial!
- On the same product but at different stages of its lifecycle: I've heard some people talk about using Agile to design something and a predictive method to build it, or vice versa. This doesn't work because the adaptive approach is very vulnerable and you can't have true adaptation unless it's for the whole lifecycle. If your design is not adaptive, the whole product is fixed, and there's nothing left for an adaptive approach to explore and discover. On the other hand, the design can't be adaptive unless the build comes with it because the only way to be truly adaptive is to show the working output to the user and get feedback; a design on paper that non-technical people can't understand won't work.
- On different subproducts: The third alternative is to have different subproducts in the project that are not too dependent on each other and use different approaches for each of them. This can work if there's not too much dependency and if the whole setup makes sense. However, this is NOT what we can easily call a "hybrid" because the two approaches are not really used together. This is almost like using adaptive in one project and predictive in another project and then calling it a hybrid.
Where did it come from?
The whole hybrid idea came from a small group of people who were into structured project management and didn't like Agile very much but weren't brave enough to challenge it. So they wanted to continue to do what they were doing but add some superficial elements from the other camp to differentiate themselves from the crowd of people providing services in the structured project management systems and also use some of the reputation that Agile approaches had gained. Some users and practitioners liked this "solution" very much because they didn't have to worry about being blamed for not being Agile anymore.
As Agile approaches passed their peak of hype and lost some of their power, the hybrid camp got a little more power, but they never became popular or actually used because of their contradictions and ineffectiveness. It was just a passing trend for some people to sell their consultancy services. This idea probably won't die, though; it will turn into a zombie.
— the end —