We often hear that Waterfall development cannot be iterative since it was not designed to be. It was built in a time before the internet and mobile applications, a world much slower than today – a time when software requirements were unlikely to change. Despite this, waterfall development processes are still widely used. But today, we have a new kind of Waterfall: an evolutional Waterfall, and it is fundamentally different to the traditional model.
The evolution of Waterfall has occurred as a result of a clear need to be reactive to feedback and more adaptable to change. The traditional Waterfall methodology has had a makeover, replaced by iterative versions of Waterfall such as Evolutionary Development and Evolutionary Project Management otherwise known as EVO.
The evolutionary development model (EVO) enables the development of products that better fits users’ needs, reduces costs and risk, and enables faster incremental improvements to existing products. All this could be the description of an Agile development method.
Related reading: A Blended Agile Methodology Combines Agile with an Alternative
So what is the difference, and why use EVO? Just like Agile development, Evolutionary Development (EVO) is a software development method that is based on incremental product releases, frequent delivery, and dynamic plans & processes. It claims to be a simple to implement methodology. As to the benefits, there are many.
How Can You Benefit from Evolutionary Development?
With Evolutional Development, the traditional Waterfall development cycle can be split into smaller incremental waterfall models. The resulting timely feedback enables the development team to alter product requirements and plan changes to the product, only possible by having the product available at the end of each cycle.
The main benefits of Evolutionary Development (EVO) are:
- It helps significantly reduce the risk of software projects
- Reduces costs by examining and analyzing the issues of each phase
- Minimizes critical and serious defects during testing
- Improved response to change
- Enables continuous process improvement
- Increased team motivation and collaboration
- Products created with EVO will better fit user needs and market requirements.
Evolutionary Development makes it possible for marketing and sales teams to have access to documentation during the early stages of development, and to start the sales cycle before the product is released. It enhances collaboration and transparency across the lifecycle.
To reduce the number of late changes and the number of defects during testing is often cited as the main reason to try Evolutionary Development. Introducing EVO, however, is not so easy. One of the most challenging factors is the need to have a clear, and continuously updated vision of the product that meets users needs. You also need to consider that some developers might have problems with the change – breaking down work into iterations could result in a kind of a culture shock.
Finally, you'll need to accept that the EVO requires more effort than projects developed with a traditional Waterfall methodology since incremental development is a time-consuming effort. You need to set up interaction with consumers early, and that requires a shift in thinking about development, and usually in company culture too.
Recommendation: How to get Evolutionary Development (EVO) right
- Compile a standard development plan that can be used for each cycle
- Choose an engineer to become the technical manager. Their task will be to develop an EVO plan and trace progress.
- Choose a liaison manager to be a single point of contact for all the users and developers involved
- Make project management decisions in time so as not to delay development
- Avoid overwork or burnout of developers (potential risk!)
- Balance management focus (shipping code, collecting feedback, and making decisions)
Evolutionary Development (EVO) with codeBeamer ALM
codeBeamer ALM is a complete and fully integrated Application Lifecycle Management solution that covers all phases of the development process including requirements, test, and risk management as well as demand management, development management, and DevOps. In addition, it offers a comprehensive wiki and advanced document management functionality.
codeBeamer ALM software supports Agile, Waterfall/V-model, and EVO as well as Hybrid development processes. Regardless of methodology, it supports process control for compliance with regulations and standards in safety-critical industries.