Agile nie znaczy że tworzymy rozwiązania "na odpi...dol" tylko tworzymy bez ścisłych założeń a oprogramowanie ewoluuje w czasie jego budowy i rozwoju.
W praktyce bardzo często projekty i tak kończą jako Agile nawet jeśli założenia początkowe dotyczące wyboru metodologii tworzenia były inne :-)
Oczywiście, ze nie chodzi o robienie na odwal. Wręcz przeciwnie. W długim, projekcie waterfall kod, który napiszesz nigdy nie wróci do ciebie, bo jak ktoś już go faktycznie odpali, to jest spora szansa, że będziesz w innym projekcie, firmie, albo nikt się nie zorientuje, że to twój kod. Po co masz go pisać porządnie, skoro do ciebie nie wróci, a jak napiszesz porządnie, to szanse nie wyrobienia się w zaplanowanym na tego taska czasie rosną?
Jak pracujesz w prawdziwym agile, a nie jakiejś wymyślonej przez klaunów atrapie typu scrum, czy nie daj boże SAFe, to kod wróci do ciebie od klienta w ciągu godzin wraz ze zjebkami, że miało działać, a nie działa, więc warto się przyłożyć. W dodatku wiesz, że za chwilę będziesz w tym kodzie grzebać przy ficzerze, którego jeszcze nie znasz, więc znowu - opłaca się robić to dobrze. A pożar w burdelu, to najwyższa forma agile. Trzeba olać wszelkie szacowania, robić to co jest potrzebne na za chwilę, cele są jasne. Jak ktoś przychodzi z problemami typu "jak nasz burndownchart będzie wyglądał", "czy powinniśmy bardziej zwracać uwagę na KISS, YAGNI, czy może na SOLID", to dostaje szybkiego kopa i można pracować dalej. Dla mnie to taka projektowa nirwana.
Jedna rzecz, to nie tak, że tworzymy bez ścisłych założeń, bo to co ma zostać zrobione za chwilę musi być dokładnie zdefiniowane, przynajmniej jako "czego chce użytkownik". Ale faktycznie, im task bardziej odległy w czasie, tym mniej o nim wiadomo.