Each of these approaches varies in some ways from the others, but all have a common purpose: to help teams deliver high-quality software as quickly and cost-effectively as possible.
AGILE
The Agile model first emerged in 2001 and has since become the de facto industry standard.
Some businesses value the Agile methodology so much that they apply it to other types of projects, including nontech initiatives.
In the Agile model, fast failure is a good thing.
This approach produces ongoing release cycles, each featuring small, incremental changes from the previous release. At each iteration, the product is tested.
The Agile model helps teams identify and address small issues on projects before they evolve into more significant problems, and it engages business stakeholders to give feedback throughout the development process.
As part of their embrace of this methodology, many teams also apply an Agile framework known as Scrum to help structure more complex development projects.
Scrum teams work in sprints, which usually last two to four weeks, to complete assigned tasks.
Daily Scrum meetings help the whole team monitor progress throughout the project. And the ScrumMaster is tasked with keeping the team focused on its goal.
LEAN
The Lean model for software development is inspired by "lean" manufacturing practices and principles.
The seven Lean principles (in this order) are:
Eliminate waste
Amplify learning
Decide as late as possible
Deliver as fast as possible
Empower the team,
Build in integrity
See the whole
The Lean process is about working only on what must be worked on at the time, so there’s no room for multitasking. Project teams are also focused on finding opportunities to cut waste at every turn throughout the SDLC process, from dropping unnecessary meetings to reducing documentation.
The Agile model is actually a Lean method for the SDLC, but with some notable differences.
One is how each prioritizes customer satisfaction: Agile makes it the top priority from the outset, creating a flexible process where project teams can respond quickly to stakeholder feedback throughout the SDLC.
Lean, meanwhile, emphasizes the elimination of waste as a way to create more overall value for customers — which, in turn, helps to enhance satisfaction.
WATERFALL
Waterfall is widely considered the oldest of the structured SDLC methodologies.
It’s also a very straightforward approach:
finish one phase, then move on to the next. No going back.
Each stage relies on information from the previous stage and has its own project plan.
The downside of Waterfall is its rigidity.
It’s easy to understand and simple to manage.
But early delays can throw off the entire project timeline.
With little room for revisions once a stage is completed,
problems can’t be fixed until you get to the maintenance stage.
This model doesn’t work well if flexibility is needed or if the project is long-term and ongoing.
ITERATIVE
The Iterative model is about repetition.
Instead of starting with fully known requirements,
project teams implement a set of software requirements
then test, evaluate and pinpoint further requirements.
A new version of the software is produced with each phase, or iteration.
Rinse and repeat until the complete system is ready.
Advantages of the Iterative model over other common SDLC methodologies
It produces a working version of the project early in the process and makes it less expensive to implement changes.
Key skills for team members:
Communication
They need strong written and oral communication skills
Collaboration
Each team member must be able to synchronize their efforts with that of their colleagues
Flexibility
Must be able to roll with any sudden changes in the project’s direction while also staying focused on the ultimate goal
Attention to detail
Developer errors can increase the duration of the software development life cycle
Comments