Kontekst cyklu artykułów

To jest część trzecia cyklu artykułów o projektowaniu praktyk i rozwiązywaniu problemów z tym powiązanych. Poprzednie dwie części:

W części drugiej pozostawiliśmy Was z pytaniem “Jak to wszystko zrobić mając ograniczony czas i środki, a tak w ogóle to gdy wszyscy czegoś ode mnie chcą?!”. Czas odpowiedzieć na to pytanie.

Jak rozwiązać problem zmieniających się zasobów i wymagań?

Czy kiedyś rozpoczynaliście projekt pomimo faktu, że brakowało wam w zespole osoby, która zna niezbędną technologię? Czy w trakcie projektu jakiś członek zespołu nagle zachorował, w wyniku czego deadline stał się niemożliwy?

 

Autor: Arleta Rynk

 

Problem Wielkiego Trójkąta - czas, zakres i zasoby

Jak wygląda harmonogram rekrutacji

Z perspektywy studentów, rekrutacja na praktyki zaczynała się w marcu. Studenci musieli też otrzymać odpowiedź do końca kwietnia - przed długim weekendem majowym.

Bazując na powyższym:

  • W marcu musiał być gotowy nowy program rekrutacyjny (faza pierwsza)
  • W kwietniu musiał mieć miejsce warsztat rekrutacyjny (faza druga)
  • Same praktyki miały miejsce w lipcu i sierpniu.

Z naszego punktu widzenia praca nad praktykami zaczynała się jednak w okolicach stycznia - musieliśmy zebrać informacje odnośnie potrzeb firmy, jak oceniani są praktykanci z poprzednich lat, co praktykanci sami twierdzą odnośnie poszczególnych szkoleń… ogólnie, styczeń i luty były dla nas dość gorącymi miesiącami.

Problem, jak zwykle, leży w datach.

Problem kilku dat

Jakie są szanse, że Dział Rekrutacji może podać nam z wysokim prawdopodobieństwem faktyczne potrzeby firmy na wrzesień, jeśli pytamy ich o to w styczniu i lutym?

Jakie są szanse, że technologie potrzebne firmie we wrześniu będą uwzględnione w programie rekrutacyjnym w marcu?

W zależności od tego jakie byłyby potrzeby technologiczne (C#, Javascript, Java, Python…), powinniśmy trochę inaczej zrobić rekrutację i sam program praktyk. Niestety, te informacje dostawaliśmy najczęściej nie przed kwietniem.

Problem braku czasu

Co gorsza, praktyki nie były jedyną rzeczą jaką się zajmowaliśmy. Na co dzień byliśmy przydzieleni na większą część etatu do pracy w projektach komercyjnych.

Nawet, gdybyśmy wiedzieli jakie role i technologie są potrzebne w styczniu, zwykle nie było dość czasu na poważną przebudowę programu rekrutacyjnego.

W 2017 roku przeprowadziliśmy (sumarycznie) ponad 5000 godzin szkoleniowych więcej niż w 2012 roku gdy zaczynał się program praktyk. Niestety, problem Wielkiego Trójkąta nie był możliwy do rozwiązania stricte na poziomie szkoleniowym.

Co z tego, że teoretycznie moglibyśmy przebudowywać prawidłowo program rekrutacyjny, skoro nigdy nie mieliśmy dość czasu? Był to nowy typ problemu, nie rozpatrywany przez nas do tej pory.

Problem, całościowo

Jak zatem radzić sobie z nieoznaczonymi wymaganiami (które dodatkowo przychodzą za późno) i nie do końca pewnymi zasobami? Zwłaszcza, że wszyscy przywykli już do pewnego standardu tych praktyk i oczekiwania jedynie rosną?

Z pewnością ten problem jest niemożliwy do rozwiązania, prawda?

A skąd ;-).

Coś za coś

Co działało do tej pory

W tym miejscu fajnie by było mieć bardzo atrakcyjne rozwiązanie z serii “Te 6 kroków gwarantuje Ci szczęście”, “Rób tak a zawsze osiągniesz sukces”. To rzadko jest takie proste, ale przyjrzyjmy się temu, co do tej pory wypracowaliśmy.

