Agile HR: Pozice a kariérní růst

A jako pokračování Agile HR série se pojďme podívat, co dál by se mělo změnit. Dobrou praxí bývá oddělit pozice od platů. Ono totiž klasická představa zaměstnance, který pro firmu pracuje celý život a po celou dobu se posouvá po virtuálním žebříčku pozic, se poněkud přežila. Většina lidí v Agilních firmách pracuje v týmech, které samy o sobě dávají možnost realizace, kreativity a inovací, takže daleko lépe odpovídají potřebám jednotlivců než předem definovaný kariérní růst. Ukazuje se, že pozice, i vysoko v žebříčku hierarchie firmy se nikdy nedá vyvážit autonomií spojenou se zodpovědností za svá rozhodnutí. To, že firma umožní lidem dělat různé experimenty je často lepší než milión benefitů, které stejně nikdo nevyužije. A v momentě, kdy zploštíte strukturu pozic a přestanete generovat milióny specializovaných cestiček, tak najednou v klasickém světě ztrácíte možnost lidem přidat peníze. Asi nejen proto se peníze oddělují od pozice. Ostatně v mnoha korporacích narazíte na managery bez podřízených. To je takový nešvar vzniklý z příliš fixních pravidel. Aby expert, kriticky důležitý pro vaši firmu mohl dostat přidáno a neutekl vám ke konkurenci, musíte z něj udělat managera. Ale protože lidi řídit nechce a ani se na to nehodí, tak mu raději žádné podřízené nedáme. Takový procesní Kocourkov.

hodně agilních firmách, které jsou celé postavené na self-organizaci cross-functional týmů často pozice úplně ztrácí význam, a tak je firmy opouští úplně. Každá pozice jen vytváří sila, která mezi sebou nespolupracují. Ukazuje se, že je lepší dynamicky tvořit týmy pro konkrétní problém kde potřebné role (jsou-li nějaké opravdu nutné) se obsadí na místě. V jiné situaci se tým poskládá jinak a ti, co určité role zastávali, je zdaleka nemusí zastávat i v tomto kontextu. Je to taková dynamická tekutá struktura blízká “Teal firmám“.

flatstructure

ještě agilnější firmě, které to vše, co tu bylo řečeno a kdy napsáno, berou jako samozřejmost, jste ready na otevřené platy. Necháte na týmu nejen to, co dělají a jak, ale i to, jakou odměnu se dohodnou že si zaslouží. Když to zkusíte moc brzo, hodně rychle se vám to vrátí jako bumerang. A omlátí vám to o hlavu všechno, co v týmu ne úplně dobře funguje. Takže opatrně. Je to vhodné jen pro ty nejagilnější týmy 🙂

Jaké to je když vám vyjde kniha

První pocit? Překvapení. Přijde tlustý balíček se třemi autorskými výtisky. Jen tak, z ničeho nic. Jeeeee už je to tady! Ta je pěkná 🙂 a pak se vám začne honit hlavou, jak to celé bylo. Já v podstatě knihu psala v nejrůznějších koutech světa. Doma prostě nebyl čas se zastavit a přemýšlet. Proto tak ráda cestuju. Je to osvěžující. Kde to celé začalo? Já myslím, že v Indii. Seděli jsme u bazénu při konferenci a říkali si, že by bylo fajn napsat knihu. A vymysleli osnovu. A pak osnova pak dlouho ležela u ledu… A pak jsme začali pomalu psát. Kousek po kousku. Ale jak říkám doma mi to moc nešlo. Psát knihu je děsně práce. Trvá to nekonečně dlouho. Pořád to není hotové.

A tak jsem se rozhodla s tím pohnout a první rozumně velký kus jsem napsala v Indonésii. Bangka Island. Každý den po odpoledním ponoru, až do večeře. Jsou tam úžasné soft korály. Jedny z nejhezčích na světě. To je stejně můj sen, pracovat někde pod palmičkou. Pak bylo po dovolené. Pak další části vznikaly v letadlech a při čekání na letištích do Kalifornie – v San Fransicsu je úžasně, taky je tam moře. Pak cestou do Kieva, Rigy, Barcelony, Talinu, Kodaně, Krakova, Moskvy, New Yorku, v Las Vegas – nic jsem v casinech nevyhrála. Škoda, pár miliónů by se mi ke splnění snu sedět pod palmičku hodilo.

