• Agile,  Zarządzanie

    Mit bezpieczeństwa psychologicznego

    Z „bezpieczeństwem psychologicznym” z pewnością nie raz i nie dwa zdarzyło się nam wszystkim zetknąć w różnych prezentacjach czy publikacjach związanych z nowoczesnym zarządzaniem i zwinnością. Mimo to pokuszę się o przytoczenie definicji:

    Bezpieczeństwo psychologiczne, czyli przekonanie, że nikt w zespole nie będzie ukarany lub upokorzony, gdy zdecyduje się podzielić pomysłem, poprosić o pomoc, przyznać do błędu lub wątpliwości.

    [ źródło ]

    Brzmi rozsądnie, sensownie. Stoją za tym nawet jakieś badania, co przydaje temu terminowi nimbu naukowości. Czemu zatem w tytule nazwałem go „mitem”?

  • Agile,  Zarządzanie

    Nie stawiajcie Scruma na głowie!

    Kryzys Agile, o którym pisałem pół roku temu stał się już tak widoczny, że właściwie nikt nie polemizuje już z samą tezą o jego istnieniu. Niektórzy jednak zaczęli się pocieszać, że to w sumie nic złego.

    Rozumowanie, które do tego prowadzi jest takie: deweloperzy nie muszą wcale się interesować procesem, Scrumem, organizacją pracy. To my, Scrum Masterzy i Agile Coache jesteśmy od tego! My im to zorganizujemy, poukładamy, a oni będą się mogli skupić na tym, w czym są dobrzy, na wykonywaniu pracy (czyli kodowaniu).

    Postawa taka jest dla mnie antytezą tego, czym Agile jest – a może raczej miał być.

    Uważam tak, bo istotnym elementem idei Agile w ogólności a Scrum w szczególności to jest to, że to ludzie wykonujący pracę sami ją sobie organizowali. W Scrum organizacja narzuca być może strukturę, w tym właśnie Scrum, narzuca podział na zespoły (choć lepiej jeśli pozwoli ludziom się samym do nich przypisać lub choćby o tym współdecydować), ale o całej reszcie ma decydować zespół. Ba! Cała następna fala nowatorskich metod zarządzania klasy Holakracji idzie jeszcze dalej: ludzie (pracownicy) sami ustalają także struktury oraz podział odpowiedzialności i obowiązków, który jest przez nich dynamicznie dostosowywany zależnie od potrzeb.

    Skąd ta idea się wzięła? Choćby z obserwacji, że to ludzie bezpośrednio wykonujący pracę mają najwięcej wiedzy na temat tego jak ona jest wykonywana, a zatem są w najlepszej pozycji do tego, żeby ją usprawnić, poprawić. A także z obserwacji, że jeśli ludzie mają wpływ na to jak pracują, to są bardziej zaangażowani w pracę – co powoduje, że jeszcze bardziej im zależy, żeby to dobrze działało. I tak mamy w organizacji – a przynajmniej w zespole – pozytywne sprzężenie zwrotne, które podnosi i jakość pracy i zaangażowanie. To właśnie do tego służą w Scrumie retrospekcje – robiliśmy pracę cały sprint, teraz pomyślmy jak tą pracę robiliśmy, żebyśmy robili ją jeszcze lepiej – bo nam zależy na tym, żeby robić ją lepiej.

    Zresztą, Scrum wziął się stąd że zaangażowani deweloperzy i współpracujący z nimi produktowcy, menedżerowie kombinowali jak pracować lepiej. W skrócie, Scrum to jest coś co zespół robi, żeby lepiej działać (o czym już pisałem szerzej w przywołanym już artykule).

    Mentalność „my wam to poustawiamy, nie musicie tego robić, wy macie kopać” jest z tym sprzeczna, wręcz szkodliwa. Obniża zaangażowanie, promuje postawę klasy „ja tu robię X od-do, a resztę mam w… głębokim poważaniu” albo „niech menedżer … ee.. Scrum Master się tym zajmie, to nie moja sprawa”. To jest po prostu stawianie Scruma na głowie, powrót do biernych deweloperów zarządzanych przez menedżerów którzy – jako ci starsi i mądrzejsi – poustawiają im świat. Czyli powrót dokładnie do tego w opozycji do czego cały ruch Agile w ogóle powstał. Innymi słowy, takie myślenie to prosta droga do tego, żeby Scrum nie był czymś co robią deweloperzy, żeby lepiej działać ale stał się czymś, co inni robią deweloperom. A to, jak już wiemy, nie działa.

    Właśnie między innymi dlatego, żeby walczyć z takimi pomysłami w najnowszym Scrum Guide nie ma już ról. Są odpowiedzialności w zespole (Scrum Team). Cały zespół odpowiada za to, czy praca jest dobrze zorganizowana. Cały zespół odpowiada za to, czy jest wartościowa.

    Jeśli to czytasz a masz odpowiedzialność Scrum Master apeluję: nie stawiaj Scruma na głowie! Nie próbuj we wszystkim zespołu wyręczyć, wszystkiego im poukładać. Pewnie, jak zespół jest mało doświadczony, w ogóle świeży (w sensie nie pracowali razem wcześniej) to tego układania potrzebuje więcej. Ale z czasem ma być go coraz mniej. Nigdy nie stawiaj się ponad zespołem, nigdy nie myśl, że TY im poukładasz a oni nie muszą o tym myśleć. Właśnie przeciwnie – powinni o tym myśleć. Jako SM masz dążyć do tego, żeby każdy członek zespołu czuł się odpowiedzialny nie tylko za swoje „od-do”, ale za całość: całość tego jaki produkt jest, ale także całość tego jak wygląda nasz zespół, jak wygląda organizacja, co można poprawić albo zmienić – i tak dalej.

    Jeśli będzie inaczej twój zespół po prostu odrzuci Scruma, potraktuje go jako kolejny wymysł menedżerów wciskany im na siłę. A nie o to przecież chodzi.

  • Agile,  Zarządzanie

    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.