Daily stand-up dobre VI. – odpáľ to bez prípravy

V kanceláriách agilných IT firiem nastáva o 9:00 zvláštna vec. Informatici, o ktorých si väčšina ľudí myslí,  že sú svojim spôsobom zvláštni a nekomunikatívni, sa postavia do kruhu a začnú sa rozprávať.

Niektorí členovia tímu sa iba postavia a ‘odpália to’ priamo z hlavy. V takých prípadoch dosť často počuť tzv. “óóóhmovinu”: “Ohhhm, včera som robil, ohhhhm, dnes budem robiť, ohhhhm,….”.

Stretnutie sa takto zbytočne predĺži, óóóhmovina odváza pozornosť a znižuje koncentráciu. Ako sa teda mám ja, člen tímu, pripraviť na denné stretnutie?

Ako sa pripraviť na stand-up

ready steady go

Najčastejšie aplikovaným pravidlom je aktualizácia úloh pred stand-upom.

No ešte lepšie je mať ich aktuálne kedykoľvek. V podstate keď sa pozriete na kanban tabuľu, tak uvidíte kto na čom presne pracuje. Stav výrobnej linky.

Samozrejme, že padnú argumenty proti tejto aktuálnosti: “To mám posúvať kartyvždy po pár minútach? Prečo taká byrokracia?”. Nie, nemusíte. Nikto vás nenúti.

Zvážte ale argumenty prečo áno:

  • Lepšia samoorganizácia tímu. Viem, ktoré karty si môžem vziať a začať na nich okamžite pracovať. Bez obáv, že už na nej niekto pracuje a budeme tak zybtočne robiť na tej istej úlohe viacerí.
  • Lepšia sebaorganizácia. Princípy Getting Things Done  učia, že kľúčom k sebaorganizácii v dnešnom svete plnom úloh, je dať ich všetky preč z hlavy. Či už na papier alebo lepšie na tabuľu. Odbremeňte hlavy od úloh a vytvorte si tak priestor pre kreativitu, ktorá vás určite baví viac.
  • Vysielač problémov. Ak mám problémy s úlohou, tak ich okamžitá indikácia na karte (komentár alebo grafická značka) umožní rýchlejšie naštartovať ich riešenie. Nie až ráno po standupe.
  • Rýchlejšia akceptácia. Dokončením user story môže produktový vlastník okamžite začať s pripomienkovaním, resp. akceptáciou, hotovej práce. Musí sa ale dozvedieť, že story je hotová. Vy Skorá spätná väzba je predpokladom úspechu.
  • Presun karty je o sekundách. Neznalosť aktuálneho stavu bude o hodinách, popr. dni.

Paradoxne až distribuovaný stand-up vás naučí najefektívnejšej príprave.

Keďže musíte byť stručný a jasný, pripravíte si stav úloh pred poradou, napr. do Notepadu . Prejdete si svoje úlohy a pozriete sa na kandidátov na ďalšie. Potom, keď máte rozprávať, už iba vložíte pripravený text do Skype alebo Office Communicatora a rozprávate. Ostatní tak tieto informácie uvidia, aj keď kvalita linky nie je veľmi dobrá, alebo ak nerozumia vašej angličtine.

Pripravujete sa inak a funguje to? Napíšte o tom!

Daily stand-up dobre IV – scrum master. A?

BatmanScrum master pečie denný chlieb tímu na dennom stretnutí.

Práve počas tohto stretnutia sa prejavujú schopnosti scrum mastra. Niečo o scrum mastershipe sa síce dozviete počas certifikačných a iných školení, no iba prax vás naučí.

Tím dobrého scrum mastra nemá problém so samoorganizáciou úloh, s komunikáciou a ani výrazné problémy so stavom úloh. Navyše v takom tíme je vysoká miera sebadisciplíny a zodpovednosti.