Další velký kus jsem napsala na Filipínách. Zase potápění. Odpolední dvě hodinky po ponorech na Moalboalu, pak v thajské restauraci na pláži v Boholu a finální části v Coronu, kde mají Japonské vraky plné podmořského života. Nádhera. Ale pořád to tak nějak nebylo hotové. Už mi to začínalo vadit, nemám ráda dlouho nekonečnou práci… a tak jsem poslední kusy dopsala ve Vietnamu v Saigonu nebo Ho Chi Minh City chcete-li. Hodina taxíkem do práce, hodina zpět do hotelu. Tam jsem ve finále četla i celou knihu ještě jednou v rámci finálního review. To si teprve uvědomíte, kolik jste toho napsali. To už bylo povzbudivé. Skoro hotovo. A jsem moc ráda, že jsem na knihu nebyla sama. Vždycky je daleko větší zábava s někým spolupracovat.

A pak nastal ten největší problém, kde sehnat vydavatele. Nakonec to šlo celkem snadno. A tak děkujeme nakladatelství Computer Press za vydání naší knihy “Agilní metody řízení projektů“ a doufáme, že se vám bude líbit. Co se dočtete?

„Snažili jsme se čtivou formou popsat všechna možná zákoutí a nástrahy, které vás při přechodu na Agilní metody mohou potkat. Kniha nepopisuje jen teorii, co to Agilní metody jsou, jak funguje Scrum Proces a Kanban, a jak by jednotlivé artefakty těchto procesů měly správně vypadat, ale primárně se snaží vysvětlit filozofii Agilního přístupu a zaměřit se na vysvětlení, proč jednotlivé metody fungují. Součástí textu jsou praktické příklady a doporučení co dělat a čeho se naopak vyvarovat.

Kniha se zabývá Agilními metodikami vývoje software v různých typech společností, od malých firem až po nadnárodní korporace. V první části knihy jsou popsány základní stavební prvky Agilního vývoje, od vlastní definice procesu až po ukázky z praxe. Čtenář se dozví všechny potřebné informace k adopci Agilních metodik, kulturní odlišnosti Agilních firem a další základní stavební kameny nutné pro úspěšnou adopci Agilních principů. Kniha dále obsahuje podrobný popis rolí, které se typicky vyskytují v Agilně řízených firmách. Vedle těchto popisů obsahuje kniha i “kuchařky”, resp. doporučené postupy adopce agilního řízení pro různé velikosti a typy firem.“

Dejte nám prosím vědět, jak se vám kniha líbila, co vás zaujalo, nebo co byste viděli příště raději jinak. Hezké čtení. Naší knihu Agilní metody řízení projektů můžete získat zde.

Agilní Metro, Gumoví medvídci a Niko-Niko

Narazila jsem na jednu moc pěknou stránku s agilními praktikami. Agilní mapa metra – cestujte agilním metrem, dozvíte se vše možné i nemožné o agilních praktikách včetně historie jejich vzniku. Mapa agilních praktik je členěná do barevných tras zaměřených na nějakou oblast, každá zastávka se pak věnuje konkrétní praktice.

Agilni Metro - mapa agilnich praktik

Věděli jste například, že kromě relativních bodů (story points) a velikostí triček se dá odhadovat i na gumové medvídky (Gummi Bears)? Alespoň to pak nesvádí k porovnávání mezi týmy. Jak to uděláte, už záleží na vás, ta vtipnější varianta kterou vám Google najde je, že praktika vznikla tak že každý developer dostal balíček a jedl dle svého vlastního tempa gumové medvídky. Podle toho kolik jich snědl, takovou velikost měla daná User Stoy. Při řešení náročnějšího problému který je více stresoval jedli medvídků více a hladina cukru jim vlastně problém pomáhala řešit. Ukázalo se, že po chvíli měření snědených medvídků každý člen týmu umí relativně poměřovat jednotlivé story a odhadnout, kolik medvídků je budou stát. Pochopitelně rychlost jedení medvídků byla u každého jednotlivce jiná, tedy nešla mezi jednotlivými členy týmu porovnávat. Že se vám to nezdá? Možná to tak nebylo 🙂 ale jak se píše v závěru článku, něco takového klidně za vznikem relativního ohodnocování být mohlo.

Zastávka, která mi jako jedna z mála nic neříkala, je Niko-Niko. Niko znamená v japonštině úsměv. A o úsměvu to také je. Každý člen týmu si do Niko-Niko kalendáře kreslí obličej tak, jak se ten den cítí: 🙂 😐 🙁 . Při retrospektivě se to pak dá vyhodnotit. Napadlo mě, že bych si ho taky mohla kreslit. Bylo by zajímavé se podívat jestli jsem v létě kdy je teplo opravdu spokojenější než když je zima 🙂 … Praktickou aplikaci tohoto principu jsem okoukala u jednoho ze sustaining týmů. Nedělají sice smilíky za každého člena týmu, ale přidávají je k jednotlivým issues které mají na řešení na tabuli. 🙂 znamená v pohodě, 😐 označuje blížící se problém s dokončením včas a 🙂 obvykle kritický problém který jako tým musí řešit.

Agile Riga Day

Rok se s rokem sešel, a tak jsem se zase objevila na Agile Riga Day, příjemné jednodenní konferenci v Lotyšsku. Letos se organizátorům podařilo zdvojnásobit počet účastníků, a rozrostli se na tři tracky. K tomu jsem ještě měla jednodenní workshop, “Starting Scrum“, takový den plný her, simulací a diskuzí. Bylo zajímavé, že slečny převládaly, ostatně i na konferenci den poté jich bylo výrazně více, než bývá v Evropě zvykem. Ale přeci jen méně než na Agile India. Překvapilo mě i to, jak rádi si analytici, kterých jsem na workshopy několik měla, hráli. U nás mám s analytiky spíše opačnou zkušenost.

Riga a vlastně i Lotyšsko má jedno další specifikum. Je hodně navázané na Skandinávii, takže mám pocit, že jsem byla jedním z mála lidí co nebyli z pobaltsko-skandinávské oblasti. Převládali Švédové, Norové, Estonci. O čem se hovořilo? O tom jak psát dobrý kód, jak dělat refactoring, jak naložit se starým legacy kódem, jestli dělat test driven development, nebo pair programming… výborný workshop na toto téma vedl Johannes Brodwall – Extreme Startup. Moc se mi to líbilo. Už dlouho jsem neviděla na konferenci pair programming v praxi. Bylo zajímavé to sledovat.

Hodně se diskutovaly odhady. Vlastně, začali jsme s tím tématem už den před konferencí v místním baru. K pochopení základního problému s odhady je nutné si uvědomit rozpor mez i tím, co odhady jsou – tedy nepřesná predikce budoucnosti – nijak exaktně přesná být z principu věci ani nemůže, od toho je to odhad. A jistá představa managerů některých firem, že odhad musí být naprosto přesný. A když k tomu dodáme nepříjemný pocit členů některých týmů, že jsou tlačeni do něčeho, co není možné dodat – tedy do stoprocentně přesného odhadu, máme tu problém, který se dá dlouho do noci vášnivě diskutovat. Obzvláště když jeden z diskutujících má ráno na dané téma keynote kde v podstatě říká, že odhady v bodech jsou stejně tak špatné, a nepřesné, že zrovna tak můžeme každý Sprint jen počítat dokončené a nedokončené User Story a odhady nedělat vůbec. Příště o tom třeba napíšu víc.

Dalším tématem, které mě zaujalo, byla myšlenka, že na to, abyste změnili svět, třeba na agilní, je třeba si uvědomit že “nemusíte systém řídit, stačí s ním umět tančit“. Možná že to je jedna z věcí, které musí umět každý Scrum Master, a asi nejen on. Nestačí vědět, jak okolní svět funguje, musíte vyvinout něco, co se bude chovat jako virus. A takový virus potom do okolního, neagilního, světa pustit.

Abych to shrnula, myslím, že všechny praktické sessions pro programátory a testery se osvědčili, a že mám zase pár dalších kontaktů a nápadů na konferenci do Prahy – AgilePrague, která bude 3-4. září, 2012.

Několik důvodů proč rozdělit User Story

Důvodů proč rozdělit UserStory může být hned několik.
Ten nejčastější je, že je moc velká a nevejde se do Sprintu. A protože základem Scrum procesu je pravidlo že tým vybere co během Sprintu dokončí a to na konci prezentuje zákazníkovi na customer demu, takovým UserStory které by dokončit nešly se musíme vyvarovat. Jak UserStory dělit? Po menších funkcionalitách. Nikdo neříká že takto rozdělěnou UserStory si zákazník musí nutně chtít koupit, ale jen že mu musí přinášet hodnotu. A ta je třeba i v tom, že si představí, co vlastně od dané funkčnosti chce. Tedy např. pakliže chce fakturace, asi si nekoupí jen readonly seznam faktur, ale bude je chtít i vytvářet a tisknout a filtrovat… ale jako mezivýsledek po prvním Sprintu mu hodnotu přinese i jen obyčejný seznam.

