Metoda Wodospad z pewnością jest wykonalna i jest równie uzasadniona filozoficznie, jak każde inne podejście. Pamiętaj, że Waterfall istnieje znacznie dłużej niż Agile, ale pamiętaj, że nie jest to argument, aby stwierdzić, czy jedna metodologia jest lepsza od innej.
Stosujesz metodę Waterfall, gdy masz bardzo jasne zrozumienie całej problematycznej dziedziny i tego, co klient chce osiągnąć w pakiecie oprogramowania. Prawdopodobnie podałeś stałą cenę przy zawieraniu umowy, a twój klient rozumie, że nie może odbiegać od jakichkolwiek uzgodnionych wymagań. Twój proces jest ściśle taki, który przepływa przez szereg podpisów między różnymi etapami rozwoju i często zdarza się, że każdy etap jest realizowany przez inny zespół - czasem nawet inną firmę - z których każdy niekoniecznie musi kontakt z innymi. Często widzisz Wodospad stosowany z dobrym skutkiem w projektach wojskowych i rządowych, gdy są one oferowane zewnętrznym wykonawcom. Tam, gdzie Waterfall i inne podobne podejścia zyskują złą reputację, pojawiają się problemy programistów, takie jak słabe oszacowanie, harmonogramy zaplanowane bez nieprzewidzianego czasu lub słabe lub niepełne zrozumienie problematycznej dziedziny. Kwestia ta nigdy nie jest tak naprawdę winą metodologii, ale jej zastosowania.
Porównanie zwinnej i dowolnej metodologii jest fałszywe. Agile nie jest metodologią, jest filozofią, a może lepiej byłoby powiedzieć, że jest to termin ogólny, który reprezentuje inny sposób patrzenia na to, jak się rozwija oprogramowanie. Metodologia jest jedynie narzędziem i jako taka, jej wartość zawsze będzie mniejsza niż jednostki i interakcje, które stanowią sedno tego, co oznacza bycie zwinnym .
Czy ktoś naprawdę myśli, że minimalizacja zmian w oprogramowaniu jest realną opcją dla tych, którzy chcą dostarczać cenne oprogramowanie?
Każda okazja do zminimalizowania zmian jest cenna zarówno dla programisty, jak i klienta. Zmiany mogą spowodować przesunięcie harmonogramu lub pominięcie funkcji w celu spełnienia harmonogramu. W ten sposób zarządzasz efektami zmian, które wpływają na wartość twoich projektów.
A może pytanie o to, jakie praktyki najlepiej sprawdzają się w naszych sytuacjach, aby poradzić sobie z nieuchronną zmianą?
Twoje praktyki mogą pomóc w zarządzaniu zmianami lub mogą całkowicie je zignorować. Liczy się połączenie twoich praktyk programistycznych i zarządzanie relacjami z klientami oraz to, czy te rzeczy działają skutecznie dla wszystkich zaangażowanych stron.
Ci z nas, którzy są do wszystkich celów i sprawnie, rozumieją, że wybierasz metodę, która działa dla Ciebie. Jeśli podoba Ci się określone podejście, zastosuj się do niego. Jeśli to nie pasuje do twoich potrzeb, zmień to. Sposób, w jaki zajmujesz się tworzeniem oprogramowania, sprowadza się do tego, aby jak najlepiej wykorzystać dostępne zasoby i zminimalizować praktyki, które mogą doprowadzić Twój projekt do niepowodzenia, i często okazuje się, że musisz zmienić metodę, aby dopasować konkretny projekt pod ręką.
Naprawdę jedną rzeczą jest powiedzieć „Ok, więc teraz jesteśmy Zwinni”, a zupełnie inną rzeczą jest żyć i pracować zgodnie z filozofią Agile. Bez względu na to, czy używasz Waterfall, Incremental, Spiral, SCRUM, XP, FDD, czy jakiejkolwiek innej metody, jesteś w zasadzie zwinny , gdy cenisz:
- Osoby i interakcje dotyczące procesów i narzędzi
- Działające oprogramowanie w obszernej dokumentacji
- Współpraca z klientami w zakresie negocjacji umów
- Reagowanie na zmianę po wykonaniu planu
i gdzie łączysz swoje narzędzia, metodę i swoje doświadczenie, aby skutecznie zastosować te wartości.