Crystal je rodina metodologií vývoje softwaru se společným genetickým kódem zahrnujícím časté dodávky, osobní komunikaci a zlepšení prostřednictvím reflexe. Každý typ projektu má svou vlastní metodologii Crystal. Tento článek prozkoumá Crystal Clear jako koncept pro malé týmy (až 8 lidí). Je to dobrá alternativa k extrémnímu programování, s některými společnými aspekty.
Historie rodiny Crystal
V roce 1991 se Alistair Cockburn, jeden z autorů Agilního manifestu, snažil vytvořit efektivní metodologii vývoje softwaru. Prozkoumal řadu projektových týmů a studoval jejich vývojové případy.
Výzkum položil základy klíčovým principům Crystal Clear jako efektivnímu konceptu vývoje softwaru:
- Metodologie orientované na lidi jsou výhodnější než procesní.
- Metodologie by měla být přizpůsobena jednotlivému projektu a týmu — neexistuje univerzální metodologie vývoje aplikací.
V roce 1994 tyto myšlenky uplatnil jako hlavní konzultant na projektu s pevnou cenou v hodnotě 15 milionů dolarů se 45 zaměstnanci zvaném “Orange.” Principy, které Alistair vyvinul, se staly základem úspěchu projektu. Tento zážitek zdokumentoval ve své knize “Přežití projekty orientované na objekty” (1997) a o rok později vyvinul rodinu metodologií Crystal.

Šťastný autor rodiny metodologií Crystal, spoluzakladatel Agilního manifestu Alistair Cockburn
V roce 2004 Cockburn identifikoval tři hlavní metody konceptu:
- Rychlá dodávka užitečného kódu: Přechod od velkých, zřídka se uskutečňujících nasazení kódu k menším, častějším vydáním.
- Zlepšení prostřednictvím reflexe: Shromažďování poznatků o tom, co fungovalo dobře a špatně v předchozí verzi softwaru, aby se vylepšila další verze.
- Osmotická komunikace: Cockburn popsal vnímání a výměnu informací mezi vývojáři pracujícími ve stejném prostoru jako pozadí hluku, podobně jako osmoza.
Ve stejném roce Cockburn publikoval “Crystal Clear: Metodologie poháněná lidmi pro malé týmy”. Dalsí příspěvky do vývoje CC učinil systémový administrátor Marcel Wagemann, který napsal esej o používání principů Crystal Clear, Agile a Scrum ve vývoji softwaru.
Co je metodologie Crystal?
Crystal je rodina metodologií založená na těchto třech metodách.
Neexistuje žádná jediná “nejlepší” metodologie Crystal Clear; každá modifikace vyhovuje různým typům projektů. Organizace nebo projekt vytváří tuto modifikaci na základě “genetického kódu” Crystal (základní pravidla použití).
Nejjednodušší klasifikace Crystal je podle počtu lidí v projektu:
- Clear: 2 až 8 lidí pracujících spolu v jedné nebo sousedních kancelářích
- Žlutá: 10 až 20 lidí
- Oranžová: 20 až 50 lidí
- Červená: 50 až 100 lidí
Genetický kód Crystal Clear se skládá z:
- Ekonomicky kooperativní herní model: Cockburn považuje vývoj softwaru za sérii “her” skládajících se z vynálezu a komunikace, omezených prostředky. Každá hra má dva cíle: dodat software v této hře a připravit se na další hru v sérii. Každý nový projekt vyžaduje nové strategie.
- Vybrané priority: Společné pro všechny metodologie Crystal jsou dvě priority: bezpečnost a efektivita vývoje.
- Vybrané charakteristiky: Tyto zvyšují prioritu bezpečnosti. Tři jsou základní (rychlá a častá dodávka kódu, osobní komunikace, zlepšení prostřednictvím reflexe), zatímco zbývající čtyři jsou dodatečné: osobní bezpečnost, zaměření, snadný přístup k odborníkům a kvalitní technické prostředí s automatizovaným testováním.
- Vybrané principy: Jeden pokračuje v klíčovém směru individualizace metodologie:
Úroveň detailu v požadavcích na software, návrhových dokumentech a plánování závisí na specifikách projektu, včetně míry osobní interakce týmu a škod, které mohou být způsobeny neodhalenými chybami.
Cyklický proces Crystal Clear
Většina projektů s Crystal Clear se skládá z šesti cyklů, které definují odpovědnosti a úkoly projektového týmu:
- Projektový cyklus: I když je projekt sám o sobě jednotkou produktu, obvykle následuje další projekt, který cyklus opakuje. Projektový cyklus se skládá ze tří částí: příprava (sestavení týmu, 360° výzkum, určení metodologie), série dvou nebo více dodávkových cyklů a “rituálu dokončení”. Délka: od několika dnů do týdnů.
- Dodávkový cyklus: Zahrnuje pře-úpravu plánu uvolnění softwaru, sérii jedné nebo více iterací vedoucí k testovanému integrovanému kódu, dodání skutečným uživatelům a “rituál dokončení”. Délka: 1 týden až 3 měsíce.
- Iterace: Skládá se ze tří hlavních částí: plánování iterací, denní a integrační cykly aktivit a “rituál dokončení” projektu.
- Pracovní týden/den: Volba dne nebo týdne jako časové jednotky cyklu závisí na formátu projektu a týmu. Příklady zahrnují týdenní schůze oddělení, zprávy vedoucích týmů a “hnědé tašky” semináře (diskuze o problémech projektu při obědě).
- Integrační období: Vývoj, integrace a testování systému. Některé týmy provádějí kontinuální testování sestavení s vyhrazeným strojem, zatímco jiné integrují denně nebo třikrát týdně. Čím kratší je integrační cyklus, tím lépe. Délka: 30 minut až 3 dny (v závislosti na zkušenostech týmu).
- Vývoj: Psání a kontrola části kódu. Toto je jádrová práce programátora v agilním vývoji. Člen týmu si vezme malý úkol, naprogramuje řešení (ideálně s testováním), a zkontroluje ho v konfiguraci s celým systémem. Délka: 15 minut až několik dní.
Strategie a techniky Crystal Clear
“Čistý” Crystal Clear nevyžaduje žádné specifické strategie a techniky. Nicméně jsme připravili startovací sadu metod, které pomohou týmu pracovat efektivně v každém cyklu CC.Klíčové strategie zahrnují:
- 360° výzkum: Na začátku projektu musí tým pochopit, jak užitečný a smysluplný je produkt a zda jej lze vytvořit s dostupnými zdroji a technologiemi. Projekt je zkoumán v oblastech, jako jsou obchodní hodnota, požadavky, potřebné technologie, projektový plán, složení týmu a vybrané metodologie. Implementace trvá několik dní až 1 – 2 týdny.
- Brzké vítězství: Vítězství sjednocuje tým a zvyšuje důvěru každého člena. V rámci vývoje aplikací strategie brzkého vítězství zahrnuje nalezení prvního kusu funkčního kódu, často malého prvku užitečné funkčnosti systému. Toto malé vítězství pomáhá členům týmu poznat styly práce navzájem, uživatelé dostanou brzkou představu o systému a sponzoři vidí schopnosti týmu.
- Postupná změna architektury: Architektura systému by se měla vyvíjet, jak se mění technologické a obchodní požadavky v průběhu času. Strategie se zabývá tímto umožněním týmu postupně měnit architekturu bez narušení celkové funkčnosti systému. Stejná strategie může být aplikována na funkční změny v konečném systému.
- Informační radiační prvky: Zobrazovací prvky umístěné tam, kde je lidé mohou vidět při práci nebo odpočinku. Ukazují potřebné informace, aniž by bylo nutné klást další otázky, ztělesňující pravidlo Crystal Clear “více komunikace, méně přerušení”.
Informační radiátor by měl být velký, snadno přístupný, jednoduchý na použití a čtení a obsahovat aktuální informace. Příklady zahrnují Scrum a Kanban tabule a pracovní glosář interpretující terminologii projektu.

