Agile software development methodologies have moved towards mainstream adoption in recent years as businesses seek to build applications quickly by iterating fast and testing frequently.
However, enterprises are realising that ditching the traditional waterfall approach entirely is not the best approach when developing large critical systems, experts claim.
“The agile world is going into its second period. This means getting more realistic about what it takes to build big systems and moving away from the ‘religion’ of agile,” said Bill Curtis, SVP and chief scientist at software analysis firm CAST.
“We are seeing an increase in people who realise they want to blend the methods for the more business-critical systems.”
CAST recently analysed architectural and code quality weaknesses in 186 different enterprise applications built in Java-EE. The CRASH Report found that over three quarters of the robustness, security, and changeability scores for applications developed with a combination of agile and waterfall methods were higher than the median scores for projects using agile alone.
Curtis warned that, by using agile only in development, companies risk producing poor code quality that can lead to security issues or frequent outages in applications, including bank transaction systems or the customer-facing systems used by retailers.
“The danger of just doing agile for large applications is that you can get the architecture wrong upfront, and then it is a nightmare to get it reconstructed,” he said.
“What the mix of the waterfall method does is give attention to the overall architecture of the system at the start, and then after that you can get the benefit of the rapid feedback on what you are developing by doing it in short cycle releases.”
According to Forrester Research stats, many are already taking this combined approach. For example, in a recent survey of 150 agile adopters, 54 percent said they were using waterfall methods as well.
Forrester principal analyst serving AD&D professionals, Diego Lo Giudice, said that attributes of agile development lend themselves well to smaller scale development – for example, innovations around web and mobile – but for larger, enterprise-wide systems a range of techniques should be adopted.
“In large organisations you don’t only have those type of small projects - you have big programmes, you have long term roadmaps,” he said.
“So you can’t just apply agile as you do at the team level, you need to scale it. That is where some of the principles and practices of more traditional techniques come into play, and agile alone won’t cut it.”
In fact, many of the attributes considered to be part of waterfall methods are essentially traditional enterprise practices, he said. “We need to distinguish between agile at the team level, which can be 100 percent agile, and at the enterprise level, where you have to bring back some of the enterprise-type of practice that can be thought of as waterfall.
“So that might mean doing some application architecture in parallel to the agile folks which are doing project management and so forth.”
Lo Giudice adds that, as use of agile matures, enterprises are becoming wary that they need not adhere to one methodology – be it waterfall, or the different forms of agile – leading to the creation of hybrid concepts such as ‘water-scrum-fall’.
“For most organisations the adoption path is rarely ‘let me adopt agile in a religious way’. When they start to really apply it within the organisation they realise that they have to tweak things and they need to start adding some of the governance they have to make it work."
He added: “What happens when you scale agile is you have to start putting in more of the traditional practices which become useful and helpful. And if you don’t then you could fail – but most organisations are smart enough to figure that out.”