Czytaj

arrow pointing down

Zwinne metody zarządzania, czyli jakie? Manifest AGILE

Agile jest ojcem zwinnych metod zarządzania, jak Scrum, Kanban, czy Scrumban. Przeczytaj, czym się różni od tradycyjnych metod typu Waterfall!

Zwinne metody zarządzania ewoluowały pod koniec lat 90. XX wieku. Stanowiły polemikę wobec postępującej niechęci firm i menedżerów projektów do sztywnej, liniowej metody typu kaskadowego (Waterfall). W nieustannie zmieniającym się środowisku biznesowym nie sprawdzały się szczególnie w branży IT. Nowym wyzwaniom na polu technologii wyszedł naprzeciw Agile.

W tradycyjnie zarządzanej organizacji za podejmowanie decyzji odpowiedzialne jest na ogół kierownictwo wyższego szczebla. W przypadku złożonych strategii i wynikających problemów odpowiedzi także idą z góry. Stwarza to ogromne wyzwanie i ryzyko dla liderów i menedżerów projektów.

Nowy model zarządzania, tzw. zwinnego, odnosił się początkowo do wytwarzania oprogramowania. Obecnie coraz więcej organizacji decyduje się przenieść jego idee i techniki na inne pola działalności.

W zwinnej strukturze organizacyjnej priorytetem jest praca zespołowa oparta na bezpośredniej komunikacji interesariuszy i menedżerów. Zachęcanie całego zespołu do eksperymentowania i stawiania hipotez staje się swego rodzaju ćwiczeniem organizacyjnym.

Złożoność współczesnych projektów sprawia, że zwinność sprawdza się w środowiskach dynamicznych, w których istnieje potencjał do zmiany i ewolucji wymagań, rozumianych jako zarządzanie wymaganiami. Członkom projektów powierza się przy tym kompetencje niezbędne do ukończenia poszczególnych jego cykli. Przekazanie tak dużej odpowiedzialności za tworzony produkt zespołom projektowym korzystnie wpływa na motywację pracowników.

Filozofia AGILE

Przedstawiciele nowych idei, głównie w Stanach Zjednoczonych, całe lata szukali alternatywnego podejścia do procesu tworzenia oprogramowania. W 2001 roku prekursorzy zmian spotkali się na konferencji wyjazdowej, by stworzyć wspólne porozumienie.

Agile, jako zbiór zasad, jest wielkim ojcem metod zwinnych

Warto przy tym zauważyć, że choć powołany wówczas do życia Agile często nazywany jest metodologią zarządzania projektami, to w istocie nią nie jest. Stanowi raczej filozofię oprogramowania, a nie opis gotowego procesu, który stosuje się bezpośrednio do projektu.

Agile opiera się na Manifest Agile Software Development, czyli deklaracji ogólnodostępnych zasad i wartości dla wszystkich metod zwinnych. Zgodnie z Manifestem Agile, wytwarzając oprogramowanie, odkrywa się lepsze metody pracy, a jego najważniejsze założenia mówią, że:

  • Ludzi i interakcje przedkłada się ponad procesy i narzędzia;
  • Działające oprogramowanie są ponad obszerną dokumentacją;
  • Współpraca z klientami i negocjacje umów istnieją ponad formalnościami;
  • Reagowanie na zmiany stoi ponad sztywne podążanie za planem.

Metoda Agile a zwinne programowanie

Gdy się mówi o Agile w kontekście samego procesu projektowania, zwykle wymienia się takie przymiotniki jak elastyczny, transparentny, otwarty, iteracyjny. Zwinne projekty charakteryzują się bowiem szeregiem zadań, które są opracowywane, wykonywane i dostosowywane do sytuacji, a nie są z góry zaplanowanym procesem.

Agile: elastyczny, transparentny, otwarty, iteracyjny

Bycie zwinnym daje zespołom szansę reagowania na nieprzewidywalność poprzez przyrostowe, iteracyjne procesy pracy. Polega to na tworzeniu stopniowym, zamiast dogłębnego i liniowego planowania na początku projektu. Koncentruje się na ciągłym doskonaleniu i szybkości.

Elementy wpływające na projekt są nieprzewidywalne, dlatego metody zwinne kładą nacisk na dostosowanie do zmieniających się sytuacji, odpowiednią i ciągłą komunikację między zespołem projektowym oraz między nimi a klientem.

Zalety Agile:

  • Zwinność jest bardzo korzystna w przypadku projektów, charakteryzujących się dużym stopniem ryzyka i niepewności; ich cel końcowy nie może być jasno określony i nie można zaplanować całego jego przebiegu;
  • Projektu podzielony jest na iteracje (jednostki zarządzalne) lub cykle zwane sprintami; w ich trakcie zespół projektowy samodzielnie planuje rozwój, projektuje rozwiązania, programuje, testuje oraz otrzymuje informację zwrotną od klienta;
  • Przeprowadzanie testów podczas każdej iteracji oznacza, że błędy zostają szybciej zidentyfikowane i rozwiązane; dzięki spójnym iteracjom oprogramowanie może być dostarczane szybciej i sprawniej;
  • Zespoły zwinne są w częstej komunikacji, ludzie współpracują ze sobą i są w stanie wziąć odpowiedzialność za własne części projektów;
  • Klienci mają okazję, aby zobaczyć pracę w mniejszych częściach, dzielić się swoimi opiniami i mieć realny wpływ na produkt końcowy; zyskuje też poczucie własności;
  • Wzajemne przekazywanie opinii przez cały czas trwania projektu służy jego doskonaleniu;
  • Zmiana jest możliwa w dowolnym momencie projektu, zawsze istnieje możliwość dopracowania zaległości i zmiany priorytetów;

Chociaż poziom elastyczności w Agile jest zwykle dodatni, wiąże się też z pewnymi kompromisami. Ustalenie daty dostawy może być trudne, dokumentacja może być niepełna, a produkt końcowy może się znacznie różnić od pierwotnego.

Wady Agile:

  • Planowanie zwinne może być mniej konkretne i trudne w ustaleniu dokładnej daty dostawy projektu; w dowolnym momencie można dodawać sprinty wydłużające jego czas;
  • Zwinne zespoły są zwykle małe, więc na jego członkach spoczywa duża odpowiedzialność, bo wszyscy powinni posiadać wysokie umiejętności w różnych obszarach;
  • Wymaga stałego zaangażowania zespołu programistów, który w całym procesie musi być całkowicie oddany projektowi;
  • Dokumentacja może być zaniedbana, bo Agile woli działające oprogramowanie od obszernej dokumentacji, więc członkowie zespołu mogą mieć wrażenie, że skupienie się na dokumentacji jest mniej ważne;
  • Iteracje mogą być dodawane nie tylko w oparciu o zmieniające się opinie klientów, ale także potencjalne problemy wynikające z pracy zespołu;
  • Ponieważ zwinny stawia na elastyczność, produkt końcowy może się bardzo różnić od początkowego, w efekcie prowadzić do zupełnie innych wyników końcowych.

Klient i wykonawca w Agile

Pomiędzy projektodawcą a klientem istnieje dość płynne porozumienie w kwestii zwinności. Założenie, że zwinnego obie strony cenią za niebycie Waterfallem i rozumieją jako robienie więcej i szybciej, przy mniejszych i niższych nakładach, w praktyce może rozczarować klienta. Choć być może okaże się szybsze, bardziej opłacalne i mniej ryzykowne dla przedsiębiorstw, które zmagają się z różnymi niepewnościami i trudnościami na polu swojej działalności, więc elastyczność zwinnego będzie im po prostu na rękę.

1. Elastyczność kosztuje

Agile oznacza elastyczność wobec klienta projektu, która daje mu szansę na częste zmiany zdania w trakcie jego trwania. Klient może mieć wówczas wrażenie, że wykonawca zrobi więcej za mniej lub że nigdy nie będzie musiał podjąć ostatecznej decyzji, ponieważ może zmieniać zdanie do ostatniej chwili. Ale… ten poziom elastyczności jest zawsze kosztowny. Klient może, owszem, zmienić zdanie, ale to pochłania czas, a czas kosztuje.

2. Gotowość na żądanie

Klient musi być cały czas aktywny i mieć uprawnienia do podejmowania decyzji, przekazywać szybko i na bieżąco informacje zwrotne, aby projekt był w ruchu. Może to się okazać trudne w organizacjach hierarchicznych i zorientowanych na zarząd.

3. Zaufanie i otwartość na eksperymenty

Klient musi sobie odpowiedzieć na pytanie, czy ufa projektodawcy na tyle, by zapłacić za ewentualną porażkę na drodze do sukcesu. Agile wymaga dojrzałości od klientów – powinni rozumieć, że przy zwinny metodach nie można dokładnie określić, co otrzymają, ani kiedy, ale przy pewnym zaufaniu i systematycznej współpracy, zespół projektowy zrobi, co w jego mocy.

Podsumowanie

Jako zbiór zasad Agile jest wielkim ojcem metod zwinnych. Zwinność to zatem termin ogólny używany do oznaczeń innych koncepcji implementacji Agile, w tym Scrum, Lean, eXtreme Programming (XP), Kanban i Scrumban. W zarządzaniu projektami Agile można użyć wybranej z tych metod. Przy czym jedne koncentrują się na szybkości i wydajności, jak Lean czy Kanban, drugie na poprawie komunikacji i pracy zespołowej, jak Scrum, inne na regułach i procesach, jak XP, a jeszcze inne mieszają te elementy, jak Scrumban. Opisujemy je dokładnie w kolejnym artykule poświęconym metodom zwinnym.

Powiązane artykuły

Metody zarządzania projektami IT – tradycyjne, czyli kaskadowe

Metody zarządzania projektami IT dzielimy na kaskadowe i zwinne. Przeczytaj o tych tradycyjnych (kaskadowych), jak Waterfall czy PRINCE2.

Web Content Accessibility Guidelines – produkty cyfrowe zgodne z WCAG

Co to jest dostępność sieci oraz WCAG? Jak ułatwić korzystanie z internetu osobom niepełnosprawnym? Przeczytasz w tym artykule.