Poprvé jsem o štíhlé výrobě slyšel v souvislosti s Toyotou v hodinách podnikového provozu. Každý, kdo se stejně jako já začetl do principu štíhlé výroby, byl zcela fascinován konceptem snižování plýtvání a zvyšování produktivity prostřednictvím záměrného návrhu.
Postupem času principy štíhlého toku vývoje výrobků převzala řada průmyslových odvětví, a to i mimo výrobu, kam patří i vývoj softwaru.
Principy štíhlého vývoje jsou agilním přístupem, který byl vyvinut na principech štíhlé výroby. Stejný, který používá Toyota jako metodiku řízení a optimalizace procesu výroby vozidel za účelem minimalizace plýtvání a zvýšení hodnoty pro zákazníka.
Vím, co si asi myslíte. Jestliže principy štíhlosti vznikly kolem výroby vozidel, jak do nich zapadá vývoj softwaru?
Spojitost mezi štíhlou agilní metodikou a vývojem softwaru byla poprvé představena v roce 2003 v knize s názvem „Lean Software Development: An Agile Toolkit“ od Toma a Mary Poppendieckových.
Poppendieckovi v knize vykládali, jak lze principy štíhlé metodiky aplikovat do procesu vývoje softwaru. Jak vývoj softwaru, tak výrobní procesy se řídí opakovatelnými strukturami a spoléhají na vysoké standardy kvality. Jsou také do značné míry závislé na týmové práci, aby se věci podařily.
Otázkou však je, jak to lze udělat. V tomto článku se budeme zabývat tím, jak sladit proces vývoje softwaru s principy štíhlého softwaru.
Tabulka obsahu
- Jaké jsou silné a slabé stránky štíhlého agilního vývoje softwaru?
- 7 principů štíhlého vývoje softwaru
- Zapojení 7 principů štíhlého vývoje do našich projektů vývoje softwaru:
- Fázová aplikace principů štíhlého vývoje softwaru
- Překonání problémů při používání principů štíhlého vývoje
Šetrný vývoj softwaru zavádí některé základní principy pro optimalizaci produktivity. Vývoj softwaru přichází s několika klíčovými vlastnostmi, které z něj činí nejlepší proces pro implementaci štíhlého vývoje softwaru.
- Zopakovatelné procesy
- Týmová spolupráce
- Jednotné standardy
- Jaké jsou silné a slabé stránky štíhlého agilního vývoje softwaru?
- Sedm principů štíhlého vývoje softwaru
- Zařazení 7 principů štíhlosti do našich projektů vývoje softwaru:
- 1. Eliminace plýtvání
- 2. Vytváření znalostí
- 3. Budujte kvalitu
- 4. Rychlé dodání
- 5. Posilte svůj tým
- 6. Odklad rozhodování
- 7. Optimalizace celku
- Fázová aplikace principů štíhlého vývoje softwaru
- Překonání problémů při používání principů štíhlosti
Jaké jsou silné a slabé stránky štíhlého agilního vývoje softwaru?
Mezi silné stránky principů štíhlého vývoje produktů patří:
- Zjednodušený přístup umožňující dodání funkcionalit v omezeném čase
- Eliminace zbytečných činností, která může snížit náklady
- Posílení pravomocí vývojového týmu, což mu pomáhá přijímat rozhodnutí, která mohou zvýšit jeho morálku.
Mezi slabé stránky metodiky štíhlého vývoje softwaru patří:
- Velmi závisí na zapojeném týmu, což ji činí méně škálovatelnou ve srovnání s jinými rámci
- Záleží na přísné dokumentaci. Selhání v této části může vést k těžkým chybám při vývoji.
Sedm principů štíhlého vývoje softwaru
Existuje sedm klíčových principů přístupu štíhlého vývoje softwaru, které pracují s cílem urychlit dodávku a přinést vysokou hodnotu koncovým uživatelům:
- Eliminovat plýtvání
- Vytvářet znalosti
- Vybudovat kvalitu
- Rychlé dodání
- Posílit tým
- Odložit rozhodování
- Optimalizovat celek
K naplnění těchto cílů cum principů využíváme nástroje jako např:
Řízení zásob – Postupujeme tak, že snižujeme počet operací, které probíhají v jednom kroku, a to aplikací teorie nebo omezení či teorie front.
Kanban – Jedná se o pull systém řízení projektů, kde omezujeme úkoly, které se dokončují současně. To nám pomáhá zabránit přetížení procesu vývoje.
Mapování toku hodnot – Je to vizualizační metoda, kde vizualizujeme vývojový cyklus – od požadavku klienta až po nasazení. To nám pomáhá v demonstraci a pomáhá optimalizovat čas strávený držením a skutečným zpracováním.
Podívejme se nyní na to, jak sladíme sedm štíhlých principů s naším cyklem vývoje softwaru v roli přední společnosti zabývající se štíhlým vývojem softwaru.
Zařazení 7 principů štíhlosti do našich projektů vývoje softwaru:
1. Eliminace plýtvání
Předním principem štíhlého vývoje produktů, který přijímáme, je eliminace všeho, co nepřináší žádnou hodnotu koncovým uživatelům. Začínáme identifikací hodnoty produktu, který máme vytvořit.
Snadno tak identifikujeme plýtvání, jako je zbytečný kód, nejasné cíle, dodatečné funkce a procesy navíc atd.
Plýtvání je jednou z největších výzev digitální transformace. Podle našich zkušeností je lze nalézt v řadě oblastí:
- Plytvání rozpracovanou prací, tj. dílčí prací. To lze snížit zavedením omezení v rozpracované výrobě, a to prostřednictvím režimu Kanban.
- Plytvání nadprodukčního odpadu. Ty vznikají, když se cykly zpětné vazby příliš prodlouží a je požadována řada funkcí navíc.
- Produkční plýtvání. Ty naše společnost zabývající se vývojem softwaru eliminuje pomocí přístupů párového programování a lepší spolupráce.
- Plýtvání z ruky. Tento problém řešíme tím, že náš tým nefunguje jako sila. Pracujeme jako úzce propojený multifunkční tým, který pomáhá zvyšovat efektivitu.
- Vady softwaru. Plýtvání má tendenci prosakovat, když se kvalita nestane součástí firemního procesu vývoje softwaru s různými bilancemi a kontrolami.
2. Vytváření znalostí
Proces vývoje softwaru je sám o sobě procesem, který silně generuje znalosti. Společnost Appinventiv byla od počátku extrémně znalostně zaměřená. To je jeden z hlavních důvodů, proč se nám podařilo začlenit technologii blockchain a umělou inteligenci do projektů dříve než kterékoli jiné společnosti zabývající se vývojem softwarových aplikací v oboru.
Tento princip sladíme s naším vývojovým procesem zavedením některých klíčových metod, jako jsou: revize kódu, provádění školení, komentáře ke kódu, projektová dokumentace, párové programování a sdílení relací atd.
3. Budujte kvalitu
Náš tým pro vývoj softwaru zajišťuje, že se vždy zaměřujeme na dodávání vysoce kvalitních produktů. Vždy neustále zdokonalujeme náš vývojový proces, abychom eliminovali projekt od prvního kroku až po konečný produkt.
Existují různé přístupy štíhlého agilního vývoje softwaru, které používáme k lepší kvalitě produktu:
- Párování – pro snížení plýtvání chybnou komunikací a maximální výstup.
- Testovací kritéria – nabízejí inženýrům systém zajišťující splnění požadavku.
- Inkrementální vývoj – zlepšení kvality díky včasné a konzistentní zpětné vazbě.
- Menší čekací stavy – k ochraně kvality a zefektivnění efektivity při současném snížení mezery ve znalostech.
- Automatizace – využití prostředků, jako je umělá inteligence a strojové učení, ke snížení a případně odstranění chyb ve vývojových procesech.
4. Rychlé dodání
Základy agilního vývoje se výrazně zaměřují na rychlé dodání softwarových procesů. Agilní principy Lean, které jsou součástí tohoto přístupu, také kladou důraz na rychlé dodání. Jednoduše to znamená, že projektový tým by měl dodat moduly podle plánů milníků.
Dosažení rychlého času vývoje aplikací je snazší, když existuje stabilní pracovní postup, který pomáhá týmům pochopit hodnotu procesu, a tím usnadňuje rychlé výsledky.
5. Posilte svůj tým
Tuto jedinou zásadu štíhlosti dodržujeme bez ohledu na tým a projekt. Náš tým, který se zaměřuje na vývoj softwaru pro startupy, chápe, že když pracujete společně, musíte se navzájem respektovat. A když se něco nedaří nebo nejde podle plánu, je třeba se zaměřit na kontrolu mezer v pracovním procesu, které mohly vést ke konfliktům a problémům.
Od svého vzniku se zaměřujeme na vytváření příznivého pracovního prostředí, ve kterém jdeme příkladem. Pro zlepšení morálky umožňujeme našim týmům také tvůrčí svobodu a dáváme jim možnost určit nejlepší přístup k jakémukoli úkolu.
6. Odklad rozhodování
Víme, co si myslíte – odklad rozhodování musí být špatný nápad.
Pokud se však řídíme zásadami štíhlé agility, věříme, že rozhodovat se pozdě se nerovná stát se nezodpovědným. Ve skutečnosti to tým podporuje v tom, aby si nechával dlouhou dobu otevřené možnosti, aby mohl shromáždit data, která mohou pomoci při přijímání důležitých rozhodnutí.
Výsledkem toho je, že náš projekt nikdy netrpí negativními dopady, které vznikají v důsledku špatného rozhodování.
7. Optimalizace celku
Snažíme se o optimalizaci celého procesu vývoje, který se neomezuje pouze na dílčí procesy. Pracujeme s vědomím, že pokud přidáme hodnotu určité sadě procesů, ovlivní to nakonec konečný produkt a konečné výsledky by byly neoptimalizované.
Pro zvládnutí suboptimalizace podporujeme operování s dobrými pracovními kapacitami. Optimalizujeme celý proces, což umožňuje identifikovat hodnotové toky pro celý tým, který následně slibuje hodnotné a včasné dodávky.
Fázová aplikace principů štíhlého vývoje softwaru
Překonání problémů při používání principů štíhlosti
Přestože se článek až do tohoto bodu přikláněl k tomu, jak je metodika štíhlosti přínosná pro hladký proces vývoje softwaru, převažují některé problémy, které je třeba řešit.
- Členové týmu musí být samostatně řízeni a musí být schopni pracovat jako soudržný celek.
- Mohou nastat případy, kdy se požadavky mohou neustále zvyšovat, aniž by byla v dohledu jejich finalizace. Ty je třeba po rozhovoru s klienty zvládnout s citem.
- Lean metoda je silně zaměřena na neustálé zlepšování. Také časové lhůty pro implementaci jsou obecně dlouhé. To zase může prodloužit časovou osu, kdy budete moci využívat přínosů.
.