Share this
Do Waterfall and Agile hybrids make sense?
by Carl Weller on 10 August 2016
Image: Grist Mill Water Wheel - Sudbury by Massachusetts Office of Travel & Tourism, used under Creative Commons CC BY-ND 2.0.
There have been various opinions and articles lately on the merits of marrying Agile, Scrum and Waterfall approaches to create hybrid models, for example Planning and Managing Development Projects: The Hybrid Way by Michael Wood.
We tend to be very pragmatic at Equinox IT, focusing on what works in practice. We’re the last place you would find uber-enthusiasts, swearing allegiance to one “right” project management or software development framework.
However, that is not to say that we are completely Laissez faire, and some thought does need to go into whether Waterfall and Agile hybrids actually make sense. One of the things that Michael Wood’s article (as well as others linked within that article) seem to miss is that Agile methods use a completely different control framework from Waterfall.
Waterfall uses a ‘defined process control’ framework
Waterfall is based on industrial age approaches and uses the same ‘defined process control’ framework that we would see in assembly line manufacturing. These practices are based on an assumption that all dependencies inherent in the work can be understood and managed. Often there is a substantial investment required to get processes this tightly controlled (e.g. BMW spend 500 million Euros on the assembly line for the new 3-series). The problem is that software development is not generally set up in a way that generates the same output every time in the way that assembly line manufacturing does.
Waterfall may still work for software development, but would be most useful when the problem being solved is obvious (the relationship between cause and effect is obvious to all) or complicated (the relationship between cause and effect can be identified by an expert). An example would be rolling out an off-the-shelf product with very little change from the base configuration.
The terms obvious (simple) and complicated, as well as complex and chaotic come from Dave Snowden’s Cynefin Framework, which you can find more about in his 2007 HBR article A Leader's Framework for Decision Making.
Agile and Scrum use an ‘empirical process control’ framework
Agile and Scrum use an ‘empirical process control’ framework, that exercises control through frequent inspection and adaptation. The process supports uncertainty, where specifications are imperfectly defined and the outputs are not about conformance to standard, but rather changing the plan frequently as more is understood about both the features required and the challenges inherent in building the system. Often people don’t know exactly what they want early in the project, but usually discover it as they go along. Unfortunately, Waterfall projects lock in those things we thought we wanted at the very time when we knew the least about the project.
Scrum and other Agile approaches rely on transparency (e.g. use of big visible charts, an open backlog and open estimation), and inspection and adaptation. In Scrum there are feedback loops between Sprint Planning and Sprint Review that ensure there is high transparency and the plan is adapted using performance data on a regular cadence.
The reason a Sprint is so powerful is because Scrum creates a "container" around the team for that 2-4 week period (where the requirements are pretty well understood and there are no distractions such as change control). The team can actually just get on with it. For more on this topic see my previous article The important role Scrum bubbles play in Agile project success.
I’d argue that software development approaches that support an ‘empirical process control’ framework are increasingly more suitable to today’s world. Many problems we face are not obvious or complicated, but are complex (the relationship between cause and effect can only be identified in retrospect, not predicted in advance). The rapid changing nature of the world means that increasingly software development will be complex, simply because it’s not just the creation of software that holds unknowns, but also the environment we are delivering it into is changing and evolving. We may see projects needing to “pivot” mid-stride to borrow a term from The Lean Startup.
This article from Ken Schwaber is a few years old now, but does a great job at elaborating on what I am talking about - Waterfall, Lean/Kanban, and Scrum.
Does mixing Agile / Scrum and Waterfall make sense?
For me, not really. Let’s assume that your problem space is most likely complex and not obvious or complicated.
Where this is the case, then using standardised techniques, formal analysis and planning approaches from Waterfall is unlikely to be of value. Mixing these practices in with Agile or Scrum practices doesn’t make sense, because the Waterfall practices are planted firmly in ‘defined process control’ which won’t help you run a successful software development project for a complex and unpredictable problem.
I can see that, where your organisation has stringent QA requirements that must be met before releasing to production, a Scrummer-Fall model may be a useful mechanism (i.e. Agile requirements elaboration, build, and testing up to pre-production, with a transition to a final formal testing period before deployment). Given there should have been a high level of engagement with the business, and you should have been using modern technical practices during development, the final testing phase shouldn’t throw up anything major. There are other hybrids out there that are also worth investigating, so long as you are aware of the nature of your problem space.
But for me it’s not so much about ‘are these two approaches compatible?’. More important is ‘how do I help technologists and business people bridge the gap?’. In other words, ‘how do I help people adopt the right approach needed to solve the nature of problem they are facing?’. Here hybrid approaches like PRINCE2 Agile and more bespoke methods may have a role to play. However, care must be taken.
My main issue with the PRINCE2 Agile approach is that, if you look at it in a simplistic way, it treats a Sprint Plan as a Team Plan to deliver a Work Package (i.e. Agile is just a collection of technical practices and a different work allocation model). That's where you can end up with abominations such as Water-Scrum-Fall (formal requirements phase >>> "agile development" >>> formal testing phase). This completely fractures the fast-cycle feedback loop between the team and the investor, destroys any value from ‘empirical process control’, and lands us back in ‘defined process control’. You need to set up the overall PRINCE2 control framework with sufficient “flex” for agility (something PRINCE2 themselves acknowledge).
The pragmatic way forward
There is no one right way, and, as the Cynefin framework itself would say, you need to experiment, amplifying successes (doing more of what works) and dampening failures (doing less of what doesn’t work).
However, if you do try a hybrid approach to project management and software development, which marries together Agile / Scrum and Waterfall approaches, do so with your eyes wide open. Give consideration to what the different frameworks are trying to achieve, and don’t mix things in such a way that you get the worst of both worlds.
For me the difficulty, as always, is not so much the choice of approaches as it is communicating the differences and agreeing a middle ground. I don't have all the answers and I wouldn't believe anyone who said they did!
You may also be interested in my article The Scrum Product Owner challenge that may be affecting your project.
Carl Weller is a Principal Consultant based in Equinox IT's Wellington, New Zealand office.
Share this
- Agile Development (153)
- Software Development (126)
- Agile (76)
- Scrum (66)
- Application Lifecycle Management (50)
- Capability Development (47)
- Business Analysis (46)
- DevOps (43)
- IT Professional (42)
- Equinox IT News (41)
- Agile Transformation (38)
- IT Consulting (38)
- Knowledge Sharing (36)
- Lean Software Development (35)
- Requirements (35)
- Strategic Planning (35)
- Solution Architecture (34)
- Digital Disruption (32)
- IT Project (31)
- International Leaders (31)
- Digital Transformation (26)
- Project Management (26)
- Cloud (25)
- Azure DevOps (23)
- Coaching (23)
- IT Governance (23)
- System Performance (23)
- Change Management (20)
- Innovation (20)
- MIT Sloan CISR (15)
- Client Briefing Events (13)
- Architecture (12)
- Working from Home (12)
- IT Services (10)
- Data Visualisation (9)
- Kanban (9)
- People (9)
- Business Architecture (8)
- Communities of Practice (8)
- Continuous Integration (7)
- Business Case (4)
- Enterprise Analysis (4)
- Angular UIs (3)
- Business Rules (3)
- GitHub (3)
- Java Development (3)
- Lean Startup (3)
- Satir Change Model (3)
- API (2)
- Automation (2)
- Scaling (2)
- Security (2)
- Toggles (2)
- .Net Core (1)
- AI (1)
- Diversity (1)
- Testing (1)
- ✨ (1)
- August 2024 (1)
- February 2024 (3)
- January 2024 (1)
- September 2023 (2)
- July 2023 (3)
- August 2022 (4)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- March 2021 (1)
- February 2021 (2)
- November 2020 (2)
- September 2020 (1)
- July 2020 (1)
- June 2020 (3)
- May 2020 (3)
- April 2020 (2)
- March 2020 (8)
- February 2020 (1)
- November 2019 (1)
- August 2019 (1)
- July 2019 (2)
- June 2019 (2)
- April 2019 (3)
- March 2019 (2)
- February 2019 (1)
- December 2018 (3)
- November 2018 (3)
- October 2018 (3)
- September 2018 (1)
- August 2018 (4)
- July 2018 (5)
- June 2018 (1)
- May 2018 (1)
- April 2018 (5)
- March 2018 (3)
- February 2018 (2)
- January 2018 (2)
- December 2017 (2)
- November 2017 (3)
- October 2017 (4)
- September 2017 (5)
- August 2017 (3)
- July 2017 (3)
- June 2017 (1)
- May 2017 (1)
- March 2017 (1)
- February 2017 (3)
- January 2017 (1)
- November 2016 (1)
- October 2016 (6)
- September 2016 (1)
- August 2016 (5)
- July 2016 (3)
- June 2016 (4)
- May 2016 (7)
- April 2016 (13)
- March 2016 (8)
- February 2016 (8)
- January 2016 (7)
- December 2015 (9)
- November 2015 (12)
- October 2015 (4)
- September 2015 (2)
- August 2015 (3)
- July 2015 (8)
- June 2015 (7)
- April 2015 (2)
- March 2015 (3)
- February 2015 (2)
- December 2014 (4)
- September 2014 (2)
- July 2014 (1)
- June 2014 (2)
- May 2014 (9)
- April 2014 (1)
- March 2014 (2)
- February 2014 (2)
- December 2013 (1)
- November 2013 (2)
- October 2013 (3)
- September 2013 (2)
- August 2013 (6)
- July 2013 (2)
- June 2013 (1)
- May 2013 (4)
- April 2013 (5)
- March 2013 (2)
- February 2013 (2)
- January 2013 (2)
- December 2012 (1)
- November 2012 (1)
- October 2012 (2)
- September 2012 (3)
- August 2012 (3)
- July 2012 (3)
- June 2012 (1)
- May 2012 (1)
- April 2012 (1)
- February 2012 (1)
- December 2011 (4)
- November 2011 (2)
- October 2011 (2)
- September 2011 (4)
- August 2011 (2)
- July 2011 (3)
- June 2011 (4)
- May 2011 (2)
- April 2011 (2)
- March 2011 (3)
- February 2011 (1)
- January 2011 (4)
- December 2010 (2)
- November 2010 (3)
- October 2010 (1)
- September 2010 (1)
- May 2010 (1)
- February 2010 (1)
- July 2009 (1)
- April 2009 (1)
- October 2008 (1)