-
Czy Scrum Masterem trzeba się urodzić?
Czasem spotykam się z opinią, że Scrum Masterem to trzeba się urodzić, że właściwie nie można się tego nauczyć – można tylko rozwinąć już otrzymany dar.
Oczywiście, jest w tym stwierdzeniu pewna doza (tzw. źdźbło) prawdy. Jak w każdej pracy konieczne są pewne predyspozycje – i jedni je mają w stopniu dużym, inni przeciętnym, a inni nie mają ich wcale i lepiej, żeby się daną dziedziną nie zajmowali. Niemniej bycie Scrum Masterem to praca jak większość innych, składająca się w przytłaczającej większości z rzeczy, których można się nauczyć.
Dobrą analogią jest tutaj bycie kierowcą. Są ludzie, którzy z różnych powodów w ogóle nie powinni prowadzić samochodów – mają za wolną rekację albo jakiś inny problem, który powoduje, że stanowibliby zagrożenie dla innych. Są też ludzie, którzy są wirtuozami – jak się urodzili, to sięgali rączką po samochodzik, potem dokonywali dzikich ewolucji autem na pedały na placu zabaw, potem gokarty – i już prosta droga na podium w Rajdowych Mistrzostwach Polski (tak, zapewne żeby stanąć na tym podium trzeba się urodzić z pewnymi predyspozycjami). Jednak pomiędzy tymi dwiema skrajnościami rozciąga się ogromna przestrzeń ludzi, którzy umieją prowadzić samochód dostatecznie dobrze by bezpiecznie jeździć, także zawodowo. Owa większość po prostu się tego nauczyła. I przeciętnie można przyjąć, że praktycznie każdego dorosłego człowieka da się nauczyć bezpiecznie jeździć samochodem.
Podobnie i tutaj – są ludzie, dla których postawa „servant leader” jest postawą naturalną – i im będzie łatwiej (choć i im nie zaszkodzi podbudowanie tego wiedzą i ćwiczeniem). Przeciętnie jednak praktycznie każdego normalny, prawidłowo rozwinięty społecznie człowiek jest w stanie się nauczyć jak być dobrym Scrum Masterem. Trzeba mu w tym czasem tylko trochę pomóc co staramy się robić na różne sposoby.
I nie jest tu potrzebne silenie się na żadną sztuczną mistykę, „dary” od Boga albo mistycznej „siły spajającej Wszechświat”. Agile, Scrum to po prostu dobre, nowoczesne metody zarządzania a nie systemy religijne czy „narzędzia duchowej przemiany” – nie trzeba wsiadać na tak wysokiego konia, żeby z nich dobrze korzystać.
I dobrze – w przeciwnym razie byłyby to metody dla wybranych, nie nadające się do szerszego stosowania. A tak na szczęście nie jest o czym przekonuje się coraz więcej zespołów i firm na całym świecie.
-
Gdy masz tylko młotek….
Pracując jako doradca i ekspert od metod zwinnych nieustannie spotykam się pewnym nieporozumieniem, które najkrócej streścić można w jednym zdaniu: „Agile to Scrum”. Innymi słowy polega ono na z gruntu błednym przekonaniu, że tak zwana „transformacja Agile” (czyli zmiana organizacji w nowoczesną, zwinną, sprawnie zarządzaną) polega na… wdrożeniu Scruma. Sprowadza to duży temat jakim jest Agile i w ogóle nowoczesne zarządzanie do jednej tylko metodyki pracy zespołowej, która choć bardzo dobra nie jest ani jedyną metodą Agile ani nie załatwia wszystkich problemów (zwłaszcza na skalę organizacji).
Nieporozumienie to wydaje się dość niewinne – ot, typowe niezrozumienie tematu przez osoby, dla których jest nowy. Niestety, przekonanie, że „Agile == Scrum” jest na tyle powszechne, że prowadzi do dwóch niepożądanych zjawisk, które do tego wzajemnie się napędzają.
Pierwszym są „wdrożenia Agile” polegające na odgórnym zadekretowaniu Scruma jako metodyki czy procesu, który ma obowiązywać wszystkie zespoły. Zazwyczaj początkiem takiej sytuacji jest kiedy ktoś mający władzę – menedżer działu IT, czasem prezes – zostaje „zainfekowany” fałszywym uproszczeniem, że „Agile to Scrum” czy to przez niekompetentnego konsultanta czy to wskutek lektury jakiegoś powierzchownego artykułu.
Dlaczego takie odgórne narzucenie Scruma jest złe? Scrum jest tylko jedną z wielu metod i praktyk Agile. Nie jest z pewnością metodą dla wszystkich zespołów, bo wymaga spełnienia pewnych warunków by w ogóle działać a co dopiero działać dobrze. Są to m.in. takie rzeczy jak wspólnota pracy (członkowie zespołu nie wykonują indywiudalnie od A do Z osobnych prac ale tworzą wspólnie produkt, dla którego potrzebne są kompetencje ich wszystkich razem i na raz) czy wyraźne cele (sprintu i produktu). Generalizując Scrum jest najlepszy dla tworzenia nowych produktów, przechodzących fazę szybkiego rozwoju funkcjonalnego, przy pomocy zaangażowanych zespołów profesjonalistów, w firmach, których kultura zbudowana jest wokół pięciu wspierających Scrum wartości. Niestety, w wielu organizacjach tej szerzej wiedzy o Scrumie brak. Brak także wiedzy o innych metodach Agile, czasem nawet wręcz brak świadomości ich istnienia.
Zatem zamiast narzucać dekretem Scruma należy raczej ustalić cele wprowadzania metod zwinnych, zapoznać się z ich teorią i różnymi dostępnymi opcjami po czym wybierać dla każdego zespołu te metody, które pasują do niego – i tego co robi. A także spojrzeć na organizację szerzej, zająć się takimi rzeczami jak cele, metryki, kultura itp.
Drugi problem często występujący razem z pierwszym jest tzw. „mechanistyczny Scrum”, a więc „wdrożenie Scruma” polegające li tylko na przemianowaniu ról (np. z Project Managera na Product Ownera) i przymuszeniu zespołów do odbywania przepisanych w metodzie spotkań. Typowym (choć nie jedynym) symptomem takiej sytuacji jest uczynienie oficjalnym standardem organizacyjnym łączenia roli Scrum Mastera i developera w zespole oraz brak dbałości o odpowiednie przeszkolenie tych Scrum Masterów (że nie wspomnę o zespołach).
W efekcie uzyskuje się niewiele korzyści z metody – jeśli w ogóle jakieś. Ponieważ nikt nie rozumie tak naprawdę po co są te spotkania i cała reszta, a rzecz została narzucona bez sprawdzenia czy dla danego zespołu ma sens to zamiast zwinnych wydajnych zespołów uzyskujemy ludzi, którzy bez przekonania – a potem z rosnącą niechęcią – odgrywają nakazany przez kierownictwo teatrzyk. „Mechanistyczny Scrum” nagminnie towarzyszy odgórnie zadekretowanym zuniformizowanym „wdrożeniom Scrum”, bo ma dokładnie taką samą przyczynę – brak głębszej wiedzy i zrozumienia choćby samej metody (a więc tego dlaczego Scrum jest taki, jaki jest, dlaczego składa sie z takich a nie innych elementów, czemu służy i gdzie działa najlepiej), że nie wspomnę o Agile jako szerzym zjawisku.
Najgorsze jest w tym jest jednak nawet nie to, że efekty takiego wprowadzenia Scruma są mierne – dużo gorsze jest to, że nikt nie zdaje sobie sprawy z tego, że to, z czym mają do czynienia ma się nijak nie tylko do Agile ale nawet do Scruma. W efekcie organizacja produkuje całe zastępy ludzi, którzy są święcie przekonani, że pracują w Agile i świetnie wiedzą na czym polega Scrum bo przecież pracowali w nim (czasem kilka lat) – którzy tak na prawdę nie mają ani o Agile ani o Scrum pojęcia. Ta nieuświadomiona ignorancja jest niezwykle trudna do wyleczenia – najczęściej zdarza się to dopiero kiedy delikwent trafi wreszcie do miejsca, w którym Scrum czy jakaś inna metoda Agile jest naprawdę dobrze stosowana. Z tego powodu organizacja z mechanistycznym, zadekretowanym Scrumem jest czymś w rodzaju rozsadnika zarazy. Wychodzą z niej ludzie, którzy następnie w innych organizacjach opowiadają że „Scrum nie działa” lub co gorsza uważając się za doświadczonych reklamują się jako konsultanci od Scruma (bo nic innego nie znają – jak w tytułowym dowcipie o człowieku, który miał tylko młotek więc wszystko wyglądało mu jak gwóźdź), którzy w kolejnych organizacjach „wdrażają Scruma” w sposób, który znają z doświadczenia, co produkuje kolejnych zrażonych – i kolejnych zarażających.
Walczyć z tym fenomenem można w jednyny sposób, a mianowicie przez rzetelną wiedzę nie tylko o Scrumie, nie tylko o Agile, ale w ogóle o nowoczesnym zarządzaniu. I to staram się robić m.in. w Code Sprinters, a także na tym blogu, w moich książkach i tak dalej. Metoda to żmudna, bo wiedza ta jest mniej „seksi” od uproszczeń w rodzaju „wdróżmy Scruma i będzie Agile”, ale za to skuteczna na dłuższą metę.
-
Nigdy nie będzie dobrze
Postanowiłem się dziś podzielić obserwacją tak oczywistą, ale najwyraźniej nie na tyle by była ona powszechnym rozumieniem. Otóż: nigdy nie będzie dość szybkich zespołów developerskich.
Dlaczego? Ano dlatego, że wymyślanie potrzeb oraz funkcji w oprogramowaniu, które mogłyby je zaspokajać jest bardzo szybkie. Sam pomysł to krótki błysk w duszy i przebieg impulsów po neuronach – jest! Eureka! Zapisanie go, ew. przedyskutowanie to kwestia godzin. Ale realizacja może trwać dni, tygodnie, miesiące nawet. Jeśli dodamy do tego dość typową sytuację, kiedy wymyślających (zwanych elegancko „interesariuszami”) jest istotnie więcej od implementujących widać wyraźnie, że jest niemożliwością doprowadzenie do sytuacji, w której każdy pomysł („wymaganie”) jest realizowane bez oczekiwania. Z tego właśnie powodu praktycznie zawsze wymagania czekają a ich lista rośnie.
[Opisując to językiem procesów tworzenie oprogramowania to – na wysokim poziomie ogólności – etap, na którym jednostki pracy są wytwarzane bardzo szybko, po którym następuje etap przetwarzający je dużo wolniej.]
Jeśli chwilę pomyśleć rzecz jest – jak to już napisałem wyżej – oczywista. Prosta logika mówi, że nie może być inaczej. A jednak mimo to w praktycznie wszystkich organizacjach, z którymi miałem do czynienia, jest ogromny nacisk na to, żeby zespoły działały szybciej. Tak jakby organizacje chciały osiągnąć to marzenie, idealny stan, w którym powiedzą sobie „mamy już wystarczająco szybki development”. Realizuje się to głównie przez odruch zatrudniania (stąd taka popularność tematu „skalowania Agile” – jak się już tych ludzi zatrudni jakoś trzeba ogarniać współpracę pomiędzy nimi).
I w sumie nie ma w tym nic złego gdyby nie to, że nie widać by co najmniej taka sama energia i zaangażowanie były poświęcone na dobre wybieranie tego, co będzie realizowane. A to jest rzecz absolutnie najważniejsza. Mając ograniczony zasób jakim są możliwości i energia developmentu należy przede wszystkim zadbać o to, by nie marnować go na rzeczy o niskiej wartości. Każde wymaganie, każdy pomysł powinno się trzy razy obracać w palcach, oglądać pod światło i porównywać z innymi żeby mieć absolutną pewność, że w danej chwili nie ma naprawdę nic ważniejszego co developerzy mogliby zrobić.
To jest kolejna oczywistość, dużo bardziej zresztą uniwersalna niż tworzenie oprogramowania – wszędzie ważna jest koncentracja. Niby wszyscy o tym wiedzą, ale w 9 przypadkach na 10 kiedy np. w ramach warsztatu zwizualizujemy kierownictwu ile mają otwartych inicjatyw i projektów to jest wielkie zdziwienie. Po czym oczywiście jedno z pierwszych pytań jest takie: co zrobić, żeby development szybciej pracował? Może zatrudnijmy więcej programistów?
Myślę, że lekarstwem na to może być powtarzanie w kółko oczywistości, od której zacząłem ten wpis: „nigdy nie będzie wystarczająco szybkich zespołów”. I dodawanie „zatem zastanówmy się jak najlepiej wykorzystać to, co mamy”.
Jak to konkretnie zrobić? Ano stosując empiryzm, nie pakując się w wielkie inicjatywy bez zweryfikowania małym (i tanim) eksperymentem, że warto, stosując biznesowe metryki (np. kwantyfikację celów biznesowych) i weryfikowanie na ile dana planowana funkcjonalność je poprawia – i tak dalej. Dużo narzędzi i praktyk wykraczających poza zakres tego artykuliku (o części z nich mówimy na szkoleniu dla Product Ownerów, o innych na różnych warsztatach). Czyli robiąc wszystko co się da, żeby właśnie jak najlepiej wybierać rzeczy, które trafią do realizacji.
Ale to są narzędzia, a najważniejsza jest świadomość, że w ten sposób osiągniemy więcej niż koncentrując się na powiększaniu zespołów. Teraz już ją masz, więc do dzieła! Bo choć nigdy nie będzie dobrze, to jednak może być lepiej. 🙂