Na které věci můžete v Agilním prostředí zapomenout

Specifikace

Specifikace v takovém tom klasickém slova smyslu je mrtvá. Agilní prostředí se daleko více zajímá o to co je to minimum, které musíme implementovat abychom dodali maximum business value, než co všechno musíme naimplementovat abychom se do nějaké té business hodnoty trefili. Jak říkal jeden můj známý ScrumMaster, klasické organizace často se zavázanýma očima střílí na kachny. A protože střílí hodně, občas nějakou trefí. Agilní organizace pochopily, že méně je někdy více, a přestali trávit hodiny času specifikací toho co všechno bychom taky mohli udělat. Na místo toho se v rámci Inspect and Adapt principu a časté zpětné vazby snaží pochopit co přináší nejvyšší business hodnotu a na tu se soustředí. Ano, je to změna, a bude to těžké, ale o tom Agile právě je.

Častým nepochopením je že organizace mají pocit, že v rámci UserStory musí psát detailní popis, jak danou potřebu adresovat například formou Akceptačních kritérií. To ale vůbec nepatří do UserStory. Ta by měla pouze definovat potřebu konkrétního uživatele/persony, ‘jak’ji budeme řešit je na dohodě týmu v rámci Sprintu. Ano, pre-rekvizitou je pochopení toho co děláme celým týmem, tedy dobrý Product Owner a Backlog Refinement. Jinak vám ale Scrum ani Agile fungovat nebude. Agile i Scrum je customer centric, business driven. Takže zapomeňte na specifikaci, zkuste se zcítit do zákazníků a pochopte jejich potřeby. Jen tak dosáhnete lepších výsledků.

Projekty

Další věcí, která se dříve či později octne na smetišti dějin, jsou projekty. Stejně jako role project managera. Ale o tom třeba zase příště. Projekt je totiž jen kontejner, v jehož rámci řídíme a zpracováváme práci v klasickém světě. V agilním světě nám stejnou službu dělá Product Backlog, jeho položky a krátké Sprinty/iterace se zpětnou vazbou. Product Backlog je navíc daleko lépe optimalizovaný na vysokou adaptivnost systému, reakce na změny a obecně práci v komplexním prostředí. A tak důležitost světa produktů postupně uvadá. Že jste projektovými managery? Určitě se pro vás najde uplatnění. Project manageři se nejčastěji stávají stakeholdery, kteří pomáhají týmům pochopit kontext zákazníků, častá bývá i změna na Product Ownera, výjimečně ScrumMastera. Většinou platí, že když jste byli potřeba v předchozí neagilní struktuře, budete potřeba i v té nové. Jen vaše role a práce se změní. Ale to platí nejen pro projektové managery, ale i developery, testery, analytiky, a managery. V agilním světě je všechno jinak a jednoduchý mapping neexistuje. Agile je změna mindsetu, a ta začíná ve vaší hlavě. 🙂

Akceptační kritéria jsou ze starého neagilního světa

Akceptační kritéria jsou připravená odebrat se do starého železa. Už nejsou potřeba, a upřímně, nikdy to nebyl dobrý nápad. Byl to takový malý link, kterým se firmy snažily předstírat, že jsou agilní, ale mohly stále mentálně a mindsetem zůstat ve starém klasickém světě. Akceptační kritéria jsou totiž pozůstatkem detailní specifikace, kdy vývojář – rozumějme coding monkey – aby mohl začít pracovat, musel dostat detailní popis chování a řešení. Říkali jsme těm rozsáhlým dokumentům requirements a specifikace. A bez ní ani kuře nehrabe a vývojář nedá ruku na klávesnici.

Jak to že najednou nejsou potřeba? No ony vlastně nikdy nebyly. Ale zvyk je železná košile. Dělali jsme to tak vždy a tak proč v tom nepokračovat. Dodávaly nám jistotu. Měli jsme díky akceptačním kritériím pocit, že věci máme víc pod kontrolou. Že je můžeme vzít jako checklist a na konci Sprintu odškrtat, že jsme udělali vše, co bylo v zadání. Bohužel to nám ale nepomáhalo v tom mít fokus na dodání hodnoty, a týmy často jen dodaly, co tam bylo zadáno, a nepřemýšlely, jestli dosáhneme požadovaného efektu u zákazníka a v produktu.

Co tedy dělat aby to celé fungovalo? Celý tým by měl mít jasnou představu o tom, co za produkt dělá, které věci jsou z pohledu našeho businessu důležité a které ne. Toho se dá docílit tím, že se tým zapojí do visioning workshopů v rámci Backlog Refinementu, věnuje se nejen technologii, ale porozumí zákazníkovi a jeho potřebám. To je něco, o co se v Agilu snažíme už od začátků s Extreme Programmingem, kdy tím nejextrémějším kouskem XP bylo mít zákazníka v týmu. V momentě kdy tým porozumí celkovému smyslu produktu, mohou se začít podílet na jeho rozvoji. Teprve tehdy jsme vytvořili tu pravou end to end vazbu na zákazníka a změnili své vnímání vývoje softwaru z kódování na dodávání hodnoty pro zákazníka. A pak už můžeme s klidným svědomím použít User Story as a Card – tak jak byla vždy definovaná, kde důraz není kladen na detailní popis chování, ale na business hodnotu kterou dodáváme. Proto se nám vše, co potřebujeme vědět, v pohodě vejde na malou podlouhlou index kartičku. Detaily, jak této hodnoty dosáhneme, vznikají v rámci konverzace o funkcionalitě v průběhu Sprintu v době, kdy na dané UserStory tým pracuje. Výhoda konceptu UserStory as a Card je to, že udržuje Backlog jednoduchý, klade důraz na konverzaci a pomáhá týmům spolu Product Ownerem proritizovat a dodávat tu nejdůležitější hodnotu nejdříve. Kdybyste stále měli pocit, že je škoda nechat druhou stranu kartičky pro User Story prázdnou, zkuste tam napsat tzv. Conditions of Satisfaction. Rozdíl je, že takto definovaná kritéria úspěchu nejsou seznamem, co to musí dělat a jak, ale co se má stát až to naimplementujeme. Tedy jaký má věc vzbudit v zákazníkovi pocit, co má udělat, jak má produkt používat.  Je to takový funkční test, který pomáhá lépe definovat možný směr řešení, ale stále nechává volnost jak danou UserStory vyřešit.

Jako John,
si chci vybrat piva na párty,
abychom měli zajímavý výběr pití.

Akceptační kritéria by mohly vypadat následovně:

  • Výběr podle zemí, značek, druhů a chuti
  • Full text vyhledávání
  • Omezení ceny

Takto definovaný list v podstatě definuje řešení a tým už to jen slepě naimplementuje.

 

Na rozdíl od toho, když píšeme Conditions of Satisfaction, zaměříme se na hodnotu:

John vidí, nakolik jsou vybraná piva různorodá, a dostává doporučení na další piva do výběru.

Tento příklad dává větší možnost řešení ovlivnit a vymyslet něco kreativního a v podstatě dodefinovává UserStory. Zároveň se na danou funkcionalitu dívá z pohledu zákazníka, což je vždy dobře. Jak jistě víte, zákazník nemusí být vždy koncovým uživatelem, např:

Jako Beer Shop CEO,
chci zákazníkům nabízet prioritně dražší značky,
abychom měli větší zisk.

 

Conditions of satisfaction pak mohou vypadat následovně:

Zákazníci nabídky často využijí, ale necítí se pod tlakem kupovat drahá piva.

 

Takhle definované parametry úspěchu mimo jiné donutí tým napsat nějaký trackovací mechanismus jak sledovat kolikrát a kteří zákazníci nabídky využili a funkcionalitu na základě toho upravovat a zlepšovat.

Asi je to běh na dlouhou trať a nejde do něj naskočit hned. Ale je to směr, ke kterému bychom se jako industry měli blížit. Jedině tím směrem lze dosáhnout je pravé Agility a úspěchu.