23.11.2010

Agile samotný nestačí, je čas pro Lean

Hned na úvod musím zmínit, že netvrdím, že Scrum či Agilní praktiky nelze použít jinde než při vývoji software. Náš tým používá úspěšně Scrum a Agilní praktiky již více než 4 roky k plánování a vykonávání konzultantské činnosti a také jsme pomohli několika prodejním týmům organizovat práci pomocí Scrumu. Navíc praktiku jakou je retrospektiva může každý úspěšně používat i ve svém životě či ke zlepšení partnerského vztahu. Vím také, že Agilní principy lze aplikovat i na úrovni managementu produktů či rozsáhlých programů. Může existovat backlog na úrovni managementu, kde budou obsaženy produkty či organizační omezení. Lze plánovat jednotlivé verze a synchronizovat jejich závislosti a týmy a podobně.

Pohled tohoto článku je však jiný. Agile jako takový vznikl a řeší především vývoj, provoz a údržbu SW. Pokud však potřebujeme řešit omezení a problémy na jiné úrovni (mimo oblast SW), v jiné funkční jednotce (vedení, marketing, vztah se zákazníky, obchod, skladování, prodej, nákup, výroba), či optimalizovat jiné procesy než vývoj software, pak naráží Agilní přístupy na svoje limity a původ. Agilní přístupy mohou být dostatečné v malé či ve střední softwarové firmě a na svoje limity nemusí téměř narazit za celou dobu existence firmy. Pokud však dodáváte software interně jiným oddělením pro podporu jejich práce či máte množství rozličných externích zákazníků a produktů, pak Agile nebude stačit, jakmile omezení, která řešíte, dosáhnou střední úrovně managementu.

Agilní přístupy jsou primárně zaměřeny na produkční týmy vývoje software a jejich (operativní) řízení, plánování a vykonávání inženýrských disciplín (analýza, návrh, testování, programování), ne na úroveň managementu. Např. Scrum definuje 2 role (Scrum master a Product Owner), které nejsou zcela dostatečné. Například neřeší standardní roli liniového manažera v maticové organizaci, který se stará o rozvoj lidí a jejich kompetencí. V produkčních týmech mnohdy chybí znalost byznysu, konkrétní problematiky podnikání. Dále může být problém synchronizace mezi jednotlivými odděleními, funkcemi organizace a managementem s produkčními týmy.

Kdy tedy typicky Agilní přístupy již nestačí?

  • pokud jsme narazili na střední vrstvu managementu,
  • pokud je omezení či problém v jiném oddělení, než je vývoj software,
  • pokud nemůžeme optimalizovat celek, součást týmu nejsou obchodníci
  • a další.

V těchto případech nám může pomoci Lean přístup. Lean je česky někdy překládán jako štíhlý, což však nevystihuje jeho podstatu. Lean není jen a pouze o redukci zbytečných kroků, aktivit, zásob. Proto nebudeme toto slovíčko překládat. Agilní přístupy nám pomáhají zdola nahoru (motivace lidí, samo řízení, agilní inženýrské praktiky), kdežto Lean spíše shora dolů (definice hodnoty – vize, mise, služeb, produktů – a snaha o její doručení; změna kultury řízení, nastavení prostředí pro tuto změnu).

Co je to Lean?

Po druhé světové válce poslali Američané do Japonska chytré hlavy, aby pomohli zdevastované zemi. Jedním z nich byl také profesor Deming, který ovlivnil myšlení tamních schopných vůdců. Lean má kořeny (nejen) v Japonských poválečných výrobních firmách. Snad nejznámější instancí je společnost Toyota, s jejich systémem zvaným Toyota Production System (TPS). TPS je způsob myšlení stavějící na kultuře neustálého zlepšování, podpory zaměstnanců, doručování hodnoty. Nejedná se tedy o pouhou sadu zásad a principů, ale opravdu o filozofii, způsob myšlení (stejně jako Agilní přístupy). Díky úspěšnosti TPS a Lean přístupů byly zásady z výroby interpretovány v kontextu vývoje software. Nejznámější propagátorkou Lean Software Development je Mary Poppendieckspolečně se svým manželem Tomem či dále Alan Shalloway.

