Složitost světa

Trvalo mi to dlouho, ale nakonec jsem se dobrala porozumění Cynefin frameworku. David Snowden o něm dokáže krásně vědecky vyprávět, ale většinou jsem se v tom někde ztratila a aplikace jeho teorie mi unikala. Takže se pojďme podívat, o čem to celé je, laicky řečeno.  Složitost světa lze klasifikovat několika kategoriemi.

Jasný, triviální

To je svět, kde je na první pohled zřejmé, co máte udělat. Nemusíte to analyzovat ani přemýšlet. Prostě to víte. Je to svět, na který se dá napsat kuchařka. Je to práce u pásu.

Složitý

Tady už se musíte zamyslet. Udělat analýzu. Vymyslet, jak na to. Na základě informací co máte, se rozhodnout. To je svět waterfallu. To je svět, kde si myslíme, že když vše dobře rozmyslíme, tak to pak stačí jen udělat podle plánu.

Komplexní

Tohle je svět, kdy jsme si poprvé přiznali, že nevíme, co se stane. Může to být tak, ale i zcela jinak. Může přijít překvapení.‘Jeejej. On zákazník vlastně nepotřebuje detailní přehledy pro mzdy, přestože je celou dobu chtěl.. jeeejej.. on to vlastně používá jinak, divně, aha, to ale znamená že musíme udělat něco jiného.‘ Určitě jste to zažili. A tady přichází na řadu Agilní přístup s filosofií ‘Inspect and Adapt‘.  Nevíme, máme nějaké nápady, nějaké hypotézy. Tak si je pojďme otestovat a teprve na základě zpětné vazby se rozhodneme.

Chaos

Pak je tu chaos. David Snowden jako příklad uvádí dětskou párty. Ještě jsem žádnou nepořádala, ale asi si to umím představit. Veškeré pokusy to nějak řídit selhávají a vy se omezujete jen na minimalizaci dopadu katastrof, které již nastaly nebo by mohly nastat. I tady se můžete občas se svým softwarem octnout. Třeba když vám spadne produkce a vy se chaoticky jeden přes druhého snažíte ji zase nahodit a tím rozbíjíte další a další věci.

Disorder

Posledním stavem je cosi těžko definovaného uprostřed. Nevýhodou je, že se těžko pozná, do které kategorie daná situace spadá. Zdá se to být snadné, ale… pojďme se raději zamyslet… hmmm těžko říct, zkusíme to… není to zbytečné tím trávit čas… je to přeci snadné, tak to pojďme hned udělat. V takové situaci týmy inklinují k jednoduchým řešením, která ovšem nejsou vždy nejlepším řešením složitých problémů.

Typickým příkladem je nová UserStory v průběhu Sprintu. Je to potřeba, tak to pojďme hned udělat.  Bez ohledu na Scrum. Jenže když tomuto klamu podlehnete, obvykle zjistíte, že to nebylo tak snadné, že to má další konsekvence a výsledek je, že často neuděláte nic a ještě rozbijete něco kolem.

Complexity - Cynefin

SW vývoj

Dalo by se říct, že existují příklady jednoduchého SW např. web pro restauraci, složitého jako web pro konferenci a komplexního pro nový produkt. Ale kdykoliv jsem se snažila dát příklad takové aplikace, zjistila jsem, že ani zdánlivě snadná věc s pár uživateli není v kategorii jednoduchá. A ze zkušenosti s různými většími SW produkty se zdá, že ač některá zadání vypadají snadně, nebo ne moc složitě, většinou končí mnoha iteracemi změn. Tedy jsou v kategorii ‘komplexní’. Tak proč se na ně raději nepřipravit a nepoužít na vývoj SW již od začátku proces, který je vhodný na komplexní problémy – tedy Agile a Scrum. 🙂