
Source
When we look deeper into SDLC, we find there are different types of models. But, at the core, all the activities of all the different models share or revolve around the following key stages:
Source
One of the classic examples of a linear SDLC approach. Just like a waterfall, it flows downwards in distinct phases. So, you start with gathering requirements, then the designing part, implement the code, and so on.
This is a simple to implement and easy to understand model. There are clear and well-defined stages and deliverables. And it works best for small projects with well-understood and stable requirements. However, this simplicity can cost a lot if requirements are misunderstood and discovered late in the cycle. Also, only after the final product is released, users can see the working system. As a result, the Waterfall model is not the best choice for a complex, long-term project where the product might evolve or change during the phase of production.
Source
Unlike the Waterfall model, Agile is not just a single model, but a set of principles and practices for iterative software development.
According to Agile principles, certain things are prioritized over others, such as:



