When we think of hybrids, we generally think about cars and going green. There are also a handful of other hybrids that come to mind, hybrid bicycles, hybrid golf clubs, and even hybrid dogs (this was a new one to me…). In general, hybrids are the union of two similar functions that have a different focus combined to do one thing really well, meant to give you flexibility and adaptability without sacrificing quality. Let’s take a hybrid golf club for example; it’s a combination between a fairway wood and a long iron. It gives you the ability to hit a golf ball long distances with pinpoint accuracy, and often from a tough lie. The best of both worlds.
So how does this apply to adopting Agile across the enterprise?
Real World Agile as a Hybrid Process
Well, let’s say that we’ve already gone through and had a successful Pilot Team, and now we’ve started to scale Agile across the enterprise. As this process begins to take shape any large organization will likely have a mixture of teams; some that already adopted Agile, some that may be in the process of migrating to Agile, and others still running a more traditional (waterfall) approach to software development. You may also find organizations that will always have a need to use the traditional approach. Many of the Agile purists out there may not agree, but there will likely always be projects or products that people feel are not a good fit for this methodology. Having these two processes coexist seamlessly in your development organization would fit the definition of a “Hybrid.”
With that in mind, the ability to support a Hybrid Process, or a term we’ve used lately – Real World Agile, is extremely important to being successful at your Agile implementation. We see this impacting three areas of your Agile adoption:
- Support ongoing waterfall development alongside Agile development
- Support transitioning to Agile as adoption spreads across your enterprise
- Support changes to your Agile methodology as you inspect and adapt
So let’s talk about each one of these in a bit more detail.
Supporting two different development methodologies requires the ability to enforce a structured, traditional, waterfall approach while also being able to adapt to a more dynamic Agile approach. In order to deliver a single product, this requires parallel support for the methodologies of both teams. Facilitating the integration of stories from the Agile team and integrating that with the code from the traditional team are necessary for this delivery. You must also be able support the tools that support both of those methodologies; for example a newly implemented Agile project management tool and an in-house issue tracking system, coexisting in this heterogeneous environment.
To aid in the transition to Agile, we also need flexibility to migrate a traditional development team and their traditional process to an Agile development methodology cleanly, quickly and easily. Taking them off a very restrictive branch and label-based tool, which might put constraints on how they are implementing your process is going to impact and impede that adoption from an Agile methodology perspective.
Lastly, we’ll need an ability to support a variety of processes with multiple development staging areas to accommodate work-in-process, code reviews, testing, and accepted work of the Agile team. Each one of these staging areas will need continuous integration functionality, one of the practices adopted very early in the migration to Agile. And as we know from one of the key Agile principles, inspect & adapt, we need to be able to change this process as we decide what works and what doesn’t work during our retrospectives.
Support for all three of these process variations will not only determine how easy or how difficult your migration to Agile goes, it may very well determine the success of your Agile adoption across the enterprise. And as the use of Agile methodologies continue to expand throughout the industry, the need to support a hybrid process inside organizations will become more prevalent. Without the proper principles, practices, and tools, the methodologies of Agile and waterfall will not coexist as seamlessly as the functionality of my #4 Hybrid club. Fore!