Programowanie zwinne, czym jest tzw. Metodyka zwinna Agile
Programowanie zwinne należy do najpopularniejszej z metodyk zarządzania projektami. Czym dokładnie jest Agile? Jakie są najważniejsze pojęcia związane z Agile i Scrum? Czym charakteryzuje się metodyka Agile?
Czym jest Agile?
Zacznijmy od wyjaśnienia samego pojęcia Agile. Czym jest metodologia zwinna Agile? To sposób zarządzania projektami, nie tylko w IT, ale też w innych branżach. Dlaczego Agile jest tak powszechnie adaptowanym i wykorzystywanym sposobem zarządzania projektem? Ze względu na ogromną elastyczność, bezpośrednie podejście do kontaktu z klientami oraz widoczne efekty pracy już w początkowych stadiach pracy. Praca w metodologii Agile nie skupia się na dokładnym zaprojektowaniu całego produktu od A do Z. Zespół projektowy skupia się jedynie na konkretnych małych funkcjonalnościach i cechach i właśnie je stara się rozbudować.
Metodologia Agile może wyróżnić cztery elementy, które co do zasady powinny wystąpić w każdym projekcie. Jest to Plan, Eksploracja, Adaptacja oraz Zamknięcie. Planowanie projektu to ogólny zarys produktu, identyfikacja potencjalnych ryzyk wpływających na opóźnienie projektu, a także ustalanie budżetu całej inwestycji.
Eksploracja to proces budowy produktu w sprintach, które już wcześniej zostały ustalone na etapie planowania. Każda gotowa funkcjonalność jest przedmiotem spotkania z użytkownikiem końcowym, który ocenia nasze starania i decyduje, czy dany feature faktycznie spełnia wszelkie oczekiwania. W przypadku obszarów do poprawy niezbędne jest poprawienie niektórych elementów. W innym przypadku rozpoczyna się kolejny sprint.
Na samym końcu możemy zidentyfikować zamknięcie, czyli podsumowanie całego projektu. To podczas zamknięcia projektu upewniamy się, czy wszystkie założenia zostały zrealizowane.
Agile vs Scrum
Ze względu na fakt, iż Agile jest zbiorem dobrych praktyk umawiających podejście do zarządzania projektami, w ramach tego jednego „zwinnego worka” występuje kilka metod. Zdecydowanie to właśnie Scrum jest najpopularniejszym sposobem działania w ramach zwinnego podejścia do wytwarzania produktów – najczęściej nowych aplikacji i systemów. O co chodzi w Scrum? To sposób na dostarczanie cyklicznych wyników w częściach. O co chodzi? Wyobraźmy sobie, że zespół projektowy pracuje nad stworzeniem nowego systemu. Zamiast oczekiwać rok na efekt finalny, zespół programistów spotyka się z klientami raz w miesiącu, czyli w okresie, w którym pewne funkcjonalności programu są już całkowicie gotowe. Te okresy nazywane są sprintami i pozwalają na znaczne uelastycznienie pracy na linii programiści – klient.
Skąd bierze się taka popularność prowadzenia projektów w metodologii Scrum? Przede wszystkim ze względu na możliwość szybkiego reagowania na niedociągnięcia bądź inne sytuacje, które nie podobają się klientowi. Jeśli programiści przez rok pracowali bez feedbacku klienta, produkt finalny może okazać się daleki od ich oczekiwań. Miesięczne scrumy niejako minimalizują takie ryzyko i sprawiają, że potencjalne nieporozumienia zostaną w sprawny sposób zmodyfikowane. Wiele osób docenia Scrum za brak potrzeby wielogodzinnego planowania każdej funkcjonalności. W Scrum potrzebujemy ogólnego zarysu i spisu funkcjonalności. To oczywiście może być problemem dla osób przyzwyczajonych do innego, kaskadowego podejścia do tworzenia oprogramowania, jednak z czasem każdy programista doceni zasady związane ze Scrum.
Agile Manifesto
Agile i najważniejsze zasady związane z tą metodologią zostały zdefiniowane i spisane w Manifeście Agile (Agile Manifesto). To deklaracja, która została stworzona przez praktyków i ekspertów związanych z wytwarzaniem oprogramowania. Manifesto for agile software development stworzona w 2001 roku, a reguły opisane 20 lat temu w żadnym wypadku nie tracą na wartości i aktualności. Jakie są cztery najważniejsze zasady manifestu Agile? Możemy wymienić:
- Ludzie i interakcje,
- Współpraca z klientem,
- Działające oprogramowanie,
- Reagowanie na zmiany.
Czy któraś z podanych zasad jest ważniejsza od innych? Nie, ze względu na równy priorytet każdej z nich. Dlatego też tak istotne jest, by zespół projektowy podchodził do równego traktowania wszystkich zasad, a nie działaniu wybiórczo, poprzez kierowanie się jedną lub dwoma zasadami.
Metodyka Agile
Co jeszcze warto omówić, opisując metodologię Agile? Na pewno poszczególne role, które w teorii metodologii powinny być obecne podczas każdego projektu.
Każdy zespół scrumowy, a zatem grupa ludzi działająca na bazie najpopularniejszej metodologii Agile składa się z kilku osób, wśród których znajdują się analitycy, testerzy oprogramowania, a także programiści. Każdy członek teamu jest równy wobec innych i posiada taki sam poziom odpowiedzialności i decyzyjności jak inni. To sprawia, że każda osoba w zespole stanowi niezbędny element determinujący sukces projektu.
Oprócz tego w zespole scrumowym jest jeszcze miejsce na dwie specjalne osoby – Product Owner oraz Scrum Master. Product Owner to reprezentant klienta, który zarządza wszelkimi zadaniami, ustala priorytety w działaniach, a także odpowiada za kontakt na linii zespół-klient. Najczęściej rolę Product Ownera przejmuje Project Manager, którego doświadczenie i kompetencje umożliwiają zarządzanie całym zespołem. Ważne, by cały zespół wytwarzający oprogramowanie z równym zaangażowaniem działał w oparciu o praktyki Agile. Osobą, która pilnuje tego, jest Scrum Master. Zadaniem Scrum mastera jest zwiększenie produktywności pracy, poprzez usuwanie wszelkich przeszkód, nieporozumień, a także obserwację działania teamu i identyfikowanie wszelkich ryzyk, które mogą wpłynąć na opóźnienie realizacji założonych etapów projektu.