Disciplinovaný scrum master pred samotným daily mítingom :

  1. preverí stav nahlásených problémov a zaktualizuje ich zoznam, resp. časť tabule s problémami,
  2. skontroluje aktuálnosť stavu implementačných úloh na Kanban tabuli,
  3. skontroluje, či úlohy majú aktualizovaný zostávajúcu čas implementácie,
  4. skontroluje, či tok (flow) úloh je v poriadku,
  5. preverí, či členovia tímu sa snažia uzatvárať user stories a nie otvárať ďalšie úlohy,
  6. identifkuje novopridané úlohy, ktoré by moli zmeniť záväzok tímu daný na začiatku sprintu,
  7. preverí si vyťaženie členov tímu tak, aby ich naviedol pri samoorganizácii počas mítingu,
  8. overí dohodnuté WIP limity,
  9. spolu s produktovým vlastníkom preveria, či nie sú nutné zmeny v backlogu sprintu,
  10. spolu s inými scrum mastrami overí stav závislých prác, prípadne potreby iných tímov,
  11. preverí, či manažment nemá niečo dôležité z pohľadu organizácie, čo je potrebné odkomunikovať,
  12. skontroluje priebeh burn-down grafu a identifikuje otázne hodnoty, ktoré má s tímom prediskutovať,
  13. prípraví priestor pre denné stretnutie,
  14. pripraví nástroje (napr. zobrazí elektronickú kanban tabuľu),
  15. a  v neposlednom rade vymyslí ako otvorí stretnutie tak, aby sa tím pozitívne naladil.

Čo zmeníte na svojom scrum mastershipe zajtra?

Odkazy:

Daily standup dobre – I. Prečo?

Pôvodný článok na http://scrum.sk/index.php/daily-standup-dobre-cast-1-preco/

Denný stand-up je základnou ceremóniou v Scrum, ktorá je (chvalabohu) v slovenských dolinách aplikovaná často aj bez toho, aby bola oficiálne formalizovaná. Predovšetkým v malých firmách, kde ešte stále je rozhovor základom spolupráce.

Často však po niekoľkých mesiacoch zrazu tieto stretnutia nemajú “šťavu”. Mnoho ľudí nám pri koučingu namieta, že je to strata času. Prečo?

Pripravili sme preto pre Vás krátku sériu článkov o typických chybách, ktorými tímy samé brzdia svoju agilitu.

Čo je cieľom vášho standupu?

Najčastejším problémom je nepochopenie cieľa tohto stretnutia. Členovia tímu a scrum mastri ho považujú za stretnutie, na ktorom sa má reportovať stav projektu formou odpovedí na tri otázky: “Čo si spravil včera, čo budeš robiť dnes a aké máš problémy.”. Áno je pravda, že tieto otázky sú odporúčané. No nie je pravdou, že ich najväčší prínos je v reportingu.

Cieľom standupu je rozpoznať čo náš tím obmedzuje v dokončení našich zámerov dohodnutých počas plánovania, ku ktorým sme sa zaviazali.

Má to teda byť stretnutie viac o blízkej budúcnosti, než stretnutie o tom, čo sa stalo. Má to byť o tíme, nie o jednotlivcoch.

Tím sa má sústrediť na to ako dokončiť prácu, nie na to, ako je implementácia rozpracovaná. Agile je totiž založené na podpore dodávania funkčných výsledkov, ktoré ak nie sú dokončené, tak jednoducho nie sú použiteľné. Navyše trh je nevyspytateľný a zmeny sú dnes už konštantou.

Práve preto by ste ako tím mali byť pripravení aj počas sprintu dodať už dokončené user stories, resp. opravené chyby. Kedykoľvek.

 

Projektový manažér == Scrum Master?

V posledných dňoch mám čoraz väčší dojem, že niektoré veci musíme ako komunita dôraznejšie ozrejmovať,  vysvetľovať a trvať na správnom použití.

V tomto príspevku sa chcem viac zamerať na význam roly Scrum Master. Prečo? Pretože počas posledného týždňa som našiel päť článkov (jeden dokonca publikovaný na nemenovanej unverzite), ktoré nesprávne vysvetľujú kto je Scrum Master, čo má robiť a ako to má robiť.

Dôvodom je možno slovenčina, do ktorej sa tento pojem Scrum Master veľmi ťažko prekladá. Majster Scrumu? Hmm, v profesionálnom prostredí to znie zvláštne. Ja osobne tento pojem práve preto takto neprekladám. No významovo je tento preklad vynikajúci.

Projektový manažér (v terminológii Scrum-u „ScrumMaster“)

Chcel by som sa venovať asi najväčšiemu nepochopeniu, ktoré som objavil.

Nie, nesprávne. Toto sú dve roly, ktoré majú za úlohu riešiť iné aspekty. Áno, často je to ten istý človek. No tento človek má na vešiaku dva kabáty. Raz môže byt projektovým manažérom, inokedy scrum mastrom. Dokonca z praxe poznám mnohých projektových manažérov, ktorý sa radšej stali Scrum Mastrom.

