Ostatnio widziałem wiele postów mówiących, że jednym z głównych powodów używania Agile jest to, że klienci często zmieniają wymagania.
Powiedzmy jednak, że klienci często nie zmieniają wymagań . W rzeczywistości klienci mają ścisłe wymagania, choć mogą być nieco niejasne (ale nic nierozsądnie niejasne), ale i tak używam Agile.
Powodem, dla którego stosuję Agile, jest to, że oprogramowanie jest na tyle skomplikowane, że istnieją szczegóły, problemy, których nie rozpoznałbym, dopóki się z nimi nie zmierzę. Mógłbym zastosować pełne planowanie na dużą skalę, takie jak wodospad, ale wtedy zajęłoby kilka miesięcy, aby sfinalizować wszystkie projekty wysokiego poziomu i podpisy kodowania niskiego poziomu. Istnieje jednak bardzo konkretny, stały projekt architektoniczny systemu.
Moje pytanie brzmi: czy byłoby to uważane za złe, kodowanie kowboja, anty-wzór itp.? Czy musimy zastosować wodospad i zaplanować jak najwięcej szczegółów, zanim zaczniemy kodować, gdy wymagania są stabilne zamiast tej mentalności „zróbmy to” w Agile?
EDYCJA: Najważniejsze jest to, że: NIE MOŻEMY winić klientów za zmianę wymagań. Załóżmy, że klienci wskazali nam na bardzo konkretny problem, podaj nam listę życzeń w bardzo rozsądnych szczegółach i zostaw nas w spokoju (tzn. Klienci mają swoje własne produktywne rzeczy do zrobienia, nie rób im więcej błędów. Tylko demonstracje dla nich w pobliżu koniec, gdy masz minimalny działający prototyp). Czy stosowanie Agile w tym scenariuszu byłoby błędem?