Do tej pory działały dla nas następujące kroki:

  1. Zidentyfikujcie interesariuszy projektu,
  2. Zrozumcie, jakie są ich wymagania wobec projektu oraz jakich korzyści oczekują od nas ci interesariusze,
  3. Zmieniajcie jeden parametr naraz, toczcie dialog z interesariuszami aż uda się zbudować wizję tego, co należy dostarczyć,
  4. Zaprojektujcie i zbudujcie rozwiązanie, które faktycznie dostarcza to, co miało być dostarczone.
    1. Upewnijcie się, że Wasze rozwiązanie odpowiada na konkretny problem. Upewnijcie się, że mierzycie to, co jest ważne a nie to, co jest łatwe.
    2. Upewnijcie się, że macie ogląd na cały system zanim zmienicie jakiekolwiek ogniwo złożonego łańcucha. W innym wypadku możecie usunąć mechanizmy kompensujące i wprowadzić porażkę do systemu, który wcześniej całkiem nieźle sobie radził.
    3. Nie zapomnijcie o tym, że rozwiązania działają w różnych skalach. Bądźcie świadomi, że zmniejszenie lub zwiększenie skali może wymagać przeprojektowania rozwiązania.
    4. Widząc pozornie sprzeczne cele różnych interesariuszy pomyślcie, czy da się tak zaprojektować rozwiązanie by dostarczyć wszystkim jakąś wartość. Najczęściej jest to możliwe - różne strony mają różne cele i zwykle da się znaleźć obszar wspólnie korzystny.

W teorii, program praktyk możemy usprawniać w nieskończoność i możemy dostarczyć idealne rozwiązanie przy użyciu powyższych kroków.

W praktyce, nigdy nie ma wystarczającej ilości czasu oraz budżet też jakoś nie jest zrobiony z gumy.

Jak zatem rozwiązać problem priorytetyzacji - co (i czy) należy zrobić posiadając ograniczoną ilość czasu i zasobów?

Jakkolwiek dziwnie to nie zabrzmi, najpierw trzeba sprawdzić co się stanie, jeśli nie zrobimy nic.

Hipoteza zerowa (Null Hypothesis)

Inżynier to nie jest ktoś, kto dostarcza rozwiązania perfekcyjne. Inżynier dostarcza rozwiązania wystarczająco korzystne pod kątem wartości interesariuszy oraz zgodne z czasem i budżetem.

By rozwiązać problem potencjalnie za małego czasu i za małej ilości zasobów, przetestujmy hipotezę zerową – „nie zrobimy niczego, nic nie zmienimy”.

Co się wtedy stanie?

Cóż, możemy wykorzystać rekrutację z poprzedniego roku.

Jakie są implikacje?

  • Rekrutujemy osoby zgodne z profilem roku ubiegłego a nie aktualnego
  • Rozwiązania zadań mogły wyciec do internetu więc możemy dostać za dużo osób na selekcję do fazy drugiej (warsztat)
  • Z uwagi na to, że co roku przychodzi coraz więcej osób, co roku podnosimy trudność rekrutacji. Jeśli tego nie zrobimy, możemy dostać za dużo osób na selekcję do fazy drugiej.

Innymi słowy, hipoteza zerowa daje następujący efekt:

  • dostaniemy kandydatów o profilu odbiegającym od oczekiwanego (acz nadal korzystnym)
  • będziemy mieli więcej pracy przy selekcji na warsztat.
  • odbiegający profil wymusi na nas też przebudowanie programu praktyk – więcej pracy w wakacje by dodatkowo przesunąć grupę kulturowo i kompetencyjnie pod kątem oczekiwanego profilu.
  • Konsekwencja: nieco niższy poziom (bo będą mieli mniej czasu na naukę).

Powyższe implikacje są niefortunne, ale nie są końcem świata. Jeśli taka sytuacja powtórzyłaby się dwa lata pod rząd, mogłoby być gorzej – ale jednorazowo nie byłaby bardzo dużym problemem.

Mamy zatem informację o “najgorszym możliwym stanie” - nie zrobimy niczego. Możemy zatem podejmować pewne działania - w ostateczności zawsze możemy wycofać się do hipotezy zerowej (czyli rekrutacji z poprzedniego roku).

