Waterfall vs. Agile Process for PaaS Projects
Waterfall vs. Agile Process for PaaS Projects
By: Matt Chumley | Project Manager/Solutions Analyst
In order to attempt to choose between Waterfall and Agile approaches to a project implementing a cloud solution, it’s important to have a clear understanding of the benefits and drawbacks of each methodology. In a technological world that is increasingly becoming more and more demanding, aspects of Agile are being used to facilitate projects to successful completion.
The push towards a full Agile approach to cloud solutions, such as PaaS (Platform-as-a-Service) projects, could potentially post major concerns and problems to your project. This is why the best approach should ideally be some type of hybrid, with the user/manager’s choice of how many Agile aspects are actually used while keeping some of the structure of Waterfall processes.
Benefits/Challenges of Waterfall vs Agile
Waterfall Approach
The Waterfall method involves using strict, concrete plan from day one of the project with tasks in a specific sequential order. Each stage in the process is treated as its own component, and there is no going back or reverting to previous stages of the project that are already completed.
Benefits:
- Plan is very strict and predictable
- Promotes a repeatable process for others to follow
- Strong documentation is key
- Ideal for projects where all requirements are known up front, and very few changes are anticipated (as change means high cost)
Challenges:
- Since the plan was set at the very beginning and is fixed, there is no room to incorporate changes mid-project. Therefore, once an error is detected in testing the team must start all over from the beginning.
- Being only one phase dedicated for implementation, testing can only occur at the end of project. There is no chance to review/test any deliverables mid-project.
Agile Approach
Unlike the Waterfall method, the Agile approach embraces change and allows the Project Manager to account for uncertainty throughout the project plan. The project is broken down into multiple iterations, or sprints, in order to create multiple development cycles. Each sprint is, in essence, a small project that involves a working deliverable that can be reviewed/tested.
Benefits:
- Better and faster feedback on deliverables
- More frequent iterations meaning less impact with changes
- More requirements met
- Less change requests
- Faster time-to-market
Challenges:
- Time to completion takes priority over documentation.
- Much of the project cannot be predicted, as only the first iteration is planned at project start.
- Difficulty of creating a project team that has the correct training and skill sets to complete a fluid project.
Hybrid Approach for PaaS Solutions
It is evident that the two project management methodologies are polar opposites and that one must choose either one or the other. When you examine the benefits and challenges of both Waterfall and Agile, it can be beneficial to use certain parts of each process and blend them together when planning out a cloud solution project.
One of the best examples involves the combination of speed (time-to-market) with proper documentation. When working on a PaaS solution, the client would most likely desire to have the Agile benefits of speed and flexibility. That would allow incremental steps in developing the overall solution, and changes to be inserted at various points. However, the lack of documentation may not be appealing to the client as they consider employee turnover or hiring new developers for cloud implementation. This is why the idea of incorporating the rigid structure and planning of the Waterfall method may be very beneficial.
Many times a company may choose to use both Waterfall and Agile methodologies simultaneously and in-tandem. Using the defined, repeatable process for established services, while using multiple small iterations for new activities like migrating customers to the cloud. The choice on management styles does not have to be black or white, as it can be some type of hybrid in which the parts of each process that benefit that particular project can be hand-picked and used. It is up to the discretion of the Project Manager to put together the most effective processes in order to satisfy the goals of the project.