by RAVI SONECHA
With continued legislative pressure being placed on financial services institutions as a result of the 2008 crisis, there is strong demand for organisations to conform to regulation via strategic project deliveries. Firms have used these requirements as an opportunity to overhaul their legacy systems in favour of enhanced software. The delivery of these often large-scale, software-centric projects commonly utilise one of two project management methodologies: Waterfall or Agile. While they ultimately lead to the same end result, the two methodologies vary widely in their approach. Agile project management, which focuses on designing, building, and testing segments of the project chunk-by-chunk, intuitively appears to be the most suitable route to meet project objectives that are subject to change. Waterfall project management, although proven and widely used, can appear rigid in comparison.
What are the Waterfall and Agile project management methodologies?
Traditionally used in the construction and manufacturing industries, the Waterfall project management methodology is a linear approach to software development. Akin to a flowing waterfall, each phase of a project’s lifecycle takes place in a strict sequence, as the approach articulates that retrospective amendments to requirements and code builds are both costly and impractical. In this regard, coding begins once all requirements have been gathered and a solution designed. The testing then begins once all code has been built (see Figure 1). Generally, the business does not see a version of the proposed solution until User Acceptance Testing has commenced.
Figure 1. The Waterfall project management flow:
Now the Agile project management methodology, unlike the Waterfall methodology focuses on incremental, iterative stages. It does not have a comprehensive planning and designing phase upfront. It is considered to be a modern approach to software development, as the Agile methodology accommodates changing requirements by using frequent iterations to produce a working product that can be presented regularly to stakeholders (Figure 2).
Figure 2. The Agile project management flow:
With an Agile methodology, business representatives are present throughout the cycles. Their presence allows for efficient face-to-face communication and regular constructive feedback. It also advocates the use of cross-functional teams, incorporating planners, designers, developers and testers, who collaborate simultaneously within the iterations.
The Pros and Cons – Waterfall or Agile?
Use of the Agile project management methodology for software development has been increasing rapidly. Even in the late stages of a project, changes to requirements can be absorbed without serious impact on time and budget. As the business collaborates closely with the developers, user validation is constant and feedback can be incorporated swiftly. In addition to this, working products demonstrated post each iteration provide stakeholders with a view into progress and maintain transparency with regard to the success of the end project delivery. The Agile methodology is particularly useful when there is incremental business benefit from each delivery, as stakeholders can benefit from business improvements throughout the duration of the project.
The Agile approach, however, is relatively new to the industry and will require industry practitioners to adjust to its process. This is especially true with regard to project governance and documentation, which can be neglected with focus primarily on developing a working product. The lack of appropriate documentation might pose a risk to the project should members of the project team leave. The Waterfall approach on the other hand, which requires full requirements and design documentation sign-off prior to construction, provides this reassurance and allows all design questions to be closed out prior to development and testing.
Agile – is this the future?
In the current industry environment where businesses, technology and markets are rapidly moving, the Agile approach, being flexible and adaptable to changing requirements, can potentially offer more cost and time efficient project delivery. The regular cycle of design, build and test can help to meet moving requirements that the business may not have acknowledged at the beginning of a project (Figure 3).
Figure 3. The benefits of working Agile:
The Waterfall project management methodology was adapted from the construction and manufacturing industries into software development, and although there are similarities between the industries there are also stark differences. The progressive Agile approach may well begin to overtake the Waterfall methodology as institutions look to deliver multi-purpose, multi-year, compliant projects that align to ever shifting strategic goals. As the industry increasingly adopts Agile project management, how long will Waterfall survive in software development?