Getting Software Deployment Right the First Time: Part 1 – The Evolution of Agile and Waterfall Methodology

Agile and Waterfall are two well known project management methodologies that are used in the Life Sciences industry when implementing new systems and software in the business environment. Both are popular in software development, but each is best suited for different types of projects. The main difference is that Waterfall is a linear system of working that requires the team to complete each project phase before moving on to the next one, while Agile encourages the team to work simultaneously on different phases of the project.

As mentioned, Waterfall methodology is a linear form of project management with clear steps: requirements gathering, design, development, test and deliver. It’s ideal for projects where the end result is clearly established from the beginning of the project. The expectations for the project and the deliverables of each stage are clear and are required to progress to the next phase. The problem with linear project management is that users of the system are not included during the design and development steps and issues may not arise until testing occurs later in the process. By then it’s too late. The result is that the system delivered may not be what the users want and/or the company may not get the efficiency gains they anticipated from implementing the new software. So the very reason why they wanted a new system could be all for nothing. The lack of engagement with stakeholders during the development phase, which could be months or years of development money and time, is crucial. Especially as more users are being asked to go to electronic applications. It’s imperative that the business users be part of the development process all the time.

Agile methodology was developed as a response to Waterfall’s more rigid structure. It’s a much more fluid form of project management that allows for course corrections due to that fact that a software development project can take years to complete (i.e., technology can change significantly during that time, allowing user acceptance testing to take place much earlier in the process). Agile was developed as a flexible method that welcomes incorporating changes of direction even late in the process, as well as accounting for stakeholders’ feedback throughout the process.

In Agile, the team will work on phases of the project concurrently, often with short-term deadlines. Additionally, the team, rather than a project manager, drives the project’s direction. This can empower the group to be motivated and more productive, but also requires them to be more self-directed.

This introduction to the differences between these 2 methodologies is just the beginning. Stay tuned for more in-depth details on how to get software deployment right the first time.