Prečo? Pretože  Projektový manažer <> Scrum Master.

Pretože projektový manažér sa má zaoberať časom, rozpočtom, zdrojmi a kvalitou. To sú atribúty akéhokoľvek projektu. A projektový manažér ich má držať pokope tak, aby výsledok projektu bol dodaný načas, v rozpočte s danou kvalitou, vyvinutý vybraným tímom.

Projektový manažér je na svete kvôli PROJEKTU.

No Scrum Master sa týmto primárne vôbec nemá zaoberať. Scrum Master sa zaoberá:

  • Vyrovnávaním cesty, po ktorej kráča tím.
  • Snaží sa skoro rozpoznať prekážky, snaží sa ich odstrániť aj za pomoci organizácie.
  • Snaží sa tímu pomôcť, aby bol efektívnym.
  • Robí denne prácu, ktorá by iných blokovala.
  • Prináša a udržuje viditeľnosť stavu projektu tým, že komunikuje s tímom a inými tímami
  • Synchronizuje tím s inými tímami
  • Pripravuje a moderuje (pozor, nevedie!) porady a diskusie.
  • Komunikuje s organizáciou – produktovým aj projektovým manažérom.
  • Zaoberá sa procesom vývoja.
  • Koučuje (vyučuje) agilné techniky v tíme. Také aké práve tímu pomôžu. Musí mať prehľad o tejto problematike a mal by vždy vedieť trochu o tom viac ako členovia tímu.

Scrum Master je na svete kvôli TÍMU.

Máte na tento zoznam ako projektový manažér v dnešnej dobe čas?

Majster v každom z tímu

majster.v.kazom.z.timuAgilné metódy ponúkaju veľa možností ako zrealizovať riadenie tímu a vedenie projektu. Z tejto množiny rôznych ceremónií, artefaktov, postupov a praktík je možné si zvoliť a nasmerovať tak ďalší rozvoj Scrumu v projekte alebo celej firme. Jedna z takýchto praktík je aj rotácia scrummástera. Teda keď je každý sprint (alebo iné obdobie) majstrom scrumu.

Túto praktiku sme asi pred dvoma rokmi zaviedli v našej firme (v tíme s približne 8 ľudmi) a po týchto dvoch rokoch môžem povedať, že to bola jedna z najlepších zmien. Najprv je ale potrebné si vysvetliť, čo to presne (aspoň v našom prípade) znamená. Tím bežal už niekoľko rokov pod vedením vedúceho tímu. Ten zabezpečoval riešenie všetkých problémov, technologický dohľad, aj samotnú realizáciu sprintu. To posledné znamenalo zvolávať a moderovať porady, pripravovať backlog, riešiť akékoľvek problémy, ktoré súviseli s prácou ľudí v rámci Scrumu. Práve činnosti z  tejto kategórie sa ukázali ako vhodné na oddelenie a ich realizácia prešla na samotný tím. Namiesto toho, aby sme však zvolili jedného (toho správneho?) scrummastera, nechali sme ľudí v tíme v tejto pozícii sa striedať. Krok to určite nie je jednoduchý a vyžadol určitú dávku odvahy a podpory vedenia. Odmenov bolo, že to prinieslo ešte viac bonusov ako sa pôvodne očakávalo.

