Waterfall models are extremely simple to follow through and use and deliverables are specified with a proper review process. Howsoever, the project would not be complete until the end of the life cycle which makes it an extremely risky approach and with this uncertainty, it isn’t a great method to work on for large enterprise level projects.
To learn more on Mob Programming, watch this video,
Iterative Model
An iterative Model is an incremental approach of a life cycle for software where small developments and modifications are added on each newer iteration. This approach is great on large mission-critical system development. Also, customer feedback would also help to better the system in a short span with multiple iterations and releases.
Advantages and Disadvantages
Small changes can be integrated into the software over the iterations thus making it easier to see the results in a small duration of time, but this also adds up a sketchy timeline and effort with the possibility of ever-changing demands while working on consultation for clients. It might be great for the clients, but the development firm is likely to face difficulties more than they signed up for.
Spiral Model
This is a minimum risk approach for software development in regards to both the clients/ customer to the software development firm. The spiral model has 4 phases:
- Identification
- Design
- Build
- Evaluation and Risk Analysis
This process helps to accommodate changes as the life cycle takes four phases where prototypes can be used extensively and requirements can be captured properly.
Advantages and Disadvantages
Spiral Model can turn out to be extremely complex for the spiral process might go indefinitely. While it accommodates the need of changing requirements and more precise way to note the requirements from the clients, it makes this process equally difficult to manage without being able to foresee how the end of project would be like.
Agile Model
The agile model is probably the most widely and extensively used software development life cycle approach across the firm around the globe. Agile approach asks us to retrospect upon each project as every project must be handled in a different manner. In this approach, each of the tasks is broken down into time frames to deliver a certain feature. The iteration Model is then applied to build it as a deliverable adding incremental changes with the last final build consisting of the entire features.
Agile follows the listed principles,
- Individual and Interaction
- Working Software
- Customer Collaboration
- Responding to Change
Advantages and Disadvantages
The agile Model is an extremely realistic approach and supports rapid development with minimum resource requirements. It can also be easily managed and gives a lot of flexibility for developers, testers, and DevOps. However, complex dependencies can’t be easily handled and possesses risk to sustain and maintain the system. Also, since it highly depends on the interaction with the client, it will help in requirement analysis but would be torturous if the customers aren’t clear with their needs. This model anyways is the standard for today’s software development practice in companies across globe.
In this article, we learned about Mob Programming what it is, and its various benefits. We also discussed what refactoring is and the reading by refactoring approach to understand a project deeply. Then we learned about Software Development Life Cycles such as Waterfall Model, Iterative Model, Spiral, and Agile Model.