Waterfall versus Agile approach to development
Initially, each phase of the SDLC followed a step-by-step method from planning to maintenance. Developers refer to this approach to the SDLC as the waterfall approach because it flows from one phase to the next phase in a downward fashion.
There are benefits to this approach for developing software; however, there are some disadvantages, including:
- Long cycle times. Since each phase of the approach might take any amount of time, the entire process might take months, if not years, to complete. By the time projects were complete, the product they had developed might be outdated.
- Less user interaction. With the waterfall approach, users are brought in only at the beginning of the planning phase to gather requirements and at the end of the cycle. This means that users’ needs are only determined at the beginning of the project, and if their needs change throughout the project’s lifecycle, those needs will not be addressed.
- Postpones testing until the end. Because testing is at the end of the cycle, the team might not recognize issues until much work has already been completed. Depending on the size of the issues, solutions might be costly and delay the project’s launch.
Given these challenges, what do you do? Well, in the early 2000s, a few developers came together to address some of these issues with the waterfall approach. A few variations to waterfall had already been developed, but this group wanted a new approach that allowed organizations to speed up development times.
With the goal of faster development times in mind, these developers created the Manifesto for Agile Software Development(opens in a new tab), which laid out four key values:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
These four values led to the development of the agile framework.
Agile allows teams to deliver products in small increments, minimizing the disadvantages of the waterfall approach. Agile is inherently about these four values.
Scrum framework
Organizations have adopted methodologies such as scrum, an iterative approach to implementing agile. Iterative means the process is repeated often and sometimes the same steps can be repeated several times. The scrum framework is made up of scrum teams that deliver work in sprints and participate in scrum ceremonies.
Following is a diagram of a typical scrum framework in which teams work to deliver in short increments. Notice that the framework emphasizes a more iterative approach.
Scrum teams
Development teams work in small teams to focus on developing a solution for one objective at a time.
Sprints
Developers complete work in sprints. A sprint is a set period of time in which the team works on a specific, small set of work. The work goes through the entire development lifecycle from planning to launch.
Before starting a sprint, the team conducts sprint planning to determine what work needs to be done and how long it will take.
A sprint backlog captures work that needs to be completed but has not been started.
The sprint concludes with a retrospective, which is a review of what worked during the sprint and what practices can be improved in the next sprint.
Ceremonies
Teams participate in specific meetings, called ceremonies, such as sprint planning, daily scrum, or stand-ups, sprint reviews or demos, and retrospectives. These ceremonies provide commitment from the team on what they will develop, early feedback on the product, and quick identification of issues that might arise.
While scrum and agile are often thought of as the same, they are not. Agile is a set of values and principles. Scrum is one of many methods for implementing agile principles.
Much like waterfall, methods of implementing agile have evolved, and new variations have been created over time. Kanban(opens in a new tab) and extreme programming (XP)(opens in a new tab) are a couple of examples.
It’s valuable for you to be aware of the different approaches that web development teams take for projects.
Explore more!
Check out the Agile Alliance(opens in a new tab) to learn more about the 12 principles of agile(opens in a new tab), the Agile Manifesto(opens in a new tab), and the basics of agile(opens in a new tab).
Cheers!