Druhým důvodem je různá priorita jednotlivých funkčních celků. Ono je to jedno spojeno s druhým. Když je UserStory moc velká, tak se obvykle Product Owner ptá, co jí dělá tak náročnou a komplexní. A přijde se obvykle na to, že udělat seznam faktur je snadné, ale tým ještě nikdy nedělal print preview a daná komponenta ho neumí a tedy je to pro ně náročné. Ono ale obvykle ne všechno je nutné a ne všechno stojí za tu cenu, kterou to má. A může se stát, že možnost print preview pro zákazníka vlastně nemá takovou priorotu a že ji odloží, na čas, či úplně.

Scrum vám umožňuje funkcionalitu řídit. Tím že složité celky musíte rozpadnout na menší kusy aby je tým stihnul v rámci Sprintu vás nutí přemýšlet o tom, jestli opravdu všechny drobné funkcionality potřebujete a jestli estimate odpovídá ceně, kterou jsme ochotni za očekávanou business value dané funkcionality v UserStory zaplatit.

Kdo píše User Story? A kdo tasky?

A jako pokračování v mém miniseriálu o agilních metodách, Scrum procesu a konkrétně User Stories je odpověď na otázku kdo píše User Story?

Tak jako obvykle, navrhnout User Story může kdokoliv. Libovolný člen týmu, vývojář, tester. Nicméně Scrum zavádí roli Product Ownera, který je za celý backlog a User Story v něm zodpovědný. A proto je Product Owner ten, kdo User Story nakonec do backlogu akceptuje, a přiřadí jí v závislosti na business value prioritu. Product Owner je tedy ve Scrumu často ten, co User Story definuje, následně je ale diskutuje jak s produktovým týmem tak se Scrum týmem který jednotlivé User Story ohodnocuje.

A kdy se mají jednotlivé User Story rozdělit na tasky/úlohy? Idealně během planningu, maximálně první den Sprintu. Když to uděláte později či vůbec, riskujete, že většina členů týmu nebude vědět, z čeho se jednotlivé User Story sestávají, co nám jako týmu ještě chybí dokončit a jak jsme daleko.

Co je task? Task neboli úloha je nějaká jednotlivost, která se musí udělat, aby User Story přinášela očekávanou hodnotu. Tedy pro User Story “jako manažer, chci mít evidenci zaměstnanců, abych měl rychlý přehled o všech lidech ve firmě i detailu konkrétních pracovníků.” to může být např. založení tabulky a číselníků, zobrazení dat z db na obrazovku v browsu, filtrace, zobrazení jedné detailní položky zaměstnance, grafický design obrazovek, test. Každá úloha by neměla být delší, než řekněme dva dny a kratší než půl den už je možná zbytečný detail, nicméně může mít smysl si i takovou úlohu zaznamenat, abychom na ni nezapomněli. V průměru by každá úloha měla být tak asi na den práce, což nám pak usnadňuje denní standup meeting, kde je pak snazší definovat, co opravdu dokončíme.

Na začátku jsme psala, že za User Story je zodpovědný Product Owner, potom za rozpad těchto User Story na tasky / úlohy je naopak zodpovědný tým a jsou tu jen pro interní potřeby týmu. Aby všichni věděli jak daleko ještě jsou od cíle a to i bez složitého ohodnocování jednotlivých úloh a kreslení Sprint Burndownu. Vše je pak na první pohled vidět z tabule – Scrum Boardu.

Konstantní rychlost práce

Dalším z klíčových prvků plánování je rychlost, kterou tým pracuje. Měří se samozřejmě na body, které si tým započítává za dokončené úlohy. Na začátku každého projektu budete mít pozvolný náběh, kdy se tým seznamuje s úkolem, specifikací, technologií a architekturou. A učí se. Učící křivka bude stoupat po dobu cca 1-3 sprintů v závislosti na projektu. Pak tým najede na svůj limit a pracuje konstantní rychlostí až do konce projektu.

