The iterative model is one of the easiest to implement software development life cycle models. There are certain scenarios where the initial or the core software requirements are clearly defined, but the actual span or the full set of features of the project are unknown.
Moreover, the development company might decide to not give the full functionality of the software in one go and rather prefer to give it out through periodic updates or if the client requests some functionality enhancements during the process of development. In such cases, the iterative process model is used.
What is Iterative Model?
The iterative process model is the implementation of the software development life cycle in which the initial development is started based on the initial requirements and more features are added to the base software product with the ongoing iterations until the final system is created.
In essence, the iterative model breaks down the software development process of a very big application into smaller pieces.
The benefit of this model is that it is employed during the earlier stages of SDLC, which permits the project developers and testers to find practical or design-related flaws as early as possible, which furthermore permits them to take corrective measures in a restricted budget.
Features of Iterative Model
The iterative model was designed as an improvement to the existing waterfall model which is a linear SDLC model whereas the iterative model is cyclical in nature. Once the initial requirement planning process is completed, some of the other stages are repeated. These repetitions hence create cycles. As these cycles are completed and implemented, the overall end product is improved and iterated on.
- The first stage is the planning stage, which is used to map out the particular requirements be it either hardware or software, as well as prepare for the other stages to follow.
- The second stage is the analysis stage, which is performed to check if the required models, business logic are incorporated into the project or not. We breakdown the expected deliverables into more detailed business requirements. A Requirement Management Plan is created to define how the requirements will be documented, communicated, tracked and changed throughout the rest of the project. The direction that the project will take through the use of project strategy documents is also defined during this stage.
- Then comes the design stage, the team on the project should have a complete set of requirements to work from, the direction which is to be taken for the project and a Conceptual Systems Design. Even if the project is small and the requirements for the project are simple, there is a mental design process that takes place in between understanding the requirements of the project and starting to build it. Design becomes more and more important as the size of the project becomes larger and more complex. The Design stage is where many potential solutions to the project are analysed and narrowed down to some choices to determine the most effective and efficient way to construct the system. The technical requirements for the project are detailed to meet any needs which are found out during the analysis stage.
- The fourth stage is the implementation and coding stage. As it is clear from the name, all the requirements, planning and design plans are implemented and coded in this stage of the iterative process model. This is the point in the project when the actual construction of the system starts. In an IT development project, this is the time to start writing the program code for the project.
- The fifth stage is the testing stage wherein the current build iteration is tested against some standards and norms to check if they satisfy them. These testing procedures are set in place to find out any bugs or errors in our system. The solution of the project is revalidated for stability which includes ensuring that correction of one bug does not lead to any new bugs in our system. There are various types of testing techniques that can be implemented by the team so as to test their system, like performance testing, stress testing, security testing, requirements testing, usability testing, multi-site testing, disaster recovery testing, etc.
- Finally, when all these stages are completed, a meticulous evaluation is done on the system developed up until this stage. The development team and the stakeholders are able to examine the system and give their feedback regarding various aspects of the system, what needs to or can be changed in the system.
These stages are repeated if any new requirements pop up, or any error/ bug is identified in our system.
Once these stages are finished and all the requirements are fulfilled and meticulously checked, the most recently built iteration of the system is given to the end-user.
Advantages of Iterative Model
- This model produces a working software much quickly and early during the SDLC.
- This model is very flexible – as new functionality can be added to it at any time of development.
- This model is considerably cheap as it is less costly to change requirements as compared to the other process models.
- The end-user or the stakeholders can give their feedback quickly, which can then be implemented into the system.
- The errors and bugs in the system can be identified early.
- Takes smaller development teams as compared to other process models.
Disadvantages of Iterative Model
- Problems pertaining to the system architecture can come up because all the requirements are not gathered upfront.
- It is not a good choice for small projects.
- More resource-intensive than waterfall model.
- Risk analysis requires highly qualifies specialists to check the risks in our system.
- The whole process is difficult to manage.
The iterative model iterates planning, design, implementation, and testing stages again and again so that the final product built iteratively, is according to the standards required by the user. This model gives an opportunity to identify and rectify any major design or planning flaws in the process model because of its cyclic nature. Furthermore, the iterative model is really beneficial as it can accommodate changes in the initially specified requirements for the system.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.