Even though the flexibility enabled by Agile development propelled it from being a fringe approach to a popular software development methodology in the last decade, the Waterfall approach is still well ingrained today, particularly in large organizations. In last week’s blog post, Agile Series Part I: Does an All-Agile Approach make sense?, we looked at balancing the risks of an all-Agile approach with the needs of an organization. It is tempting to think that all projects should be handled in an Agile way.
Indeed, I am convinced that all projects would benefit from the improved collaboration and communications encouraged on Agile projects. However, collaboration and communications are just two attributes of Agile projects, and we must consider wider parameters that influence project success or failure. What if you are not in a position to evolve a large organization’s institutionalized legacy development process and are required to use Waterfall methodology?
How Do We Ensure that Stakeholder Expectations Are Met?
First, it is helpful to understand the common pitfalls within a Waterfall approach. The end product is delivered to the customer in a “big-bang” deployment but often misses one of the three project constraints; budget, schedule or scope. In addition to a fixed budget, tight timeline, and continually evolving requirements, large-scale projects also have to contend with shared resources, especially in matrixed organizations where developers, database specialists, and enterprise architects may not be assigned to the projects full time. An ideal way of mitigating these common Waterfall risks is to utilize a hybrid Agile-Waterfall approach to engage business stakeholders within each phase of the project and provide the flexibility to adapt to stakeholder’s evolving needs.
Typically within a traditional Waterfall project, there is intense Business and IT interaction in the requirements and design phases as stakeholders participate in joint-application-design (JAD) sessions and sign off on business requirement documents. This is followed by a “quiet period” while development is completed. During that quiet period, communication traffic often slows, causing business stakeholder confidence to wane. Ultimately with a Waterfall project, how do we know that what we develop meets the stakeholder’s expectations?
Wet Agile: A Hybrid Approach to Project Management
A hybrid Agile-Waterfall approach maintains the traditional Requirements and Design phases, but divides the development and testing phases into smaller iterations. This way, the stakeholders see the evolution of the application and provide feedback along the way, thus minimizing rework. The design is properly vetted at the beginning of the iteration and ample time is allotted for integration at the end. Here are some recommendations to help team members become comfortable and successful in this hybrid development approach:
- Daily Stand-up meetings: Identify the day’s priorities and discuss concerns within the team without wasting a lot of time
- Involve the Stakeholders: Have regularly scheduled checkpoints with the business stakeholders to prioritize what is to be developed, validate the functionality to be delivered in the subsequent iteration, and identify key target dates
- Shorter Development Cycles: Creates tangible value to keep the business stakeholders engaged as they provide feedback back to the project team
- Group Requirements into User Stories: Utilize story-based requirements to scope out the project plan
- Project Retrospective: Focus on lessons learned after each iteration. Continuous improvement is paramount.
Making the switch to a hybrid Agile approach is not easy. While this approach is not Agile in its purest form, it does lend to small wins; project teams can absorb changes while still delivering on their commitments. These teams will progressively elaborate on Agile principles over time which will ultimately lead to a greater focus on customer satisfaction, frequent value based delivery, and close cooperation between the business and project team. With years of project planning and execution experience, SEI can help your organization determine if agile or a hybrid agile approach is right for you.