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?

    2 answers 2

    Adjail works only if the customer is ready to work in this way.

    The advantages are that he sees what is happening and is able to intervene / stop if he realizes that what is being done is not what he needs. On the one hand, such development may require more time due to the fact that the requirements are changing. But on the other hand, the customer eventually gets exactly what he needs, and not what the analyst thought from his description.

    But if the customer is not ready to work this way, then it is better not to get involved.

      In all more or less large-scale developments, I only worked a couple of times not with Agile (although, in fact, this term has never been used anywhere), when the customer issued really finished TK.

      Once with Honeywell (FVS File Versioning System) - it was required to make an analogue of the DEC CMS (Code Management System) to work on a network from different computers (Ultrix, SunOS, NT, VAX / VMS).

      And for the second time for Mentor Graphics, it was necessary to convert the file formats from some PCB machines to others.

      In all other works, something was constantly changing (sometimes greatly, up to a change in the architecture of the control machine of the complex, sometimes weakly and for the better - they threw X.400 support into the development of the Central Bank Mail Gateway) while working with the direct customer.