Populární techniky zahrnují:
- Tvorba metodologie: Úprava Crystal Clear probíhá ve dvou fázích: projektové rozhovory (vytváření mini-knihovny organizačních zkušeností zdůrazňující silné a slabé stránky projektu) a workshop pro tvorbu metodologie (analýza zkušeností za účelem posílení silných stránek a kompenzace slabin). Informace z prvního kroku se používají ve druhém.
- Reflexní workshop: Pravidelně by si tým měl vzít hodinovou pauzu, aby provedl “reflexní workshop,” diskutující o tom, co funguje dobře nebo špatně, co potřebuje zlepšení a co lze udělat jinak v dalších fázích projektu.
- Blitz plánování: Umožňuje sponzorům, uživatelům a vývojářům společně vytvořit projektovou mapu s časovými omezeními.
- Denní setkání na stojáka: Krátká setkání k určení stavu projektu, pokroku a problémů. Tato setkání nejsou určena k diskusi, pouze k identifikaci problémů. Výsledky jsou zaznamenávány v online správci úkolů nebo na fyzické Kanban tabuli.
- Pair Programming: V tomto procesu pracují dva lidé na úkolu programování na jednom zařízení. Pair programming je často kritizován za to, že eliminuje individuální přístupy k úkolům a vyžaduje kvalitní mezilidské vztahy v týmu projektu. Alternativní technika, “slide-by-slide,” zahrnuje dva lidi, kteří sedí dostatečně blízko, aby viděli obrazovky jeden druhého, ale pracují na různých úkolech na samostatných pracovních stanicích. To odpovídá konceptu “osmotické interakce.”
Doporučená literatura o Crystal Clear
Bohužel, existuje velmi málo literatury o Crystal Clear a k 2017 neexistují žádné specializované práce v ukrajinštině.Klíčové zdroje pro studium Crystal Clear zahrnují:
- “Crystal Clear: Metodologie poháněná lidmi pro malé týmy” od Alistaira Cockburna: Úžasná kniha pro porozumění metodologii od jejího tvůrce. Obsahuje mnoho případových studií, příkladů a mini průvodců k implementaci jednotlivých prvků Clear v organizaci.
- “Pair Programming Illuminated” od Laurie Williams: Podrobná analýza jedné z technik Crystal Clear, pair programming. Kniha poskytuje praktické rady pro použití PP ve vývoji softwaru.
- “Agilní vývoj softwaru: Kooperativní hra” od Alistaira Cockburna: Vysvětluje koncept vývoje softwaru jako “kooperativní hru vynálezu a komunikace.” Cockburn rozšiřuje myšlenky z Crystal Clear v této knize, kterou později formalizuje v “Crystal Clear: Metodologie poháněná lidmi pro malé týmy.”
- Oficiální webové stránky tvůrce Crystal Clear: I když se nejedná o knihu, nabízí bohatství informací, včetně rozhovorů, diagramů, blogových příspěvků a diskusí o metodologii. Jedinou nevýhodou je nepřátelský design stránek.
Verdikt
Mnoho tzv. “nejlepších” metodologií je týmami projektů odmítáno, protože jsou příliš složité, vtíravé a neskladné.