One participant of our Stack Overflow in the comment said the following phrase:
Regarding the situation when the requirements of the end are not clear, this is the work of a business analyst, he is simply obliged to prepare the CTZ for which there is no undermining, and this work sometimes takes several years. Depending on the scale of the project of course. In the course of the entire work of the analyst, the desires are constantly made, depending on the immersion in the process, in general, this work is rather complicated, but the output is high-quality products. Well, of course, not any weekly releases, this is the greatest evil that was invented in the west.
Interested in this question.
On the one hand, it seems to me, since Agile or SCRUM approaches are practiced, it means they have a place to be. I heard about examples of successful outcomes, whereas before the use of Agile there were failures, and with them everything worked out perfectly.
On the other hand, indeed, you ask yourself whether such changeableness of direction can produce a good product that is suitable both from the inside and the outside.
It is clear that if we are talking about something that is not at all complicated in its structure, then you can easily throw out a module and write another one. But if the project is complex, complex, with interconnected parts ... Is it possible that: first, some requirements are realized -> then new ones come -> a part of what is done breaks down -> something new is being built on this curve basis -> and in the result is a "crocodile"?
Still, with Agile, "initial capital" is surely necessary, that is, some kind of ready-made framework, to which it remains only to add functionality. So?
Question. Under what conditions (type of project, project management environment, development participants involved, etc.) does the Agile approach have advantages over classical or other approaches?
The opinions of people with experience of participating in various projects are interesting.
Update:
The following / complementary question: How to implement the Agile approach so that the quality of code organization is acceptable?