Pojďme tedy nastínit o čem je Lean přístup. Lean je zaměřen na:

  • vytváření hodnoty pro zákazníka,
  • respektování ostatních lidí (ať již kolegů, nadřízených, podřízených, zákazníků, byznys pracovníků),
  • zkracování produkčního cyklu a doručení hodnoty tím, že odstraňujeme zbytečnosti (zbytečné kroky, meziprodukty, nepoužívanou dokumentaci apod.) a jiná omezení, která jsou ukrytá ve způsobu práce,
  • okamžité řešení problémů a jejich příčin i za cenu okamžitého zastavení produkce (vývoje) – vestavěný princip kvality,
  • vytváření kultury neustálého zlepšování.

Ale především je Lean o neustálém učení se a ne o tom, že se necháme vláčet událostmi kolem nás. K tomuto potřebujeme jistou dávku tvůrčího napětí, jelikož spokojený zaměstnanec nepřemýšlí nad zlepšeními. Je v kontextu zlepšení jistým způsobem „mrtev“ ;)

Pokud se mluví o Lean, mnoho lidí zmiňuje techniky jako analýza toku (Value Stream Analysis), A3 (ukázka šablony), běž a pozoruj (gentchi genbutsu), Kaizen a další. Ale pouhá sada technik není Lean přístup a ani nezaručí zlepšení (tak, jak se o to pokoušely a pochopily americké automobilky poté, co je ty japonské na jejich domácím trhu začaly válcovat kvalitou i cenou zároveň). To, co dělá pochopení a implementaci Lean těžkou je, stejně jako u Agile, její „forma“. Jedná se totiž o způsob myšlení, nejen o sadu principů a technik, kdy techniky samotné nejsou důležité, nejsou stěžejním jádrem přístupu. Techniky pouze napomáhají implementovat principy do praxe. Některé techniky jsme již zmínili v tomto odstavci, jaké jsou tedy ty principy?

  • Odstraňte plýtvání (vytváření toho, co zákazník nepoužije či nepotřebuje; málo či žádný čas na učení, tvorba nepoužívané dokumentace).
  • Vestavěná kvalita (lepší je chyby nedělat vůbec, než je umět efektivně opravovat).
  • Odsuňte rozhodnutí do nejzazšího zodpovědného bodu – kdy máte potřebné informace (proč rozhodovat v zadání nového projektu o použité technologii, když ještě nevíme, jak rychlá, rozšiřitelná a udržitelná má aplikace být?).
  • Učení je nezbytné (bez zpětné vazby se nemůžeme učit a zlepšovat, rozhodujte až se znalostí kontextu a možných variant).
  • Doručujte rychle (rychlá zpětná vazba pro tým, zákazník může některé funkčnosti okamžitě používat = vyšší ROI, kratší doba dodání na trh, tzv. time-to-market).
  • Neúprosně se zlepšujte (nespoléhejte na „best practices“, ověřte nové hypotézy v praxi, neustále vystavujte váš proces konstruktivní kritice a zlepšení, vychovávejte vůdce v týmech).
  • Respektujte ostatní (abyste vytvořili vhodné prostředí pro jejich motivaci, to znamená také nastavení organizační struktury, systému, nástrojů a svobody).
  • Doceňte systém (zaměřte se na celý tok – od zákazníka k zákazníkovi, nedodávejte jen software, ale produkt řešící potřeby zákazníka).

Základní kroky samozřejmě záleží na kontextu, nastavení a omezeních vaší organizace. Chcete-li však vybudovat Lean organizaci můžete začít s těmito kroky:

  • Začněte vytvářet prostředí a kulturu podporující samořízené týmy (rozhodovací pravomoci co nejníže, spolu s odpovědností, ne jen ji) místo přikazování a rozdávání úkolů.
  • Mentoring a koučing týmů a manažerů zkušenými vůdci (podpora učení, dodání expertní znalosti, omezení nutnosti znovu vynalézat kolo, sdílení mezi týmy navzájem).
  • Limitujte množství paralelně vykonávané práce (přepínání mezi jednotlivými projekty/úkoly stojí čas a snižuje produktivitu).
  • Snažte se zkracovat dobu vývoje/zpracování požadavku na změnu od sběru u zákazníka po finální dodání při zachování kvality.
  • Zaměřte se na lidi, jejich podporu, vedení, umožněte jim a vytvořte prostředí pro kreativní práci (není to jen o nástrojích a redukci plýtvání, ale o změně prostředí a myšlení).
  • Začněte používat praktiky jako: běž a dívej se (i Jack Welch, úspěšný CEO kolosu GE chodil pravidelně mezi lidi, pozoroval a ptal se) a Kaizen (zlepšování celku krůček po krůčku navrhované lidmi v týmech).
  • a neustále vystavujte konstruktivní kritice váš aktuální způsob práce (upravte, co nefunguje zcela, přidejte, co chybí, odeberte zbytečnosti) nejen v rámci retrospektivy.