Jak to wszystko zrobić? Najpierw trzeba określić co się stanie jeśli nie zrobimy nic. To daje nam punkt odniesienia, do którego możemy porównać wszystkie działania i do którego się możemy wycofać, minimalizując ryzyko.

Technika sześciu jedynek

Dobrze. Hipoteza zero sprawdzona, znamy najgorszy scenariusz. Załóżmy jednak, że mamy jakiekolwiek środki i trochę czasu. Jak możemy je wykorzystać, skoro w dowolnym momencie możemy je stracić?

Odpowiedź znajduje się w pierwszej części tego cyklu:

„Rozwiązanie jest lepsze, jeśli choć jednemu interesariuszowi pomaga w jakimkolwiek stopniu”.

Skupiamy się więc na tym, by pomóc jednemu interesariuszowi osiągnąć przyrost w obszarze jednej wartości. Akceptujemy przyrost rzędu jednego procenta. Oczekujemy wyniku po jednym tygodniu.

Ta technika nosi nazwę 1-1-1-1-1-1 i została zaproponowana przez Toma Gilba. Parafrazując:

  • Dostarcz co najmniej 1% przyrostu
  • 1 interesariuszowi
  • W ramach 1 wartości
  • W ciągu 1 tygodnia
  • Skup się na 1 kluczowej czynności
  • I zrób to używając tylko 1 strategii (podejścia do rozwiązania)

Jako przykład, spójrzmy na próbę usprawnienia wartości „więcej mówią o firmie”.

Założenia:

  • W 2018 roku firma Future Processing skupiła się na obszarach powiązanych z kosmosem i satelitami
  • Była stworzona kampania reklamowa powiązana z tym obszarem
  • Jeden interesariusz chce, by jak najwięcej osób wiedziało o tym, że FP ma powiązania z kosmosem

Przykładowe rozpisanie działania (hipotetyczne; akurat ten przypadek nie wystąpił):

  • Interesariusz: dział Branding
  • Co najmniej 1% przyrostu: większa ilość odwiedzin na strony z określonymi materiałami istotnymi dla firmy w czasie trwania rekrutacji na praktyki (w rzeczywistości ta miara pochodziłaby od interesariusza)
  • Wartość: powiązanie Future Processing z działaniami powiązanymi z kosmosem
  • 1 tydzień: przepisanie dokumentu z „maszyny czasu” na „podróż na księżyc” (realnie: 2-3 dni)
  • Czynność: Rozwiązywanie zadania rekrutacyjnego przez studentów
  • Strategia: studenci rozwiązujący zadanie zapoznają się z tematem kosmosu, który jest ważny dla firmy. Dodatkowo, pojawią się tam linki do materiałów które firma chce pokazać.

Co nam z tego wyszło?

Zauważcie, że nawet jakbyśmy mieli tylko jeden tydzień, to powyższa implementacja daje nam dwie możliwości:

  • Będzie większa ilość odwiedzin na stronie -> rekrutacja była korzystniejsza niż rok temu, bo inne parametry nie uległy zmianie
  • Nie będzie większej ilości odwiedzin na stronie -> strategia była niewłaściwa. Straciliśmy jeden tydzień, ale nic więcej. Jesteśmy na poziomie hipotezy zero.

Jak to wszystko zrobić?

Iteracyjnie.

Skupcie się na jednej wartości jednego interesariusza, dostarczcie w ciągu tygodnia co najmniej 1% przyrostu i tak dobierzcie strategię aby zmaksymalizować ten przyrost nie uszkadzając innych elementów systemu.

Gdzie warto skupić energię (lub gdzie jej nie warto skupiać)?

Powyższa zmiana (przepisanie dokumentu) była zmianą mierzalną i potencjalnie korzystną z perspektywy interesariusza.

Nie wszystko nam się jednak udaje; przez brak czasu pojawiają się czasami błędy i rzeczy niespodziewane. Spójrzmy na dwa problemy, które się pojawiły w programach rekrutacyjnych do tej pory:

  • W 2015 roku program rekrutacyjny dał się rozwiązać przez dekompilację binarki (“shackowanie programu” dla osób mniej technicznych).
  • W 2018 roku program rekrutacyjny nie miał zaimplementowanych wszystkich warunków zwycięstwa, przez co był trochę prostszy niż oczekiwaliśmy (oraz dokumentacja była momentami myląca).