Samotná rotácia prebieha tak, že každý sprint je scrummasterom niekto iný z tímu. Nerobí sa žiadny rozdiel medzi úlohou človeka v tíme, preto tester je rovnako dobrý ako programátor a naopak. Úlohou scrummastera je zvolávať porady (denná, plánovacia, retrospektíva) a moderovať ich (t.j. držať vecnú diskusiu a sledovať čas). Okrem toho, pripravuje tabuľu s úlohami pre sprint a ešte niekoľko drobností, ktoré súvisia so sprintom. A to je vlastne všetko. Je to v podstate rovnejší medzi rovnými. Takto to už funguje 2 roky a prinieslo to niekoľko výhod:

  1. Väčšia zodpovednosť tímu – tým ,že ľudia majú viac pravomoci a riadia si svoju prácu sami, cítia za ňu väčšiu zodpovednosť. Takéto zapojenie do práce je veľmi cenné.
  2. Objavenie prirodzených lídrov – robiť scrummastera nie každému úplne sadne, ale zvládnu to všetci. Veľmi rýchlo sa však ukázalo, kto sa v tej úlohe cíti ako ryba vo vode.
  3. Ľahšie fungovanie tímu – chvíľkový pobyt na pozícii človeka, ktorý ma na starosti hladký priebeh sprintu každému dovolí pochopiť, čo scrummaster potrebuje od ľudí z tímu. Prestali sa objavovať prípady zabudnutia aktualizácie tabuľke, keď každý zistil, ako ťažko sa kreslí graf, ak nemáte aktuálne údaje.
  4. Nové prvky (impluzy) do fungovania tímu – iný scrummaster, iný človek. Rôzni ľudia sú postupne stavaní do pozície človeka, ktorý sa pasuje s (niekedy opakujúcimi sa) chybami. To prinieslo nové nápady a riešenia, ktoré by inak asi ostali skryté.
  5. Lepšie pochopenie Scrumu – lepšie raz vidieť ako 100x počuť a lepšie raz zažiť ako 100x vidieť. Každý sa na chvíľu dostane do kože scrummastera a otestuje si problémy, s ktorými sa pasuje. To viedlo k lepšiemu pochopeniu toho, prečo sa na dennej porade stojí a ako vlastne funguje burn down chart.
  6. Sprinty získali svoj charakter – určité prvky v sprinte si scrummaster môže prispôsobovať podľa seba. Každý sprint tak získava osobitný charakter toho, kto ho vedie. To narúša stereotyp a robí prácu zábavnejšiu.

Rotáciu scrummastera v našom tíme hodnotím jednoznačne ako pozitívnu vec a spätné preklopenie na pôvodný spôsob je v súčastnosti nepravdepodobné. Samozrejme to nie je len tak. Chce to trochu riskovať, chce to správnu firemnú kultúru a chce to aj prípravu – s úplne novým tímom ľudí to spraviť nemôžete (alebo áno?). Každopádne sa takto do tímu prenáša časť zodpovednosti a moci rozhodovať a to môže byť najväčší problém. Pre niekoho, kto je zvyknutý držať opraty riadenia pevne v rukách je predstava, že sa toho vzdá a dokonca, že to budú postupne robiť všetci ľudia v tíme, asi nereálna. Ale to už je len opäť o tom, že je potrebné sa vyrovnať s určitým pocitom neistoty v budúcnosti. Je to rovnaké, ako keď projekt nemá nakreslený gantov diagram s presným popisom na polrok dopredu. Namiesto toho má release plán, ktorý odpovedá na otázky nie presne, ale v intervaloch. Tieto veci sprevádza ten istý pocit neistoty ako pri rotácii scrummastera. Je to niečo, na čo je ťažké ale nevyhnuté si pri agilných metódach zvyknúť. Vieru v to, že všetko sa dá riadiť a určiť dopredu, môže ľahko zbúrať zajtrajšie ráno.

ScrumMaster, alebo prečo to nie je také jednoduché

Na Agileee 2009 som mal tú možnosť sa účastniť diskusie niekoľkých prednášajúcich tejto konferencie. Okrem iných tém sa v jednom momente diskusia viedla o tom, kto to má byť ScrumMaster. Zatiaľ čo niektorí tvrdili, že je to človek, ktorý musí byť zručný pri práci s ľudmi a organizovaní, iní tvrdili, že to môže robiť aj ich 5-ročný syn. Že je to pozícia, ktorá nevyžaduje žiadne špeciálne zručnosti, pretože človek vykonáva len jednoduché veci ako kreslenie grafu alebo varenie kávy pre tím. Verím, že rozlúsknuť tento problém nie je jednoduché, ale aj tak sa pokúsim prispieť k objasneniu.

Máme tu teda dva typy ScrumMastera. Jedného ako silného vodcu, ktorý zvláda prácu s ľuďmi, rozumie agilným metódam a má silné zručnosti v oblasti organizovania práce. Na druhej strane je to niekto, kto vykonáva rutinné práce potrebné na to, aby tím mohol nerušene pracovať. Tieto dva typy predstavujú opačné strany spektra, pričom typy ScrumMasterov v jednotlivých tímoch sa môžu pohybovať v ňom.

Je nutné povedať, že na tím sú kladené požiadavky. Tieto požiadavky môžu byť vnútorné, čo napríklad môže znamenať, že tím musí byť schopný uskutočniť poradu, vyriešiť konflikty alebo navrhnúť riešenie nejakého problému, a tiež vonkajšie, ako napríklad, že musí odovzdávať prehľady o svojej práci alebo musí byť schopný zodpovedať otázky ohľadom plánovania.

