Software Development Life Cycle – WaterFall vs Agile Approach
As a Business Analyst, while working on the Software development project, it becomes a mandate to follow a structured process-oriented approach. The project goal cannot be achieved by scattered processes, teams NOT in co-ordination, Gaps, and miscommunications around, NO Roadmap or NO defined dependencies across the team(s).
Thus, comes in a picture the basic Development life cycles which lead to a progressive and a structured approach while working on a project. WaterFall and Agile are the two MOST important project lifecycles that are in trend and are used across the globe.
Waterfall Approach as the name suggests is a sequential process where progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation, and maintenance.
On the other hand, Agile may be looked upon as a series of small Waterfall cycles wherein the modules are developed incrementally in each cycle.
Waterfall Model
- Each phase is the resultant of the previous phase and is completely dependent on the previous one
- Until the first phase is completely finished, team cannot move on to next phase
- All the requirements are well drafted and understood at the very start of the project. No Scope of changes in the requirements in middle.
- Every stage produces a definite output in terms of either documentation/ Code/Test Cases/Test results etc.
- Model is well fitted for small projects where the requirements are small and clear at the start as a
- Any changes in between have to be started from the first phase, hence are costly.
- Stakeholders can review/view the project only after it’s completed.
Agile Model (Scrum)
- It can be understood as a series of Waterfall cycles.
- Each Cycle is termed as Sprint.
- Every cycle is responsible for completion of specific modules of the project and NOT the complete Project as a whole.
- Requirements and broken in smaller chunks and are divided between sprints hence it’s not necessary to gather/understand all the requirements at the very start.
- As it works in an iterative approach, hence adaptive to changes in requirements in middle with minimal cost.
- Stakeholders can view the progress of the project at any step and can have a better idea of how the project/software will look like.
- Tight communication between the team and the stakeholders throughout.
Because of the flexible mechanism of Agile, it is taking over the Waterfall approach nowadays and is in trend. Besides, it totally depends on the nature of project along with the Company’s and Customer’s choice to which approach is to be followed for the development.