A především už konečně nahraďte sliby a zbožná přání, že byste mohli doručit ve slíbeném čase ;) za transparentnost, akceptování reality se všemi omezeními a neustálé průběžné zlepšování s přispěním všech členů týmu…

Kde tedy může Lean pomoci Agile?

Pokud se dostaneme na úroveň řízení (střední management), často se střetneme s jiným světem ;). Pokud bychom se měli dopustit velkého zjednodušení, můžeme říct, že pokud následujeme Agile, prostě věci děláme a moc předem „nepřemýšlíme“. Pokud chceme něco ověřit, prostě to uděláme, vyzkoušíme (praktika „make your hands dirty“). Po zpětné vazbě to můžeme upravit, přepracovat. Když něco nefunguje, změníme to v přístí iteraci/sprintu (praktika „Inspect and adapt“)… Lean přináší navíc vrstvu myšlení. To znamená znát všechny možnosti, mít všechny informace a pomalu se snažit dosáhnout konsenzu mezi všemi, jichž se oblast dotýká. To dává smysl. Představte si transformaci podniku. Máme myšlenku a prostě ji jen vyzkoušíme, změníme role a organizační strukturu. Po měsíci zjistíme, že to nefunguje, tak uděláme další změnu. Jak byste se jako zaměstnanec asi cítili? Kolik by to stálo, jak rychlá je možnost reagovat a vidět výsledky? Další věc, co Lean doporučuje je specializace, mít experta dělající danou věc dlouhou dobu, aby mohl fundovaně rozhodovat. Určité přepracování implementace po demonstraci (+ nutný refaktoring) je v Agilních přístupech brána jako nutnost vzhledem ke změnám a nutnosti zpětné vazby od zákazníka. V Lean je toto bráno jako plýtvání (přepracování ještě ve fázi analýzy a návrhu však ne). Lean tedy může být brán spíše jako přístup shora dolů (začíná a měl by být podporován na všech úrovních managementu i v týmech), kdežto Agile zdola nahoru (řeší a zaměřuje se především na produkční úroveň). Lean:

  • rozšiřuje kontext a hodnotový tok (neřešíme jen tok zákazník – my – zákazník, ale zahrnujeme i zákazníky zákazníků, společnost, trh, …; zaměřujeme se na Lean architekturu jako základ a znalost jasné cesty kupředu místo, pojďme to zkusit a pak to nějak změníme)
  • popisuje, řídí a vyjadřuje vše (projekty, požadavky) řečí hodnoty pro zákazníka (což znamená i upřednostňování dlouhodobého ROI před krátkodobou úsporou např. v rámci čtvrtletí)
  • se zaměřuje na systémové řešení (hodnota pro všechny, standardizace, chyba v systému, ne v lidech)

Je tedy možné úspěšně kombinovat Agile a Lean, vždyť například Scrum má kořeny v Lean.

Pozn.: Pokud vaše projekty následují riziky řízený přístup (v Elaboration fázi, viz článek o rizicích) a nejsou jen sadou sprintů, pak tento způsob myšlení a zaměření na architekturu částečně obsahují, ale to jsme opět jen na úrovni vývoje software, ne v jiných oblastech jako je management, marketing, výroba apod.

Další zdroje

Další zdroje, kde si můžete přečíst více o Lean, o principech, způsobu myšlení, příkladech:

P.S.: jelikož je Lean opravdu způsob myšlení, který aplikujeme v našem kontextu a každý máme kontext jiný a jelikož neexistuje formální jednotná definice (naštěstí? J), je možné, že X lidí znalých Lean by napsalo X jiných pohledů a článků, než tento stručný úvod.

Máte k tomu co říct?

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *