/ 18.11.2024
Spis treści
Agile czy Waterfall?
W wielu firmach realizuje się projekty w klasycznym podejściu waterfall. Jest to podejście zorientowane na plan, które skupia się na dostarczeniu wszystkiego, co jest w zakresie projektu. Co więcej, każdy etap w projekcie musi zostać zakończony przed przejściem do następnego kroku, czyli trzeba dostarczyć wszystkie, kolejno następujące po sobie funkcjonalności. Zwykle w takim projekcie na początku tworzona jest szczegółowa lista wymagań, następnie, czasem w sprintach, rozwijane są kolejne funkcjonalności, a na końcu następuje integracja i testowanie całości. To podejście stosuje się, gdy klient ma jasny i ustalony cel końcowy i nie musi (lub nie chce) być zaangażowany we współtworzenie produktu. Z kolei w Agile kluczowym elementem jest iteracyjny rozwój. Polega to na dostarczaniu małych fragmentów produktu, które powinny być zintegrowane z resztą rozwiązania. Choć kolejne wersje usługi nie są doskonałe lub mają ograniczoną użyteczność, są ważnymi elementami dostarczającymi informacji zwrotnych, pomagających w podjęciu decyzji o tym, jak rozwijać dalej usługę. Co więcej, dzięki iteracyjnemu tworzeniu rozwiązania, możemy przerwać w dowolnym momencie, w którym stwierdzimy, że mamy już wystarczająco dobry produkt — oszczędzając w ten sposób wydatki na dalszy rozwój.Jaki wpływ ma podejście Agile lub Waterfall na ryzyko projektowe?
Wyobraź sobie stateczny, wolno płynący statek, który przewozi cały cenny ładunek danej firmy. Trzyma się obranego kursu i jest bardzo przewidywalny w swoim harmonogramie. Jednak gdy spotka na swojej drodze niebezpieczeństwo, np. górę lodową, to skierowanie go w inną stronę może być bardzo trudne, a konsekwencje kolizji są katastrofalne. Podobnie można scharakteryzować organizację, która ma ogromny projekt realizowany w strategii waterfall. Wydaje nam się, że świetnie jest budowany I czekamy na końcowy efekt. Jednak w momencie zaburzeń rynkowych, czy braku funduszy na ukończenie go, szkody dla organizacji mogą być bardzo duże, lub wręcz katastrofalne. Co więcej, o problemach dowiadujemy się najczęściej bardzo późno — wtedy, kiedy trudno jest już zmienić kierunek. Spójrzmy teraz na bardziej “zwinne” podejście. Jeśli mamy małą żaglówkę, nie zabierzemy tyle ładunku co ogromny statek, o którym mówiliśmy wcześniej. Z drugiej strony, taka żaglówka jest szybka, zwinna i może szybko wykonać zwrot, aby uniknąć niebezpieczeństwa. Jeśli mamy na przykład armadę małych statków, to gdy jeden zatonie, nie tracimy wiele, bo nadal nasz ładunek jest rozłożony na pozostałe statki. W taki sposób działa zwinna organizacja, pozwala sobie na szybką zmianę kierunku na podstawie informacji zwrotnych, które otrzymuje z różnych źródeł, od swoich klientów, z kontroli jakości, z rynku, interesariuszy itp. Mając tylko małe części produktu lub małe projekty, nad którymi pracujemy, możemy manewrować wzdłuż niebezpieczeństw i faktycznie ograniczyć ryzyko.W jakich warunkach Agile przynosi największą wartość?
Agile warto stosować się we wszystkich sytuacjach, gdzie potrzebujemy częstej i szybkiej informacji zwrotnej, pomagającej w podejmowaniu lepszych decyzji. Idealnie sprawdza się wtedy, gdy zastanawiamy się nad ewentualną zmianą kierunku bądź też przerwaniem tego, nad czym pracowaliśmy do tej pory i szybkim wdrożeniem innej koncepcji.Przykładowe sytuacje, które mogą wymagać podejścia Agile:
– Próba zmiany nawyków użytkowników — nie wiemy, co okaże się sukcesem, ale mamy pewną hipotezę i sprawdzamy małe zmiany czy działają, czy też nie. – Ocena użyteczności pewnych funkcjonalności – sprawdzamy, które z nich są najkorzystniejsze. Za każdym razem dostajemy szybką informację od odbiorców i mierzymy skuteczność działań. – Sprawdzanie opłacalności nowej technologii i odkrywanie innego sposobu na rozwiązanie złożonego problemu. Jest to szczególnie potrzebny w przypadku tworzenia oprogramowania, gdy mamy jakiś nieznany obszar do odwzorowania lub może funkcjonalność, której nie możemy wykorzystać z innego produktu. Musimy wtedy rozwiązać jakiś problem w inny sposób, a częsta informacja zwrotna bardzo pomaga w testowaniu technologii.Podsumowując, jakiego ryzyka unikasz dzięki Agile?
- Zbyt późnej informacji o napotkanych problemach
- Obniżasz ryzyko poniesienia zbyt dużych kosztów
- Nie zostajesz z nieskończonym produktem
Kiedy Agile niekoniecznie się sprawdzi?
Nie wszędzie jednak można w pełni wykorzystać zalety Agile. Na przykład, mając ustalony zakres projektu jak lista wymagań “must have” podzielona na mniejsze części jak kamienie milowe lub iteracje, które mają być dostarczone w ustalonym czasie, prawdopodobnie nie uda się szerzej wykorzystać podejścia Agile. Jest to zwykle przypadek, w którym mamy projekt i jedyną rzeczą, którą wykorzystujemy z podejścia Agile, jest fakt, że podzieliliśmy go na sprinty. Jednak jest to wciąż klasyczne podejście, tylko że z iteracjami. Mimo wszystko, nawet w tego typu projektach możemy obniżyć pewne czynniki ryzyka, poprzez częstą integrację całego produktu z kolejnymi jego częściami i pracę w zespołach cross-funkcjonalnych.Co może utrudniać przyjęcie Agile?
Przyjęcie Agile jest ogromną zmianą w organizacji, generującą nowe wyzwania. A przejście na zwinność to coś więcej niż tylko rozpoczęcie pracy w sprintach i codzienne spotkania w zespołach programistycznych. Zwykle jest to wysiłek całej organizacji, który zaangażuje wiele osób.Jakie są najistotniejsze bariery w przyjmowaniu praktyk Agile?
- Niespójne procesy
- Kultura organizacyjna sprzeczna z wartościami Agile
- Skalowanie organizacji