Czym jest Agile? - W skrócie
Agile - metodologia w pracy w projekcie, która opiera się na “zwinności” (agile - po polsku tłumaczone jako “zwinne oprogramowanie”). Agile polega na tym, aby stworzony projekt pozwalał osiągać oczekiwane rezultaty, przy jednocześnie mniejszym nakładzie zespołu. Kładzie nacisk na samoorganizację w projekcie, planowanie adaptacyjne, ciągłe zmiany, szybkie dostarczanie efektów i elastyczny rozwój.
Agile w praktyce
Wyobraźmy sobie następującą sytuację: Mamy świetny pomysł na aplikację mobilną, wszystko wydaje się przemyślane, wybrany został software house, który miałby wykonać projekt, nic tylko zaczynać. Jednak aplikacja to Twoje “dziecko” i chciałbyś móc doglądać postępów prac i upewnić się, że na pewno wszystko jest wykonywane tak jak należy.
Dlatego zanim przystąpimy do rozpoczęcia prac warto zastanowić się, które podejście do prowadzenia projektów będzie najbardziej odpowiednie:.
Istnieją dwa najbardziej popularne podejścia do wytwarzania oprogramowania:
- Klasyczne zwane też waterfallowym
- Zwinne
Wykonywanie projektów w podejściu klasycznym znane jest od lat i można wydzielić tutaj trzy fazy:
- Planowanie
- Wykonanie
- Dostarczenie
W dużym skrócie, na początku poświęcamy bardzo dużo czasu na analizę i planowanie projektu - zastanawiamy się nad wszystkimi funkcjonalnościami projektu, nad możliwymi przypadkami, tym co może pójść nie tak oraz, co w jakim momencie musi się wydarzyć aby wykonać projekt na czas. Wszystkie możliwe scenariusze zostaną przemyślane i zaplanowane.
W zależności od złożoności i długości projektu planowanie może trwać kilka dni, tygodni albo miesięcy. Następnie przechodzimy do fazy wykonania, która trwa odpowiednio długo, a na koniec widzimy efekty prac.
Jakiś czas temu w przypadku branży IT zauważono, że to podejście do wytwarzania oprogramowania się nie sprawdza ze względu na zmieniające się wymagania, potrzeby rynku czy chociażby technologii i to, co w trakcie planowania było aktualne, w przypadku gdy projekt był dostarczony już takim często nie było. Wtedy też zaczęło się naradzać zwinne podejście do wytwarzania produktu oparte na transparencji, inspekcji i adaptacji (dzisiejszych filarach Scruma), czyli dostarczamy często, w małych paczkach, odstępach czasu i sprawdzamy czy to, co wykonaliśmy jest faktycznie tym, czego rynek/klient potrzebuje.
Kiedy stosować Agile w projektach IT?
Nie jest tak, że jedno podejście jest lepsze, a drugie gorsze. Wszystko zależy od wielu czynników, który sposób wytwarzania oprogramowania będzie się bardziej w naszej sytuacji sprawdzał.
Skąd jednak wiedzieć, jaki rodzaj podejścia do projektu będzie odpowiedni? Stacey Model przychodzi z odpowiedzią.
Ralph D. Stacey był brytyjskim profesorem zarządzania na uniwersytecie Hertfordshire, najbardziej znanym z jego teorii zarządzania organizacjami. Zestawiając ze sobą wymagania i znajomość technologii stworzył model do klasyfikacji zagadnień.
Zaczynając projekt ważne jest by wiedzieć co musi być zrobione i jak to zrobić. W zależności od poziomu niepewności obu czynników - wymagań(co) i technologii(jak), Stacey pogrupował zagadnienia na 4 różne segmenty:
- Łatwe - zakres jest dobrze opisany i wiemy jak je zrobić(jakiej technologii użyć). Z doświadczonym zespołem i dobrym planem możemy zaczynać od razu. Tak działają wszystkie tradycyjne podejścia waterfallowe (co nie znaczy, że podejście zwinne się tutaj nie sprawdzi)
- Skomplikowane - zakres nie tak jasny, należy go doprecyzować, przemyśleć i zaplanować, jednak po tych krokach można działać. Duży i dokładny planning jest potrzebny jeśli chcemy pracować w klasycznym podejściu.. Gdy nie mamy miesięcy na planowanie prac - podejście zwinne do rozwoju produktu będzie jak najbardziej odpowiednie
- Kompleksowe/złożone - z dużą dozą niewiadomych: zakresu i technologii(co i jak zrobić). Dodatkowo zmieniające się wymagania wchodzą w grę a z tym zmienia się też poziom wiedzy, jak wykonać poszczególne zadania. Dowiadujemy się jakie są wymagania i jak jak na nie odpowiedzieć w momencie ich wykonywania. Podejście zwinne jest tutaj najlepszym rozwiązaniem.
- Chaotyczne - tak zwany YOLO development. Nie mamy informacji o wymaganiach i jak sobie z nimi poradzić Dodatkowo.nie wiemy czego zupełnie się spodziewać, błądzimy(zarówno my jak i klient). Ponownie, podejście zwinne będzie tutaj najlepszym rozwiązaniem jako że adaptacyjne i innowacyjne podejście wydaje się być jedynym sposobem w jaki należy ugryźć ten problem (inspect + adapt)
To daje dość oczywistą odpowiedź dlaczego tak popularne w ostatnich latach jest w software house’ach zwinne podejście do wytwarzania oprogramowania.
Stacey model wprost sugeruje by być najbardziej efektywnym należy odpowiadać na zmiany.
Z naszego doświadczenia w Qarbon IT wynika, że nawet projekty, które można określić jako “łatwe” według powyższego podziału, w szybko zmieniającym się świecie wymagają zmian i usprawnień, na które agile-owe podejście idealnie odpowiada.
Mam nadzieję, że ten post pomógł rozwiać parę wątpliwości lub pozwolił zrozumieć dlaczego zwinne podejście może być wartościowe dla Twojego produktu.
Jeśli jednak dalej nie jesteś pewny do jakiego segmentu można by przydzielić Twój projekt, odezwij się do nas - pomożemy.