-
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.
-
„Czy Scrum jest trudny?”
-
Nagranie o „best practices”