Predstavme si teraz na chvíľu absolútne ideálne samoorganizovaný tím. Je to skupina ľudí, ktorá (ako skupina) dokáže tieto požiadavky splniť. Ak treba aby sa uskutočnila porada, tak sa niekto postaví, poradu zvolá a odmoderuje ju. Ak treba vyriešiť problém, tak sa zíde niekoľko ľudí, dajú hlavy dokopy a nájdu najlepšie riešenie. Niekto kreslí graf a niekto pomáha s riešením konfliktov. Takto by mohol vyzerať ideálny svet.

V reálnom svete ale tím nie je schopný splniť všetky tieto požiadavky. Nedokáže napríklad sám zvolať poradu. Dôvody môžu byť rôzne ale faktom je, že v schopnostiach tímu plniť požiadavky môžu byť rôzne medzery. A práve tieto medzery musí zaplniť ScrumMaster. Som presvedčený, že práve preto táto pozícia vznikla. Aby bola schopná zastúpiť tím v akciách, ktorých sám nie je schopný. Je dôležité povedať, že dobrý ScrumMaster by mal vykonávať len veci, ktoré tím nezvláda spraviť sám, čo je jeden z rozdielov medzi vedúcim tímu a ScrumMastrom. K tomu sa ale dostaneme neskôr.

schopnosti.vs.poziadavky

Ak sa teda vrátim k dileme, ktorú som popísal na začiatku, tak jednoznačná odpoveď je, že ScrumMaster by mal mať také schopnosti, ako vyžaduje situácia tímu, teda rozdiel medzi tým, čo sa od tímu požaduje a čo je schopný plniť. Ak je to tím ľudí, ktorý agilné metódy nikdy nepoužívali, tak ScrumMaster musí byť veľmi skúsený a zručný. Naopak v tíme, ktorý už agilne funguje dlhšiu dobu a kde je vysoká samoorganizovanosť, ScrumMaster môže mať len veľmi málo úloh a zodpovedností. Preto neexistuje finálny zoznam povinností ScrumMastera. Tento zoznam by musel byť zostavený pre každý tím zvlášť.

Okrem tohto dôležitého faktu, je tu ešte jedna vec, a to, že ScrumMaster nie je iné meno pre vedúceho tímu. Medzi týmito dvoma rolami je veľký rozdiel. V prvom rade je to pozícia voči tímu. Vedúci tímu je v hierarchii nad tímom. Je to niekto, na koho je možné eskalovať problémy a kto je naopak schopný delegovať prácu. Zároveň väčšinou preberá zodpovednosť za výsledok tímu.

veduci.timu

Úlohou ScrumMastera je ale tímu pomáhať. Preto je jeho pozícia vedľa tímu alebo dokonca pod ním. V žiadnom prípade by nemal preberať zodpovednosť a rozdeľovať prácu by mal len v prípade, ak si ju tím nie je schopný rozdeliť sám (čo na určitom stupni samoorganizovanosti musí byť schopný). Ale čo je najdôležitejšie, zatiaľ čo vedúci tímu má vymedzené povinnosti a práva a tie sa prirodzene nemenia, ScrumMaster by sa mal prispôsobovať tímu (to znamená, nevykonávať činnosti, ktoré je tím schopný vykonať sám) a mal by tím viesť k tomu, aby bol schopný čo najviac plniť požiadavky, ktoré sú na neho kladené.

scrummaster

Práva a povinnosti ScrumMastera sa môžu teda časom meniť a pri správnom smerovaní by sa mali zmenšovať a oslabovať. Táto zmena filozofie roly môže byť najväčšia výzva pri prechode na agilné metódy zo starého systému riadenia, pretože ľudia sa len neradi vzdávajú moci kontrolovať a ovládať.

Na záver už len jedna rada ako preniesť na tím viac kompetencií ScrumMastera: nechať jeho pozíciu rotovať. Za určitého dozoru a prispenia zvonku je možné, aby ScrumMastrom bol každý sprint niekto iný. Toto je veľmi dobrý spôsob, ako dať ľudom pocítiť, že prácu, ktorú doteraz vykonával niekto konkrétny dokáže vykonávať každý. Že na nakreslenie grafu alebo zvolanie porady nie sú potrebné nijaké zvláštne danosti. Časom sa môže stať, že pozícia ScrumMastra natoľko oslabí, že už bude skoro jedno, kto to je. A to bude príznak, že tím ide správnym smerom.