В последнее время я видел много постов, в которых говорится, что одной из основных причин использования Agile является то, что клиенты часто меняют требования.
Однако, скажем, клиенты не часто меняют требования . На самом деле, у клиентов есть жесткие требования, хотя они могут быть немного расплывчатыми (но не слишком необоснованными), но я все равно использую Agile.
Причина, по которой я использую Agile, заключается в том, что программное обеспечение достаточно сложное, и в нем есть детали, проблемы, которые я бы не узнал, пока не столкнулся с ними. Я мог бы реализовать полномасштабный подход к интенсивному планированию, такой как водопад, но тогда потребовалось бы несколько месяцев, чтобы завершить разработку всего проекта высокого уровня и сигнатур кодирования низкого уровня. Тем не менее, существует очень конкретный, фиксированный архитектурный дизайн системы.
Мой вопрос: будет ли это плохо, ковбойское кодирование, анти-паттерн и т. Д.? Должны ли мы использовать водопад и планировать как можно больше в мельчайших деталях, прежде чем мы начнем кодировать, когда требования стабильны, а не в менталитете «давай сделаем» в Agile?
РЕДАКТИРОВАТЬ: Основным моментом здесь является то, что: мы не можем винить клиентов за изменение требований. Предположим, что клиенты указали нам на очень конкретную проблему, дайте нам список пожеланий в очень разумных деталях и оставьте нас в покое (т. Е. У клиентов есть свои собственные продуктивные дела, не надо их больше беспокоить. Только демонстрация для них рядом с конец, когда у вас есть минимальный рабочий прототип). Было бы неправильно использовать Agile в этом сценарии?