Czy powyższe to poważny problem?

  • Co z tego, że w 2015 roku dało się zdekompilować binarkę? Jeśli kandydat na praktyki potrafi rozwiązać problem w taki sposób, to ma wystarczający poziom umiejętności w pierwszym etapie. Innymi słowy, sito techniczne tak czy inaczej powinno go/ją przepuścić.
  • Co z tego, że zadanie w 2018 jest trochę prostsze niż zakładaliśmy? Jedyna implikacja to większa ilość odpowiedzi - nieco słabsze sito.

Co roku pojawiają się pewne problemy z zadaniem rekrutacyjnym, a my się tym zupełnie nie przejmujemy.

Te błędy które pokazaliśmy nie wpływają negatywnie na ŻADNEGO z interesariuszy i na ich wartości.

Owszem, nie powinny się pojawić i czasem jest nam trochę głupio – ale z uwagi na to, że nie wpływają negatywnie na żadnego interesariusza takie rzeczy są akceptowalne i nie mają żadnego znaczenia.

Gdyby któryś z tych błędów wpływał negatywnie na istotne wartości interesariuszy, musiałby być poprawiony. Ale takie błędy jakie mieliśmy nie stanowiły szczególnego zagrożenia - odpowiednio testujemy tą rekrutację zanim trafi do studentów.

Innymi słowy, mając ograniczony czas i zasoby poświęćcie energię tam, gdzie przyniesie to największy zwrot.

Szukajcie maksymalizacji wartości - nawet mając tydzień na niepełny etat da się coś usprawnić. W końcu o to chodzi w tych wszystkich technikach iteracyjnych (np. Agile).

Jak to wszystko zrobić?

Przede wszystkim nie marnujcie energii tam, gdzie nie przynosi to korzyści żadnemu interesariuszowi. Nie celujcie w perfekcyjne rozwiązanie a w rozwiązanie spełniające Wielki Trójkąt - czas, zakres i zasoby.

Powrót do tematu przebudowy rekrutacji

Jak z pewnością widzicie, w chwili obecnej nie jesteśmy w stanie “naprawić” rekrutacji przy aktualnie posiadanym czasie i zasobach.

Nie mamy czasu ani możliwości na napisanie pierwszej fazy rekrutacji, który spełni nasze potrzeby - zamiast tego rozwiązujemy ten problem podczas samych praktyk.

Podczas praktyk skupiamy się na budowaniu osób agnostycznych technologicznie, zdolnych do pracy z różnymi technologiami przy założeniu, że umiejętność szybkiego uczenia się technologii jest tu ważniejsza niż aktualna głęboka znajomość technologii.

W drugim miesiącu praktyk skupiamy się bardziej na przygotowaniu praktykantów do konkretnych technologii już bliżej zapotrzebowania technologicznego ze strony firmy - jest to strategia mniej kosztowna i więcej dająca niż przebudowywanie pierwszej fazy rekrutacji.

Dodatkowo, nasza hipoteza zerowa pokazuje sukces aktualnych praktyk - niekoniecznie przebudowywanie rekrutacji byłoby najkorzystniejszym działaniem z perspektywy wpływu oraz kosztów. Lepiej skupić się na praktykach niż na rekrutacji.

Czasami hipoteza zerowa wygrywa - i nie jest to złe. Trzeba wiedzieć, kiedy przestać ;-).

Podsumowanie

Podsumowanie artykułu

Odkąd zaczęliśmy pracę nad programem praktyk, bardzo dużo się nauczyliśmy - choć wiele jeszcze przed nami.

Kluczem do rozwiązania problemu “Jak to wszystko zrobić mając ograniczony czas i środki, a tak w ogóle to gdy wszyscy czegoś ode mnie chcą?!” jest uświadomienie sobie, że nie da się zrobić wszystkiego. Trzeba zdecydować co zrobimy i co musimy poświęcić.

Podczas priorytetyzowania, warto spojrzeć na hipotezę zerową - co się stanie, jeśli nie zrobimy niczego? Dzięki temu dostajemy punkt odniesienia - coś, do czego możemy się wycofać jeśli wszystko inne zawiedzie i coś, dzięki czemu widzimy o jaką stawkę tak naprawdę gramy.

