-
Szkolenia online z perspektywy
Dwa tygodnie temu poprowadziłem pierwsze szkolenie stacjonarne od początku marca 2020, a więc od pół roku (było to szkolenie PSPO Advanced). Przez ten czas zdążyłem jednak poprowadzić wiele szkoleń online. Bycie na sali było więc poniekąd zapomnianym doświadczeniem, powrót do którego przyniósł nieuchronne porównywanie tego ze szkoleniem online. Poniżej dzielę się tymi moimi osobistymi spostrzeżeniami i wrażeniami.
Już przygotowując salę i materiały do szkolenia (wieczorem przed pierwszym dniem) – rzecz, którą przez ostatnią dekadę robiłem dziesiątki razy – miałem poczucie bezsensu i cofnięcia się. Bite dwie godziny przygotowywania różnych papierów: wieszania na ścianach plakatów, zasłaniania części z nich (by móc je potem w odpowiednim momencie ćwiczenia odkryć), następnie sortowania i układania materiałów opisujących studium przypadku (które potem uczestnicy otrzymywali stopniowo w trakcie), by upewnić się, że są wszystkie i we właściwej kolejności. Następnie sprawdzenie kart do gier (podczas szkolenia uczestnicy układają różne pojęcia lub otrzymują „karty inspiracji” – i tak dalej) i również odpowiednie ich przygotowanie. A na koniec rozłożenie na stołach materiałów indywidualnych – wydruk slajdów + miejsce na notatki w naszych eleganckich segregatorach – oraz oczywiście karteczek post-it, pisaków itp. itd. Całe sterty papieru. Papieru, który jest tam tylko dlatego, że nie ma jak inaczej przekazać tego wszystkiego uczestnikom; co gorsza papieru, którego większość skończyła w koszu dwa dni później.
Poczucie bezsensu miałem, bo w głowie miałem świeże doświadczenie jak rzecz wygląda na szkoleniu online. Również trzeba przygotować materiały – a więc współdzielone dokumenty, czasem tablice wirtualne i jakieś wspomagające narzędzia. Wszystko to jednak jest od razu gotowe, nie trzeba rozkładać, sortować, kleić na ścianach i tak dalej. Nie może się też nic pogubić ani ułożyć w złej kolejności. Można więc ten czas przed szkoleniem poświęcić na to by, na przykład, zastanowić się co poprawić, co tym razem zrobić inaczej, lepiej. Mój czas jako trenera jest dużo lepiej wykorzystany – a dodatkowo nie powstają żadne odpady.
Przez pierwszy dzień szkolenia zastanawiałem się, czy ten cały wysiłek ma w ogóle jakiś sens, ale nie odkryłem ani jednej korzyści z tego, że materiały miały fizyczną, papierową postać.
Wręcz przeciwnie: pojawił się ponownie problem „brakujących slajdów”. Szykując materiały szkoleniowe do wydruku, zawsze pomija się pewne slajdy – na przykład takie, które zdradzają rozwiązania zagadek albo sugerują dalszy rozwój ćwiczeń – lub po prostu po to, żeby móc w ogóle uczestników czymś zaskoczyć. Oczywiście potem mają oni poczucie, że coś stracili, jeśli tych slajdów nie mają w leżącymi przed nimi wydruku – rodzi się zupełnie niepotrzebna frustracja. W szkoleniu online, gdzie nie ma żadnych papierowych artefaktów, problem w ogóle z natury rzeczy nie występuje, szkolenie toczy się naturalnie i wszyscy widzą to, co widzą, i co widzieć powinni wtedy, kiedy powinni. Jeśli potem proszą o PDF ze slajdami to nie z frustracji, ale po to pewnie, by móc coś, co ich zaciekawiło pokazać innym – albo z nawyku.
Przy okazji zawsze zastanawiałem się jaka jest w ogóle wartość drukowania materiałów szkoleniowych. To taka tradycja, że na przyzwoitym szkoleniu stacjonarnym trzeba dostać coś drukowanego. Każdy z nas, kto pracuje dłużej niż dekadę, ma pewnie gdzieś – w domu albo w biurze – małą stertę takich materiałów, zbindowanych albo w segregatorkach, okraszonych naszymi notatkami i rysuneczkami. Ciekaw jestem jak często zdarza się Wam do nich wrócić – a jeśli już w ogóle się zdarzyło, to do jakiej części z nich? Bo mi się to prawie nie zdarza. A najważniejszym tego powodem jest fakt, że nie mogę ich przeszukać szybko i sprawnie. Dlatego już od kilku lat, kiedy jestem na szkoleniu jako uczestnik notuję na komputerze (parę lat temu nawet kupiłem specjalnie tableto-notebook by móc to robić efektywnie) – i te notatki niejednokrotnie zdarzyło mi się czytać, korzystać z nich. Czemu? Bo są w OneNote – a więc zawsze pod ręką – i łatwo mogę je znaleźć (wpisuję o co mi chodzi w pole „Search” – i voila, mam moje notatki).
Ale na tym nie koniec. Na szkoleniu stacjonarnym część notatek powstaje jako wspólna praca zespołów, której efekty umieszczane są oczywiście na flipach albo na karteczkach lepionych po całej sali. Do tego dochodzą rysuneczki tworzone przez trenera przy okazji tłumaczenia tego czy owego zagadnienia. Żadnej z tych rzeczy uczestnicy nie mogą zabrać z sobą (i potem kończą one w śmietniku), więc wszyscy robią zdjęcia telefonami. Nie wiem czy później z tych zdjęć się korzysta czy też trafiają one na wirtualną stertę podobnie jak fizyczne segregatorki ze szkoleń? Bo problemem może być odgadnięcie czego dotyczy kolekcja kolorowych karteczek zabazgranych różnymi charakterami pisma, którym zdjęcie cyknąłeś rok temu.
A jak to wygląda na szkoleniu online (przynajmniej u nas)? Każda grupa współpracuje na współdzielonym dokumencie, do którego wszyscy mają dostęp. Niemal wszystko, co normalnie ląduje na ścianie w formie flipów i post-itów, trafia tam. Tyle, że jest tam w kontekście konkretnego ćwiczenia czy zagadnienia, który jest w tymże dokumencie opisany, więc wiadomo o co chodzi. I jest w formie tekstu. Jest więc to zrozumiałe, łatwo wyszukiwalne i dostępne. Jeśli poza dokumentem używamy jakichś wirtualnych tablic, to na nich też po kartkach pisze się tekstem. Jeśli jako trener rysuję (czasem to robię, choć żaden ze mnie artysta), robię to oczywiście na wirtualnej tablicy. Później do wszystkiego tego uczestnicy zachowują dostęp „na zawsze” (w każdym razie u nas), czyli mogą sobie to skopiować albo wracać do tego, kiedy tylko zechcą.
Inna obserwacja: na szkoleniach typową formą pracy jest dyskusja lub ćwiczenie w podgrupach (zespołach), a potem omówienie wyników cała grupą. Koncept jest ogólnie dobry, ale na szkoleniu stacjonarnym jest mały problem. Gdy grupy wkręcą się w dyskusję (co jest ogólnie dobre) samo doprowadzenie do tego, żeby wszyscy się uciszyli i można było kontynuować wymaga kilku minut sygnalizowania na różne sposoby, że czas minął. Tylko potem te „kilka minut” się sumuje i zjada czas, w efekcie czego jest ryzyko, że z agendy wypada jakaś część przewidzianego materiału. Można oczywiście uciszać i sygnalizować bardziej „agresywnie”. Wtedy jest szybciej, ale uczestnikom jest nieprzyjemnie o czym od razu mówią (mają poczucie, że prowadzący traktuje ich „z buta”).
Kiedyś przyjmowałem to jako swego rodzaju zło konieczne, coś, co trzeba po prostu zaakceptować. Teraz patrzę już na to inaczej, bo wiem już jak się to robi online. Używamy do tego tzw. breakout-rooms, które na platformie Zoom mają niezwykle cenną cechę: same się zamykają po upłynięciu wcześniej ustawionego czasu (tzw. timebox). Problemu z przeciągającą się pracą w grupach po prostu nie ma. Zasadniczo ułatwia to trzymanie się czasu na szkoleniu, a co za tym idzie, sprawne przerobienie materiału. Mocno za tym zatęskniłem na sali.
Co więcej, na szkoleniu online nie ma w ogóle „pobocznych dyskusji” – czyli sytuacji, kiedy dwie-trzy osoby gdzieś o czymś zawzięcie debatując przeszkadzają grupie – i trenerowi – w pójściu dalej z zajęciami. Na sali to norma. I zwykle dyskutujący są tak zaangażowani, że trzeba po prostu poczekać w ciszy aż skończą, albo zapytać o czym rozmawiają, żeby przerwali. To nie jest ich zła wola ani znudzenie zajęciami – przeciwnie, to najczęściej wyraz zaangażowania. Ale to kolejny „poślizg”, czas dla pozostałych zmarnowany.
Szkoleń online od początku nie prowadziliśmy w Code Sprinters w blokach 8 godzinnych. Od razu wiedzieliśmy, że byłoby to zbyt męczące dla uczestników, obniżając ich zdolność do przyswojenia naszych szkoleń, których program jest mocno „napakowany”. Dlatego nasze szkolenia online od początku trwały 3-4 dni po 3.5-4.5h dziennie. Uczestnicy chwalą sobie, że dzięki temu nie mają typowego dla szkoleń popołudniowego „doła energetycznego”. Mogą także lepiej wykorzystać swój dzień – o tych zaletach już pisałem.
Szkoląc stacjonarnie przez dwa pełne dni mogłem zaobserwować, że znużenie i zmęczenie, pojawiające się najpóźniej około 14-ej nie jest wyłącznie domeną szkoleń online. Przeciwnie, na sali jest ono nawet silniejsze, bo zwykle jest to czas po obiedzie – a więc dodatkowo organizm wielu osób krzyczy wręcz o typową poobiednią drzemkę. A tu nie ma mowy o tym (choć niektórzy przysypiają), bo jeszcze kolejne 3-4 godziny szkolenia przed nami. Więc wypija się kawę litrami (porada: lepiej pić wodę niż kawę) i je szkoleniowe ciastka, żeby podnieść sobie poziom cukru – co pomaga, ale tylko na chwilę. W sumie więc wszyscy się męczą – druga połowa dnia jest zawsze trudniejsza, mniej efektywna, o czym mówią też uczestnicy.
Sęk w tym, że na szkoleniu stacjonarnym nie da się tego problemu rozwiązać. Nikt nie przyjedzie na cztery „połówki dni” – raz, że musiałoby go nie być 4 dni w pracy, dwa: to zwiększone koszty dla przyjeżdżających z innych miejscowości o kolejne noclegi, a dla trenera o dni wynajmu sali. Pozostaje się przemęczyć.
I jeszcze jeden delikatny problem. Czasem widać, że ktoś z uczestników ma jakiś kłopot. Nie zgadza się z czymś albo nie rozumie albo jest mocno zamyślony. Jako dla prowadzącego jest to dla mnie sygnał, że z tym kimś trzeba porozmawiać, ustalić co się dzieje. Na szkoleniu stacjonarnym problem jest jak to zrobić dyskretnie, tak, żeby mieć szansę porozmawiać jeden na jeden. Jedyną metodą jest próba „wyłowienia” delikwenta na przerwie, w chwili, kiedy jest sam nad kawą – co nie zawsze się udaje.
Co ciekawe, ten problem, ale w drugą stronę zgłaszali mi też uczestnicy: czasem z różnych powodów krępują się zadać prowadzącemu pytanie kiedy inni uczestnicy są w pobliżu. I również wtedy „łowią” prowadzącego na przerwach albo po szkoleniu.
W formacie online oczywiście problem nie występuje. Rzecz można zrobić natychmiast korzystając z czatu „jeden na jeden”, w razie potrzeby umówić się na dodatkowe e-spotkanie (korzystając z tego, że dzień szkoleniowy jest krótszy).
Czy przez te dwa dni nie było ani jednego momentu, który byłby lepszy niż na szkoleniu online? Owszem, były. Dwa.
Pierwszy, to spontanicznie zorganizowane przez uczestników piwo pierwszego dnia po szkoleniu. Było to fajne i ciekawe towarzysko, zwłaszcza, że w grupie były dwie osoby, które już znałem z wcześniejszej współpracy a dawno nie miałem okazji ich spotkać. Problem w tym czy można to faktycznie podciągnąć pod szkolenie per se?
Drugi, to kiedy na koniec drugiego dnia uczestnicy w ramach scenki praktykowali rozmowę z różnymi typami osobowości (w ramach tematu pracy z interesariuszami) – na tą chwilę wydaje mi się, że zorganizowanie tego na szkoleniu online byłoby mniej skuteczne. Ale niedługo spróbuję i może się okazać, że jednak i tu online pozytywnie mnie zaskoczy. Niemniej, wartość tego jednego ćwiczenia nie uzasadnia w mojej ocenie wysiłku, jakim jest podróż do innego miasta na szkolenie.
Podsumowując, po tych dwóch dniach znów spędzonych na sali poczułem się jako trener jak ktoś, komu kazano się z samochodu przesiąść do furmanki – cofnięcie w czasie do starych, gorszych rozwiązań. Z perspektywy pół roku prowadzenia szkoleń online szkolenie stacjonarne to dla mnie po prostu szkolenie mniej efektywne.
Główne punkty:
- Trudność w przygotowaniu materiałów i ich niższa jakość (papier).
- Trudniejsze „zabranie” notatek i materiałów ze sobą przez uczestników.
- Mniejsza dyscyplina na szkoleniu, w efekcie większe ryzyko poślizgu i „wypadania” materiału do przerobienia z braku czasu.
- Większe zmęczenie w formacie całodniowym a co za tym idzie mniej efektywne uczenie się.
- Dodatkowe niepotrzebne wyjazdy do innego miasta, noclegi itp. itd.
- Ogromne marnotrawstwo papieru.
Dlatego postanowiłem, że szkolenie PSM-II, które poprowadziłem w zeszłym tygodniu było ostatnim szkoleniem stacjonarnym, które osobiście prowadzę; na pewno ostatnim w 2020, a może i w ogóle ostatnim.
-
Kryzys Agile
W lutym 2021 Agile ukończy oficjalnie 20 lat – wtedy miną dwie dekady od spotkania, którego efektem był Manifest Agile. Niestety, w swoje dwudziestolecie Agile przeżywa kryzys, którego – co gorsza – większość zaangażowanych „agilistów” jeszcze nie zauważyła. Kryzys ten polega, ogólnie rzecz ujmując, na „rozwodnieniu” Agile, oderwaniu go od koncentracji na tworzeniu działającego, wartościowego oprogramowania i przesunięciu punktu ciężkości na dbałość o dobre samopoczucie, miłą atmosferę, a czasem także elementy politycznej poprawności w zespołach.
Istotnym objawem tego kryzysu jest to, że programiści i testerzy coraz częściej odrzucają Agile, a w szczególności Scrum. Kiedy się porozmawia z nimi, poczyta fora programistyczne itp., coraz częściej widać niechęć i wyśmiewanie się z Agile Coachów i Scrum Masterów. Kiedyś było inaczej: dziesięć a nawet jeszcze sześć lat temu o Scrum i Agile mówiło się na konferencjach dla programistów, stanowili oni też dużą część uczestników szkoleń dla Scrum Masterów. Teraz trafiają się pojedynczo, a na blogach i konferencjach developerskich już się o Agile pozytywnie nie mówi. Coś się ewidentnie zmieniło w tym jak programiści i testerzy postrzegają Agile i Scrum – i z czegoś ta zmiana wynika.
Ja uważam, że powodem tej zmiany postrzegania jest to, że coraz częściej Scrum jest czymś, co inni robią developerom, a nie czymś, co developerzy robią, żeby lepiej działać.
Dzieje się zatem fatalna rzecz – Scrum w szczególności, a Agile w ogólności, odrywa się od swoich korzeni. Bo przecież te metody – które w swoich zrębach tworzono pod koniec ostatniej dekady ubiegłego wieku – powstały w zespołach budujących oprogramowanie, zmagających się z trudnymi projektami. I to nie byle jakich zespołach, ale wysoce zmotywowanych, niewielkich i zgranych, złożonych z ludzi, którym zależało i na powodzeniu produktu i na dobrym rzemiośle. Agile – „zwinne sposoby pracy” – to zatem efekt organicznych wysiłków tych ludzi: programistów, testerów i pracujących z nimi bezpośrednio menedżerów. To tacy ludzie – zaangażowani i rozumiejący istotę pracy nad rozwojem oprogramowania – wypracowywali „w boju” praktyki i schematy, które później zostały „skodyfikowane” w metodach takich jak Scrum. Podobnie, to dyskusja nad tymi podejściami doprowadziła uczestników pamiętnego spotkania w lutym 2001 roku do zapisania pewnych wspólnych ich cech w „Agile Manifesto”.
Wiem to nie tylko z ich relacji, ale i z własnego doświadczenia. Wraz z moim zespołem dokładnie w taki właśnie sposób odkryłem Agile – to znaczy najpierw pracowaliśmy w krótkich sprintach i tak dalej, bo to było rozsądne rozwiązanie w naszych warunkach, a dopiero potem dowiedzieliśmy się z książek, że to ma już nawet nazwę (tutaj o tym opowiadam a tu piszę).
Dziś niestety coraz częściej Scrum jest narzucaną odgórnie metodyką, „wciskaną” często bez sensu i pomyślunku. „Bez sensu” z poprzedniego zdania jest bardzo szerokie – od braku przemyślenia podziału na produkty i co za tym idzie odpowiedniej struktury zespołów, poprzez próby pogodzenia Scruma i zwinności z silosową organizacją, stosowanie go jako „best practice” (przymusowego sposobu pracy nawet tam, gdzie akurat nie ma on sensu) , po kompletne ignorowanie faktu, że żadnego Scruma nie da się zrobić, jeśli zespoły nie mają podstawowych narzędzi do pracy (sprawne i szybkie komputery, repozytoria kodu, systemy testowe itp. itd.) oraz – co najważniejsze – jakiejkolwiek motywacji do tego, by faktycznie pracować lepiej.
Co gorsza, Scrum Master i Agile Coach stały się osobnymi zawodami. To już nie są członkowie zespołu, którzy mają dodatkową rolę dbania o jego rozwój i usprawnianie jego pracy. Obecnie to są już osobni specjaliści, których umiejętności to facylitacja, otwarte pytania, „uwalniające struktury”, flipowanie, dawanie feedbacku (dowiedziałem się ostatnio, że istnieją konkursy w dawaniu feedbacku!) – i którzy najczęściej nigdy w życiu nie programowali, w związku z czym kompletnie nie rozumieją co tak naprawdę robią ludzie, z którymi pracują.
Ta sytuacja ma zresztą inne wymiary. Scrum Master, który nie umie czytać kodu, nie wie czym różni się funkcja od metody, nie wie co to repozytorium, branche itp., nie tylko nie rozumie wyzwań jakie stoją przed zespołem – nie jest także w stanie efektywnie pomóc we wdrożeniu dobrych praktyk technicznych, bo najpewniej nie wie o ich istnieniu. Często także nie rozumie, jak istotne jest częste integrowanie i testowanie działającego oprogramowania, w efekcie zamiast na tym, żeby produkt działał a kod był dobry, koncentruje się na „dobrej atmosferze”, albo na zwalczaniu wyimaginowanych problemów (np. „nierówność w zespole”).
Tu warto podkreślić, że nie chodzi o to by „skreślić” każdą osobę, która nie mając żadnej wiedzy technicznej ani doświadczenia, została Scrum Masterem. Zdarzają się i tacy, którzy pomimo to dobrze pracują ze swoimi zespołami (choć najczęściej, kiedy się przyjrzeć tym przypadkom, to wykonali jednak jakiś wysiłek, by lepiej zrozumieć, co zespół robi). Niestety, kiedy stało się powszechne, odkąd nie mający pojęcia o programowaniu Scrum Masterzy nie są wyjątkowymi przypadkami tylko regułą, to zaczynamy mieć problem. Właśnie ten problem, że Scrum staje się czymś, co inni robią developerom; w dodatku inni, którzy nie mają pojęcia o tym, na czym w istocie polega praca developerów.
Połączenie tych dwóch elementów – „wciskania” na siłę, bez pomyślunku Scruma oraz Scrum Masterów czy Agile Coachów, którzy nie rozumieją meritum pracy zespołów – to główne przyczyny, dla których tenże Scrum w wielu miejscach nie działa. Inną ważną przyczyną jest ogólnie niski poziom zaangażowania ludzi w ich pracę. Jak już pisałem, Scrum (i Agile w ogóle) powstał wśród ludzi zaangażowanych w to co robili – zarówno na poziomie rzemiosła jak i zaangażowania w los produktu, który tworzyli. Przełożenie ich doświadczeń i wypracowanych przez nich metod na ludzi, których z produktem wiąże wyłącznie wypłata, a którzy rzemiosło (czyli jakość kodu i architektury) mają w głębokim poważaniu, okazuje się trudne (delikatnie rzecz nazywając).
Zatem zamiast zaangażowanych (a więc chcących!) programistów i testerów, którzy empirycznie wypracowują lepsze sposoby pracy nad produktem, na którym im zależy, mamy teraz coraz częściej zdemotywowanych programistów i testerów, którzy są zmuszani do udziału w „ceremoniach” – i to do tego przez „szamanów” nie mających pojęcia o tym, co taki programista czy tester robią. Nie dziwota, że im się to nie podoba, i że nie daje obiecywanych efektów (a więc często wydawanego, działającego i wartościowego oprogramowania).
Duch czasów – obowiązkowy optymizm – nakazuje zakończyć ten tekst jakimiś pozytywnymi wskazówkami lub propozycją wyjścia z problemu. Na tę chwilę jednak nie widzę tu żadnego „rozwiązania”, a więc czegoś co mogłoby szybko i radykalnie poprawić sytuację.
Pozostaje zatem robić swoje, a więc przede wszystkim szerzyć dobrą, solidną widzę o Scrumie i Agile wśród tych, z którymi mam okazję pracować – dbać o to, by Scrum Masterzy dobrze rozumieli swoją rolę i dbali o to, by Scrum był tym, co robi ich zespół, a nie czymś co oni robią temu zespołowi. Ważne by mieli też zdrowy, a więc pragmatyczny stosunek do samej metody.
Trzeba także zmienić sposób kształcenia Scrum Masterów, dostosowując go do faktu, że coraz więcej z nich nie ma pojęcia o programowaniu. Trzeba im zatem dostarczyć namiastki tego doświadczenia oraz przekazać wiedzę niezbędną, by mogli dobrze rozumieć zespoły i nawiązać z nimi merytoryczną komunikację. Innymi słowy Scrum Masterzy powinni poznać podstawy programowania – i to najlepiej nie ucząc się ich od swojego zespołu, już w pracy. Jeśli nie mają nawet podstaw to będzie to dla tego zespołu frustrujące i spowalniające, o ile w ogóle zespół zechce podjąć się tłumaczenia tychże podstaw swojemu Scrum Masterowi. Lepiej zrobią to profesjonaliści mający doświadczenie w nauczaniu.
Dlatego w Code Sprinters – korzystając z naszych programistycznych „korzeni” – zamierzamy przygotować specjalny program edukacyjny umożliwiający Scrum Masterom, którzy nie mają żadnej wiedzy o programowaniu uzyskanie niezbędnych podstaw w bezpiecznym, wspierającym środowisku.
-
Jak wprowadzić Agile poprzez projekt pilotażowy?
Duża popularność metod zwinnych powoduje, że obecnie niemal każda organizacja, która jeszcze w taki sposób nie pracowała, chce przynajmniej spróbować jak sprawdzałby się taki sposób pracy. Typowym pierwszym krokiem wejścia w Agile jest przeprowadzenie pilotażu, a więc możliwie zgodnego z zasadami wdrożenia jednej lub więcej metod zwinnych w pewnym relatywnie niewielkim przedsięwzięciu (obszarze, produkcie, projekcie).
Zalety takiego podejścia to:
- ograniczenie ryzyka i skali trudności,
- zebranie doświadczeń i wytworzenie wewnętrznej wiedzy w organizacji na temat stosowania metod i praktyk Agile w konkretnym środowisku, co przyda się przy ich dalszym wprowadzaniu,
- uzyskanie pozytywnych efektów, co ułatwi utrzymanie lub nawet dopiero uzyskanie wsparcia kierownictwa organizacji dla Agile.
[W dalszej części artykułu używam określenia „produkt” tak, jak jest on rozumiany w metodykach zwinnych np. Scrum. W tym rozumieniu „Produkt” to konkretny system lub aplikacja, dostarczająca konkretnych funkcji użytkownikom lub innym systemom, technologicznie i pojęciowo wyodrębniona od innych. W tym artykule słowo „produkt” nie oznacza zatem rezultatu jakiegoś działania, lecz istniejący w czasie byt, który w efekcie działań zespołu podlega zmianom. Słowo „produkt” nie oznacza także warstwy technologicznej albo dokumentu, ale zawsze działające oprogramowanie dostarczające wartościowych funkcji ludzkim użytkownikom lub innym systemom.]
Wybór przedsięwzięcia
Obszar dla pilotażu można wybrać na dwa sposoby:
- najbardziej zmienny obszar – wybranie produktu (systemu, aplikacji), gdzie jest największa zmienność wymagań i co za tym idzie przed wprowadzeniem metod zwinnych największe obciążenie zespołu niestabilnością wynikającą ze sprzecznych żądań i oczekiwań interesariuszów. W takim systemie można pokazać szybko istotną poprawę przewidywalności i przepustowości pracy, często także podniesienie jej jakości.
- bezpieczny produkt – wybranie relatywnie wydzielonego (zarówno produktowo jak i systemowo) produktu. Dla takiego produktu będzie łatwo wykonać „czyste” wdrożenie podlegających pilotażowi praktyk, a przede wszystkim uzyskać odpowiednie działanie Product Ownera, umożliwiające reakcję na zmienne oczekiwania użytkowników / klientów poprzez ciągłą zmianę i dopasowywanie wymagań kierowanych do realizacji. To powinno umożliwić zademonstrowanie realnych korzyści wynikających z podejścia Agile. Odrębność technologiczna ułatwia doprowadzenie praktyk technicznych i jakości do wymaganego poziomu.
Wybór jednej z powyższych opcji możno zależy od sytuacji. Wskazana jest dyskusja przed jego dokonaniem, pomocny może tu być konsultant (Agile Coach), który może służąc swoim doświadczeniem doradzić przy wyborze.
W każdym przypadku jest wskazane, aby produkt (oprogramowanie) był „produkcyjny”, a więc dostępny dla użytkowników. Najlepiej aby był taki od samego początku względnie stał się takim relatywnie szybko podczas trwania pilotażu. Dzięki temu:
- możliwe jest osiągnięcie realnych korzyści ze zwinności poprzez dostarczanie użytkownikom (klientom) działającego oprogramowania, którego mogą od razu używać oraz możliwość szybkiego reagowania na rzeczywiste potrzeby zgłaszane przez użytkowników (klientów) już w trakcie prac,
- realne sprawdzenie poziomu technologicznego, w tym zastosowanych rozwiązań i praktyk z zakresu automatyzacji testów i procesu wydań,
- dyscyplina i zaangażowanie zespołu pilotażowego są większe, gdy mają oni świadomość, że wytwarzają realnie działający produkt, a nie tworzą coś „do szuflady”.
Przy wyborze obszaru pewne znaczenie ma dostępność oraz osobowość związanych z nim interesariuszy. Zaleca się prowadzenie pilotażu na produktach, których interesariusze są dostępni, otwarci na sposób pracy wymagający częstej interakcji przynajmniej z Product Ownerem, a zarazem borykają się z dużą zmiennością i nieprzewidywalnością, co powoduje trudność w stworzeniu stabilnych wymagań. Interesariusze o omówionych cechach dają największe szanse nie tylko na powodzenie pilota, ale także na osiągnięcie realnych korzyści w wyniku zastosowania metod i praktyk Agile.
Po wyborze obszaru do pilotażu jest zalecane określenie celów oraz ustalenie metryk, które zostaną użyte do upewnienia się, że owe cele są osiągane. Mowa tu o celach wykraczających poza same metodyki i praktyki Agile. Cele i metryki powinni ustalić zarządzający, którzy podejmują decyzję o pilotażu. Ponownie użyteczne może być wsparcie doświadczonego doradcy (Agile Coacha).
Role i ich przygotowanie
Poniżej wymieniam role, które wystąpią w pilotażu, krótko je opisując i wskazując kogo optymalnie wybrać do ich pełnienia. Wskazane jest przygotowanie osób mających wziąć udział w pilotażu, stąd podaję także zalecane szkolenia i warsztaty z oferty Code Sprinters.
Role:
- Product Owner – osoba decydująca o tym, jakie funkcjonalności będą budowane przez zespół i dostępne w kolejnych wersjach produktu (po kolejnych sprintach). Osoba ta powinna mieć wiedzę biznesową z obszaru produktu (np. przy tworzeniu systemu do sprzedaży internetowej polis ubezpieczenia podróżnego idealnie PO byłby osobą z biznesu, która zajmowała się sprzedażą takich polis względnie ich formułowaniem jako produktów ubezpieczeniowych). Osoba ta powinna mieć odpowiednie umocowanie – nadaną pełnię władzy do decydowania o kształcie produktu.
Zalecane szkolenia to: Professional Scrum Product Owner, a następnie Product Owner Toolbox.
- Scrum Master – osoba dbająca o proces, a także o zespół developerski, pilnująca trzymania się zobowiązań i standardów, wspomagająca wszystkich w rozumieniu i stosowaniu Scrum. Wskazane jest, by rolę tą pełniła osoba, która nie ma osobowości dominującej i dyrektywnej (z tego względu może to być rola trudna dla osób mających doświadczenie jako menedżerowie projektów – PM). Nie jest wskazane, by w roli tej występowała osoba, która była – lub co gorsza nadal jest – menedżerem liniowym innych osób biorących udział w pilotażu, zwłaszcza zaś zespołu developerskiego i PO. Wskazane jest zapewnienie nowemu Scrum Masterowi regularnego wsparcia Agile Coacha. W niektórych przypadkach może być wskazane pełnienie tej roli przez kilka pierwszych sprintów przez zewnętrznego Scrum Mastera o większym doświadczeniu.
Zalecane szkolenia dla osoby mającej być Scrum Masterem: Professional Scum Master, a następnie Scrum Master Toolbox.
- Zespół Developerski – osoby, które będą wykonywać pracę implementacji wymagań i wydawać regularnie kolejne wersje produktu. Zespół powinien nie przekraczać 10 osób. Powinien być „wskrośfunkcjonalny”, a więc składać się z osób posiadających ogółem, w sumie wszystkie kompetencje niezbędne dla zbudowania co sprint w pełni działającego, używalnego produktu. Jest wskazane, acz niekonieczne, aby zespół skompletować z ochotników. Jest niezbędne aby na czas przedsięwzięcia osoby wchodzące w skład zespołu developerskiego były przypisane do niego w 100%, a więc nie brały udziału w żadnych innych przedsięwzięciach, projektach itp. Jest wysoce wskazane dobranie osób do zespołu z jednej lokalizacji, idealnie umieszczenie członków zespołu w jednym pokoju. Pozwoli to na szybkie zawiązanie więzi różniących zespół od grupy oraz użycie prostych a zarazem najbardziej skutecznych sposobów wizualizacji (tablica, karteczki itp.).
Zalecane szkolenia: Scrum w Pigułce lub Professional Scrum Foundations, zależnie od posiadanej wiedzy warsztaty Test Driven Development dla odpowiedniej technologii.
- Menedżerowie liniowi – menedżerowie liniowi to w tym przypadku albo przełożeni osób delegowanych do pilotażu, albo menedżer liniowy formalnie nad całym zespołem pilotażowym. Wskazane jest, by była to osoba otwarta, której doświadczenie i osobowość ułatwią jej wejście w postawę wspierającego lidera (ang. servant leadership).
Wskazane szkolenia: Scrum w Pigułce, warsztaty Management 3.0.
- Interesariusze – osoby (najczęściej z tzw. biznesu), które mają możliwość zgłaszania funkcjonalności do produktu. Dobór interesariuszy jest związany z wyborem produktu, dlatego wskazane cechy omówiłem już powyżej.
Wskazane szkolenia: Scrum w Pigułce, przy większych lub bardziej złożonych produktach może być wskazany udział interesariuszów w prowadzonych przez konsultanta warsztatach Story Mappingu, które pozwolą nie tylko lepiej zdefiniować produkt ale także umożliwią interesariuszom uzyskanie jego szerszej perspektywy, co ułatwia ich współpracę z Product Ownerem.
W niektórych przypadkach (nowy zespół, małe doświadczenie w organizacji) może być wskazany udział całego zespołu pilotażowego w przygotowanym dla niego „na miarę” programie „Agile Kickstart”. Może on wtedy zastąpić niektóre ze szkoleń polecanych powyżej.
Powyższy opis zakłada zastosowanie najpopularniejszej metody Agile: Scrum. Dla zastosowania metody Kanban przygotowanie będzie podobne jeśli idzie o Product Ownera, różni się jeśli idzie o pozostałe role (np. rola Scrum Mastera nie występuje, zasady organizacji zespołu są inne itp.).
Przeprowadzenie pilotażu
Podczas prowadzenia pilotażu należy dbać o zachowanie zasad metody Scrum, a także przejrzystości (czemu służy m.in. przygotowanie i bezwzględne przestrzeganie Definition of Done, dbanie o dostępność i czytelność Backlogu Produktu itp.). Niezwykle istotne jest wykonywanie nie tylko zakładanych w procesie retrospekcji zespołu, ale także retrospekcji z udziałem interesariuszów i menedżerów – pierwsza taka retrospekcja powinna odbyć się już po trzecim sprincie. Istotne jest również śledzenie założonych uprzednio metryk sukcesu, zwłaszcza biznesowego, oraz dbanie o zachowanie standardów technicznych – dobrej jakości kodu, testowania, niskiej stopy błędów itp.
Jest wskazane aby podczas pilotażu zespół korzystał z tradycyjnych, papierowych technik wizualizacji sprintu (tablica, karteczki itp.) nawet jeśli docelowo planowane jest wdrożenie elektronicznego narzędzia wspierającego. Takie podejście ma na celu lepsze zrozumienia roli tego rodzaju artefaktów, co może być trudniejsze jeśli od razu zastosowane one zostaną w wersji elektronicznej. Jeśli sytuacja tego wymaga (rozproszeni interesariusze) to wyjątkiem może być sam Backlog Produktu, który może być prowadzony elektronicznie. Najlepiej prowadzić go wówczas w jak najprostszym narzędziu – np. Google Sheets.
Podczas prowadzenia pilotażu może być przydatne wsparcie zewnętrznego Agile Coacha. Podczas regularnych wizyt będzie on:
- prowadzić obserwację stanu procesu i zespołu, by następnie przekazać zalecenia i sugestie Scrum Masterowi i zespołowi,
- poprowadzić niektóre wydarzenia np. wspomnianą wyżej dodatkową retrospekcję,
- wspierać coachingowo i mentorsko Scrum Mastera i Product Ownera.
Zespoły mające deficyty umiejętności w zakresie nowoczesnych narzędzi i technik programowania i zapewnienia jakości mogą skorzystać ze wsparcia konsultanta technicznego – doświadczonego praktyka, który pracując z zespołem pomoże mu szybciej takowe techniki opanować, a narzędzia wdrożyć.
Ocena i dalsze działania
Po jakimś czasie (może to być ustalony z góry czas lub też moment osiągnięcia założonych wcześniej celów lub stanu produktu), wskazane jest dokonanie podsumowania pilotażu i oceny jego skutków. Pomocne w tym będą ustalone wcześniej metryki sukcesu i prowadzona podczas pilotażu ich systematyczne zbieranie. Wskazane jest dokonanie także badania satysfakcji interesariuszy oraz ew. użytkowników będącego przedmiotem pilotażu produktu. Na tej podstawie kierownictwo podejmuje decyzję co dalej – czy nastąpi szersze zastosowanie metod zwinnych, a jeśli tak to w jakim scenariuszu.
Jeśli zostanie podjęta decyzja pozytywna, to – zależnie od wybranego produktu – prace nad nim mogą być kontynuowane dalej przez ten sam zespół. Będzie to już jednak „normalna” praca, nie pilotaż. Inne podejście to rozproszenie członków zespołu pilotażowego po nowo utworzonych kolejnych zespołach.