This technology of software development implies that the customer may not know what kind of product he needs. In other words, he is not required to scrupulously write out the terms of reference.
Advantages:
- The ability to get feedback quickly by releasing a minimal product. In this way, developers can focus on the fundamental functions of the software and improve it based on market standards and user feedback.
- Through ongoing testing by users themselves, programmers can identify and level out various bugs in a timely manner.
Disadvantages:
- The use of databases or servers at the start. The problem is that databases are quite difficult to scale, and servers often do not withstand the load. This can lead to a situation where you have to redo a large part of the product.
- No fixed budget and deadlines. The customer has no clear idea of what should be the final result and when to complete the creation of a product.
This model will be preferable if you intend to work on a large-scale project with unclear requirements. In addition, the iterative option is suitable for tasks with an innovative approach, when the customer cannot know what the end result will be.