“I like the mix of something farm like and something futuristic and artsy mixed together. It's kind of both my worlds”. These lines by American fashion designer Jeremy Scott is very relevant to the world of agile transformation. As I engage with clients, who are undertaking the agile journey I have learnt that a pure play agile framework does not work in many scenarios due to organizational, regulatory, cultural and business needs. This has led to the evolution of Hybrid models. In the simplest form, a Hybrid model can be implemented by executing certain processes such as requirement planning and design as per waterfall model and requirements, coding, testing and deployment as per agile frameworks. In a nutshell, it adopts the best of both worlds, the rigor that waterfall offers and the speed that agility offers which can yield significant business value.
Here are my top five use cases where Hybrid models would work well:
- Use case 1: Enterprise Agile adoption. Consider a scenario where there are 20+ teams building multiple systems with feature and component teams. Typically feature teams building the user interface will use an agile framework, but a component team building services may choose waterfall. This is because, building services requires significant planning and designing to build reusable components for all the scrum teams. In this scenario feature teams would do well to adopt a framework such as scrum where user stories are written built and tested with high degree of automation, continuous testing and deployment practices but the consuming services are built in a waterfall manner.
- Use Case 2: Regulatory environments: Consider a scenario where there are specific deliverables necessitated to comply with regulatory bodies such as Sox and HIPAA as an example. Requirements and planning for these will best be waterfall driven, but the building of software can be agile with user stories for specific features and adoption of agile practices. Compliance testing will naturally be waterfall driven because of quality gates due to audit needs.
- Use Case 3: Programs where interfacing applications are legacy and have a rigid release cycle. In many scenarios programs such as new digital implementations interface with legacy systems, that follow a rigid two to three year release cycle. In this case release management, program requirements, program governance, system integration testing, user acceptance testing are waterfall driven whereas features built on the digital platform are built using agile frameworks.
- Use Case 4: Multi-vendor model: At times, multiple vendors are building a product which does not allow independent agile teams to deliver working software.In such cases requirements and user acceptance testing can be waterfall driven and design, code, and test of individual features, driven by each vendor could be agile driven.
- Use Case 5: Hybrid as a transition to Agile. This is relevant for organizations, which are in nascent stages of agile adoption and are used to rigor in processes with toll gates and a hierarchical way of working. In this scenario adopting agile technical practices such as continuous testing, pair programming, test driven development along with formal waterfall planning, requirements, and design procedures would yield speedy business results.
Working high quality software, delivered with speed acceptable to the business is the true measure of success. Stay committed to the result, but flexible in the approach and success will follow.