Iterative model Incremental model - allikvaleria/Phyton GitHub Wiki
Iterative model
Definition in your own words
The iterative approach to software development is that the creation of a system takes place through a series of iterative cycles. Each cycle represents a part of the system that evolves and improves with each new step. At the end of each cycle, the results are evaluated and changes or improvements are made based on the feedback received. Each new iterative cycle builds on the previous one.
Main features
- Continuous improvement: Each cycle brings a new version of the product based on the results and feedback analysis of the previous cycle.
- Feedback integration: At the end of each product (or prototype) cycle, feedback is collected and changes are made.
- Flexibility: The iterative model allows for rapid changes and improvements based on new requirements.
- Functionality incremental improvement: Minimum functionality is developed first and gradually improved.
- Risk reduction: the product is continuously developed and evaluated, reducing the risk of poor quality of the final product.
Example of iteration
Example: developing a web platform for a web shop. In the first cycle, only the functionality to view products (minimum version) is created. In the second cycle, we add the possibility to add products to the shopping cart. In each subsequent cycle, new functionalities are added, such as support for payment methods, order management, etc. The first cycle is a simple creation of a product. After each cycle, the product is tested and finalised.
Add a diagram or drawing
Benefits
- Flexibility and adaptability: the model allows changes to be made at each stage of development based on feedback.
- Risk control: as the product is continuously developed and evaluated, potential problems can be detected and corrected early.
- User feedback: each development cycle allows for feedback from users, which helps to focus development on their real needs.
Weaknesses
- Time and resource costs: after each cycle, time is needed for testing and feedback gathering, which can increase the project duration.
- Inconsistent end result.
Incremental model
Definition in your own words
The incremental model of software development is that a system is built in stages, adding functional components (increments). Each increment adds functionality to the system and each increment creates a new version of the product with additional features. The rationale is that each step is part of a more complex and complete system.
Main steps
- Requirements: The initial system requirements are defined and it is determined which functionalities should be developed in the first increment.
- Design: The system architecture and each increment is designed separately.
- Development: The first increment containing all the necessary functionalities selected is developed.
- Testing: Each increment is tested separately to ensure that it meets its functional requirements.
- Addition: After the initial increments have been completed, new features or additions are gradually added.
Example of increments
Example: A content management system (CMS) is being developed. The first increment may contain only content creation and editing functions. The second increment adds content organisation and category creation functions. The third step adds user management and rights management functions.
Add a diagram or drawing

Benefits
- Early feature acquisition: each step is a working version of the system that can be used.
- Gradual addition of features: with each increment, the system is extended with new features, allowing you to work on several parts of the project at the same time.
- Flexibility: each incremental version adds new features, allowing the system to be easily adapted to new requirements.
- Feedback: user feedback can be collected after each step and adjustments can be made.
Weaknesses
- Integration problems: as each step is developed separately, it can be difficult to integrate the different steps into the final product.
- Changing requirements: new requirements may emerge during the development process, making it difficult to control changes in the project.
Comparison: iterative vs incremental model
| Characteristic | Iterative Model | Incremental Model |
|---|---|---|
| Approach | Cyclical (repetition of steps) | Growing (gradual addition) |
| Feedback Frequency | High, after each cycle | Lower, after each increment |
| Suitability by Project Type | Projects requiring quick adaptation and continuous improvement | Projects where functionality is added step by step |
| Risk Management | Low risk, as each cycle is independent | Risks may increase, as each increment adds new components |
| Order of Functionality Completion | Functionality evolves during each cycle | Functionality is added incrementally |