SDLC Models provides a methodology on the basis of which project teams plan, estimate and schedule their activities. Most commonly used software development life cycle models are:
It is a systematic linear sequential flow where completion of every step is compulsory before moving to another step. Here completion of every step serves as an input for another step. This ensures clarity of task at hand and leads to improved quality of end product. Businesses that have well defined and understood requirements are good fit for this model.
Done by Business Analysts and Product Analysts
Feasibility Study/ Analysis
Done by a software team consisting of project managers, business analysts, architects, finance, HR, developers but not testers.
Architect – is the person who tells whether the product can be developed and if yes, then which technology is best suited to develop it.
There are two phases in design:
High Level Design (HLD) and Low Level Design (LLD)
Coding / Programming
Done by all developers – seniors, juniors, freshers.
This is the process where we start building the software and start writing the code for the product.
Done by Test engineers.
It is the process of checking for all defects and rectifying them.
To install the product at a client’s place for use after the software has been Developed and Tested.
Here as the customer uses the product, he finds certain bugs and defects and sends the product back for error correction and bug fixing. Bug fixing takes place.
The waterfall model can be a good choice when:
Project requirements are clearly defined and formulated, and there are no plans to change them.
If you are planning to build something simple.
If the project is short.
If there are plans to work with stable, well-tested and reliable tools.
Process and results are well documented.
In the Iteration model the project performance methodology is such that software development is done in a cyclic manner. Every cycle produces a software, which is complete in itself and has more features and capabilities than that of the previous one. This is usually done in big and complex projects where the software development team first completes a project and reviews it, tests it, modifies it and then carries on with other projects where more features are added and tested.
It is a combination of iteration model and waterfall model. It’s a risk-driven model which combines architecture and prototyping by stages and the overall success of this model depends on the risk analysis phase. The four main phases of this model are: determining objectives, risk analysis phase, development phase, planning of subsequent phases. In this model too the teams will have to go through these phases repeatedly, adding some improvements at each step.
It is the extension of the waterfall model and involves testing and verification of performance at every stage before moving to the next development stage. This model also ensures that the next step starts only after the completion of the first step.
In the Agile software methodology-solutions evolve through collaboration between self-organizing cross-functional teams that work on the idea of iterative development. It enables teams to deliver projects at a faster pace. The outcome through this model is of a high quality. Scrum is the most widely used Agile methodologies. One of the crucial features of Scrum is an iterative process of building the final software solution. For this purpose, the project manager divides the whole project into a set of phases called “sprints,” and these sprints serve as a base for performance monitoring as well. Due to the flexibility that scrum offers, it minimises the risk of the entire project.