Świat idzie do przodu. W biznesie nic nie jest stałe – ani oczekiwania klientów, ani technologie, ani procesy. Adekwatną odpowiedzią na nieustanną zmienność wszystkiego i wszystkich, są metodyki z grupy Agile, których podstawą są wydajność, zdolności adaptacyjne i współpraca. Wdrożenie kultury zwinnej pozwoliło w znanym, międzynarodowym banku skutecznie zapanować nad realizowanymi zadaniami i zyskać najważniejszą korzyść – czas.
ARTYKUŁ SPONSOROWANY
Źródłem metodyk Agile jest manifest ogłoszony w 2001 roku przez grupę 17 programistów, jako odpowiedź na potrzebę zwiększenia dynamiki procesów zachodzących w projektach informatycznych. Autorzy deklaracji bazowali na doświadczeniu, że nadmierne sformalizowanie i wdrażanie zbyt dużej liczby procedur może prowadzić do rozbieżności pomiędzy oczekiwaniami klienta, a rezultatami projektów. Zaproponowali jednocześnie iteracyjne podejście do realizacji zadań i związanego z tym sposobu pracy.
Założenia Agile
Dynamicznie zmieniające się otoczenie wymusza na organizacjach coraz większą elastyczność i efektywność działań. Dziś liczy się kreatywność, transparentność, wykorzystanie innowacyjnych technologii, czy dostarczanie nowych wartości dla klienta. Era biznesu 3.0 jest w fazie wzrostu, dlatego też Agile będzie nadal zyskiwać na znaczeniu. Jakie zatem reguły rządzą podejściami zwinnymi? Warto poznać 5 najważniejszych:
Zasada 1. Twórcza otwartość
Skuteczne realizowanie projektów jest uzależnione od jakości przepływu komunikacji – bez ograniczeń wynikających z hierarchii i podziałów struktury organizacji.
Zasada 2. Transparentność
Kultura Agile to transparentne budowanie relacji, kooperacja i współdziałanie na wszystkich szczeblach, włączając w ten proces klienta – współpracujemy, bazując na otwartości, przejrzystości procesu i stanu projektu. Nie ma żadnych niejawnych informacji.
Zasada 3. Czas reakcji
Szybkość reakcji na pojawiające się zmiany ma kluczowe znaczenie przy realizacji projektów. W sytuacji wysokiej konkurencji i często zmieniających się oczekiwań rynku, a także zwykłych zmian oczekiwań wobec realizowanego systemu, możliwość częstego i regularnego wpływania na jego kształt i priorytety realizacji jest krytyczna dla całościowego powodzenia projektu.
Zasada 4. Elastyczność
Tradycyjna koncepcja kaskadowa się nie sprawdza, ponieważ odnosi się do zanadto odległego czasu realizacji zadania oraz zbyt dużego, a często także niedookreślonego oraz błędnie określonego zakresu. W kulturze Agile plany szczegółowe tworzone są z kilkutygodniowym wyprzedzeniem i dotyczą ograniczonego zakresu prac. Generalne założenie zwinnego planowania mówi, że czym dłuższy plan, tym mniej dokładne planowanie. W ten sposób podejście Agile stawia na cykliczne rozwijanie przyrostowe oraz stopniowe rozwijanie i dopasowywanie planu do zmieniających się potrzeb klientów.
Zasada 5. Współpraca i zrozumienie
W podejściu zwinnym klient jest przyjacielem – nigdy przeciwnikiem! Tylko dzięki zrozumieniu i dopasowaniu procesu do tego, co napędza nasze własne i innych zachowania oraz iteracyjnej kontroli osiąganych, cząstkowych celów projektu, jesteśmy gotowi podejmować trafne decyzje, szybko reagując na ewentualne odchylenia od oczekiwań.
Bankowa (r)ewolucja
Efektywna współpraca biznesu i działu IT to jedno z największych wyzwań, z jakimi mierzą się współczesne przedsiębiorstwa – nie inaczej było w znanej, dużej instytucji finansowej. Przed wprowadzeniem kultury projektowej, kooperacja między strukturami organizacji była chaotyczna i skutkowała nieprzewidywalnymi terminami i nieskoordynowaną realizacją różnych zadań. Po zmianie kadry zarządczej wprowadzono klasyczny, iteracyjny model kaskadowy, który polega na realizowaniu określonych czynności, jako odrębnych faz projektowych, jeden po drugim. W efekcie uzyskano przejrzystość oraz większą przewidywalność zakresów i terminów, ale skutkiem ubocznym było usztywnienie i wydłużenie całego procesu. Dlatego zarząd francuskiej marki banku podjął decyzję o wdrożeniu metodyki Agile, w nadziei na skuteczną poprawę komunikacji między biznesem i IT oraz trwałe usprawnienie realizacji projektów.
Zaszczepienie idei
Wdrażanie metodyki zwinnej rozpoczęliśmy od serii wspólnych warsztatów dla IT i biznesu. W czasie szkoleń uczestnicy poznali metodyki Scrum i Kanban, przy czym główny nacisk położyliśmy na elementy związane z komunikacją i współpracą w zespołach projektowych. Z perspektywy czasu można powiedzieć, że rozpoczęcie wprowadzania metodyki Agile „od zera”, wspólnie dla biznesu i IT, było kluczowe dla powodzenia całego przedsięwzięcia – wszyscy zaczynali od tego samego poziomu, każdy miał jasno określoną rolę i odpowiedzialność w tym procesie.
Efektywna komunikacja opiera się nie tylko na dwustronności samego procesu, ale również na posługiwaniu się terminologią, dokładnie w tym samym kontekście. Dlatego po warsztatach uczestnicy dysponują wspólnymi pojęciami i terminami, które pomagają im w komunikacji w ramach projektów. Drugim elementem zmiany było przepracowanie roli każdego z członków zespołu, aby zinternalizował funkcję „gdzie jest, dokąd zmierza” oraz wiedział „what’s in it for me” – czyli miał świadomość, czego będzie mógł się spodziewać i jakie przełożenie będzie to miało na jego pracę i zakres odpowiedzialności.
Bardzo istotne dla powodzenia wdrażania kultury Agile było silne wsparcie, które otrzymaliśmy od kadry zarządczej Klienta. Pierwszy etap zmian zawsze jest trudny – pracownicy dopiero odnajdują swoje miejsce w nowym układzie – zrozumienie i akceptacja perspektywy, że długoterminowy zysk jest ważniejszy niż krótkoterminowe zmniejszenie wydajności miały ogromny pozytywny wpływ na całość realizacji procesu.
Implementacja
Po warsztatach wprowadzających metodykę Agile rozpoczęliśmy prace nad układaniem procesów w nowym porządku. W opisywanej instytucji bankowej są, co do zasady, trzy rodzaje projektów:
- duże „regulacyjne” (dokładnie określone przez regulatorów rynku finansowego),
- stała praca nad rozwojem produktów (np. e-banking),
- małe, tzw. „katalogowe”, które zajmują od paru dni do kilku tygodni (są to głównie usprawnienia istniejących systemów).
W związku z tym, że dział IT Klienta nie był zbyt duży, zdecydowaliśmy się rozpocząć pracę w rytmie iteracyjnym na raz, we wszystkich projektach. W pierwszym okresie pracowaliśmy głównie nad samym procesem, tj. tworzeniem Rejestru Produktu i Rejestru Iteracji, utrzymywaniu codziennych spotkań w ryzach czasowych oraz regularnym prowadzeniu spotkań Retrospektywy Sprintu i Przeglądu Iteracji. Gdy zespół zaczął przyzwyczajać się do nowego rytmu pracy, coraz więcej zadań samodzielnie realizowały osoby, które docelowo miały pełnić role Scrum Masterów i Product Ownerów. Dzięki prowadzonym działaniom coaching-on-the-job osiągnęliśmy zadowalający poziom implementacji, który pozwalał na samodzielne prowadzenie projektów bez wsparcia trenerów. Docelowo zespoły przeszkolone zostały również w zakresie bardziej zaawansowanych narzędzi, pozwalających na usprawnienie prac i podnoszenie jakości nietechnicznych aspektów projektu, takich jak: techniki szacowania i planowania, specyfikowanie przez przykłady (Specification by Example) oraz Impact Mapping. Poza zmianami procesowymi, w ramach realizacji wdrożenia Agile, wprowadziliśmy dodatkowo zwinne techniki programistyczne, pochodzące z metody Extreme Programming, tj.: Test-Driven Development, programowanie w parach oraz Continuous Integration.
Efekty
Wszystkie podejmowane działania na rzecz Klienta charakteryzowały się bardzo dużą dynamiką oraz wysokim stopniem innowacyjności. Obecnie blisko połowa projektów realizowana jest z wykorzystaniem zwinnego procesu. Jest to świadoma decyzja, ponieważ projekty regulacyjne są ściśle nadzorowane przez regulatorów i pozostawiają małe pole do zmian. Wymagane jest za to szczegółowo określone raportowanie postępów do regulatora. W wyniku zastosowania metodyki Agile uzyskaliśmy następujące rezultaty:
Skróciliśmy czas potrzebny na wykonanie poszczególnych zadań. Było to możliwe dzięki cyklicznej ocenie sposobu zaawansowania poszczególnych realizacji. Okazało się jednocześnie, że często nie ma potrzeby realizować 100% zaplanowanych zadań. Dzięki dobremu określeniu priorytetów, biznes jest już wystarczająco zadowolony z projektu na poziomie 70-80% i decyduje się go wcześniej zakończyć, a zaoszczędzone zasoby wykorzystuje w innych projektach. Dodatkowo zauważono, że biznes przestał mieć tematy „na wczoraj”, ale zaczął rozumieć i szanować nowy sposób organizacji pracy oraz odpowiednio planować swoje działania.
Uporządkowaliśmy funkcjonowanie przedsiębiorstwa jako systemu. Ze względu na fakt, że organizacja działa w oparciu o okresowe budżetowanie, alokacyjne planowanie zasobów oraz raportowanie, właściwa priorytetyzacja zadań pozwala na wykorzystanie podejścia „Optional scope”, gdzie z góry zakładamy, że zrealizowany zakres zależy od tego, ile faktycznie uda się zrobić w założonym (z góry) czasie i budżecie. Realizowany zwinnie development jest więc wkomponowany w cykl budżetowy i planingowy instytucji.
Wdrożyliśmy automatyczne testowanie będące podstawą zapewniania jakości w zwinnych projektach. W tych zadaniach, w których jest to możliwe ze względów technicznych, zdecydowanie większy nacisk kładzie się teraz na automatyzację testów, pozwalającą znacząco obniżyć koszty testów regresyjnych i zminimalizować czas między developmentem, a wdrożeniem. Starsze systemy, napisane w mniej elastycznych technologiach, podlegają bardziej klasycznemu cyklowi – development działa oczywiście iteracyjnie, ale raz na jakiś czas realizowane są testy UAT, a wdrożenie następuje dopiero po ich zakończeniu.
Zwiększyliśmy przewidywalność prac projektowych, co uporządkowało relacje IT-biznes, wprowadziło regularność pracy oraz zabezpieczyło zespoły przed niekontrolowanymi „wrzutkami” i zmianami priorytetów w trakcie realizacji. Z drugiej strony biznes ma teraz dużo większą elastyczność planowania – co dwa tygodnie, dowolnie może ustalać priorytety kolejnych prac i sprawnie reagować na zmieniające się potrzeby organizacji.Rozwinęliśmy umiejętność systematyzacji zadań, dzięki czemu projekty „katalogowe”, które ze swojej natury są małe i często można zrealizować ich kilka w ciągu jednej iteracji, realizowane są Kanbanem, a tematy idą tu ciągłym strumieniem. Powyższe zadania podlegają co prawda rytmowi iteracji w zakresie spotkań z biznesem i planowania kolejności zadań, ale co do zasady, nie podlegają długoterminowemu planowaniu, nie mają deadline’ów, a szybkość ich realizacji zależy głównie od dostępności zasobów osobowych.
Zamiast podsumowania
Można stwierdzić, że przysposobienie metodyki Agile przyniosło wymierne korzyści Klientowi w postaci skutecznie i efektywnie prowadzonych projektów, z wykorzystaniem dostępnych zasobów. Należy podkreślić jednocześnie, że bez odpowiedniego przygotowania osób wchodzących w skład zespołów: nadzorujących, coachów (firma Pragmatists) i realizujących, wprowadzanie Agile byłoby dużo trudniejsze i dłuższe, a w efekcie dużo bardziej kosztowne i ryzykowne. Kluczowe było także zapewnienie możliwości cyklicznych spotkań wszystkich stron zaangażowanych w projekt. Warto też dodać, że sam projekt implementacji metodyki Agile realizowany był tym sposobem. Wszelkie działania planowane i realizowane były w miesięcznych iteracjach, a plan wdrożenia był odpowiednio dostosowywany do możliwości organizacji i prędkości uczenia się zespołów.
Wieloletni programista, architekt, trener zespołów, wielokrotny prelegent na konferencjach. Twórca firmy Pragmatists zajmującej się tworzeniem wysokiej jakości oprogramowania. Pragmatists we współpracy z firmą Sages dostarcza usługi dla zespołów programistycznych (szkolenia, coaching, mentoring). Pomagają zespołom i organizacjom w efektywizacji tworzenia oprogramowania z wykorzystaniem zwinnych metodyk oraz zaawansowanych praktyk programistycznych.