Dzięki punktowi odniesienia mamy też poziom z którym możemy porównać wszystkie inne działania które chcemy przeprowadzić.

Mając hipotezę zerową, skupmy się na maksymalizacji wartości dla naszych interesariuszy działając w tygodniowych iteracjach przy użyciu techniki sześciu jedynek (projekt Toma Gilba).

Jeżeli będziemy skupiali się na największych korzyściach dla interesariuszy, mamy gwarancję, że każdy tydzień będzie dostarczał wartość odbiorcom - nawet jak skończą nam się zasoby to i tak zrobiliśmy coś korzystniejszego niż alternatywy (hipoteza zerowa lub pełna rewolucja).

Jedną z największych korzyści jest też skupienie się na dostarczaniu wartości.

Nie ma sensu poprawiać wszystkich błędów czy zabezpieczać się przed wszystkim - nie mamy na to czasu. Jeżeli coś nie wpływa negatywnie na żadną wartość żadnego interesariusza (zarówno w izolacji jak i na poziomie całego systemu), warto to zdepriorytetyzować i skupić się na tym dużo później, jeśli wystarczy czasu i zasobów.

Podsumowanie całości

W dwóch pierwszych artykułach omówiliśmy następujące kroki:

  1. Zidentyfikujcie interesariuszy projektu,
  2. Zrozumcie, jakie są ich wymagania wobec projektu oraz jakich korzyści oczekują od nas ci interesariusze,
  3. Zmieniajcie jeden parametr naraz, toczcie dialog z interesariuszami aż uda się zbudować wizję tego, co należy dostarczyć,
  4. Zaprojektujcie i zbudujcie rozwiązanie, które faktycznie dostarcza to, co miało być dostarczone.
    1. Upewnijcie się, że Wasze rozwiązanie odpowiada na konkretny problem. Upewnijcie się, że mierzycie to, co jest ważne a nie to, co jest łatwe.
    2. Upewnijcie się, że macie ogląd na cały system zanim zmienicie jakiekolwiek ogniwo złożonego łańcucha. W innym wypadku możecie usunąć mechanizmy kompensujące i wprowadzić porażkę do systemu, który wcześniej całkiem nieźle sobie radził.
    3. Nie zapomnijcie o tym, że rozwiązania działają w różnych skalach. Bądźcie świadomi, że zmniejszenie lub zwiększenie skali może wymagać przeprojektowania rozwiązania.
    4. Widząc pozornie sprzeczne cele różnych interesariuszy pomyślcie, czy da się tak zaprojektować rozwiązanie by dostarczyć wszystkim jakąś wartość. Najczęściej jest to możliwe - różne strony mają różne cele i zwykle da się znaleźć obszar wspólnie korzystny.

W tym artykule nałożyliśmy na te kroki priorytetyzację:

  1. Nie da się zrobić wszystkiego - działajcie do momentu wyczerpania któregoś z elementów Wielkiego Trójkąta (czasu, zasobów lub - o dziwo - zakresu)
  2. Wykorzystajcie hipotezę zerową by znaleźć punkt odniesienia i określić co się stanie jeśli nie zrobicie nic
  3. Działajcie iteracyjnie ze skupieniem na dostarczaniu wartości - przykładowo przy użyciu techniki sześciu jedynek. Spróbujcie zapewnić jak najkrótsze iteracje, by każdy tydzień przynosił wartość biznesową.
  4. Unikajcie robienia rzeczy nie przynoszących wartości żadnemu interesariuszowi. Priorytetyzujcie pod kątem wartości i wpływu na ostateczne rozwiązanie, nie pod kątem robienia tego, co jest łatwe.

Jakkolwiek jest to temat o którym możemy długo opowiadać, na razie ta trylogia dobiegła końca. Niewykluczone, że odniesienia do tego cyklu pojawią się jeszcze w przyszłych artykułach - na razie jednak czas na inne tematy.

Jeżeli chcecie dowiedzieć się czegoś więcej, zapraszamy do kontaktu lub komunikacji przy użyciu komentarzy.

Na pewno odpowiemy :-).

 

Bartłomiej Michalski i Łukasz “Żółw” Januszek