Sztuczna inteligencja
Etyka w AI – równoważąc innowacyjność i odpowiedzialność w IT
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.
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:
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.
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.
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ę.
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.
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.
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.
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.
Metody zarządzania projektami IT dzielimy na kaskadowe i zwinne. Przeczytaj o tych tradycyjnych (kaskadowych), jak Waterfall czy PRINCE2.
Co to jest dostępność sieci oraz WCAG? Jak ułatwić korzystanie z internetu osobom niepełnosprawnym? Przeczytasz w tym artykule.