Konstantní rychlost a pravidelnost odevzdávání dílčích výsledků je jedním z klíčových prvků Agile metod, takže jen shrnu, co chceme docílit. Pravidelnost jde spolu s předvídatelností. Jen tak že tým odevzdá každý sprint konstantní počet bodů, bude datum dokončení projektu dostatečně důvěryhodné číslo. Z pohledu týmu je účelem udělat plánování jednodušší, když se to tak na začátku nezdá a oprostit jednotlivé členy týmu od stresu, ale zároveň je na výsledku motivovat. Tým naplánuje jen to, co věří, že stihne udělat. Ostatně úlohy jsou obodovány a tým ví, že je schopen udělat 20 bodů za sprint, a tedy že stihne zase 20 bodů. Samozřejmě může se stát, že se to ve vyjímečných případech nepodaří, ale troufám si říct, že je pak pravděpodobné, že něco nefunguje úplně ideálně a stálo by to za Vaši pozornost. Pracuje tým opravdu týmově? Jak probíhá plánování? Rozumí pojmu bod? …

Zavádíte-li s Vašimi lidmi první Agile projekt, je velmi pravděpodobné že se to budete nějakou dobu učit. Můj odhad je tak 5-8 sprintů. Tým se musí naučit chápat a vnímat co je to bod, jak dělat plán a jak spolupracovat opravdu týmově. Na začátku bylo obvyklé, že tým vykazoval naprosto nerovnoměrné výsledky v rozmezí od 0 do 2.5 násobku plánovaných bodů. Jedním z velmi důležitých pravidel je tým nechat samostatně pracovat po dobu sprintu, a neorganizovat ho zvenku, ale na konci sprintu věnovat čas na reflexi a vysvětlení.

Na závěr ještě jednu radu. Vaším cílem je být efektivní. A platí, že dobrý tým je vždy efektivnější než samostatní jedinci. Proto neporovnávejte a nehodnoťte jednotlivé lidi podle toho, kolik dokončili úloh a za kolik bodů ty úlohy byly, ale hodnoťte vždy jen tým jako celek. Motivujete tím tým na výsledku a tedy i jeho jednotlivé členy na vzájemné spolupráci. Navíc máte-li týmy dva a více, vzbudíte tím zdravou soutěživost, a vytvoříte dobrou referenční soustavu.

Ohodnocení úloh body

Jedním z těžko uchopitelných praktik Agilu je ohodnocení body. Ze zkušeností vím, že pochopení toho ‘co to vlastně ten bod je‘ a jak můžu ohodnotit úlohu něčím, co vlastně nemá pevnou jednotku, patří k nejsložitějším úkolům při zavádění Agile.

Ale vezměme to popořádku. Na začátku projektu máte seznam oblastí (Story) na kterých budete pracovat v Backlogu. Vezměte tým složený z project managerů, architektů a technical leaderů a udělejte odhady náročnosti tak, jak jste byli zvyklí. Pak převeďte odhady na body: 1bod=1man/day. A teď to přijde. V tom to momentě zapomeňte rozměr bodu a pracujte už jen a pouze s bodem. Jeho hodnota bude v začátku projektu, zvlášť bude-li to první Agile projekt, jistě měnit svou hodnotu, obvykle devalvovat. My jsme měli po cca dvou prvních měsících hodnotu bodu 0.6man/day. Nicméně od té doby se drží stabilní a to i na dalších projektech.

Co chcete docílit:
  • Zlepšit/zpřesnit odhady lidí v týmu
  • Zvýšit důvěryhodnost plánu vzhledem k managementu
  • Aktivně zapojit tým do plánování
  • Motivovat lidi na výsledku a včasném ukončení projektu
  • Zapojit tým do hry

Ohodnocení body je jen jeden střípek do mozaiky, sám o sobě toho moc nezmůže, ale je to dobrý začátek pro zkvalitnění odhadů náročnosti jednotlivých úloh. Jestli jste někdy zkoušeli nechat vývojáře odhadnout kdy práce bude hotová, jistě se Vám často stalo, že při odhadu zapomněli na část aktivit, např. testování, nebo Vás přesvědčovali, že práce odhadnout nejde, protože nikdo neví, co se může ještě objevit za problém.

Prvním krokem pro učení ohodnocení jednotlivých členů týmu je ohodnotit Story zkušeným týmem a pak nechat tým jen jednotlivé Story rozpadnout na menší úlohy ohodnocené body v rámci původního odhadu. Ohodnocení body zbaví jednotlivé vývojáře přímé vazby na čas, nicméně časem vytvoří bodu jakýsi ‘rozměr složitosti‘ který tým vstřebá a naučí se automaticky používat.

Každou další novou úlohu či Story nechte ohodnotit už přímo tým, který na ní bude pracovat. Tím tým zapojíte do hry a budete-li správně prezentovat výsledky (Burndown), zajistíte si tím správnou motivaci.