Stejně jako se při stavbě používá plán a při přípravě jídla se postupuje podle receptu, existují zásady, které je třeba dodržovat při efektivním vývoji softwaru. Tyto zásady ústí do toho, co se obvykle označuje jako metodika vývoje softwaru. Metodika vývoje softwaru je nezbytná, protože obsahuje postupy, které vedou k úspěchu projektu vývoje softwaru.
Nepostupuje-li se při stavbě podle plánu, výsledek znamená katastrofu, a stejně tak se bez dodržení správných zásad buduje softwarový produkt. Vynecháte mnoho zásadních kroků a nakonec budete mít nesčetné problémy s kvalitou softwaru. Jako projektový manažer je nezbytné vědět, že existuje mnoho přístupů, kterými se lze při vývoji softwaru řídit, včetně přístupu štíhlého vývoje, a že při správné volbě metodiky vývoje softwaru vždy vznikne vysoce kvalitní softwarový produkt.
Šetrný vývoj softwaru
Metodika štíhlého vývoje je typ agilního přístupu, který byl založen na principech štíhlé výroby. Štíhlá výroba zahrnuje velmi úspěšné principy, které byly poprvé použity ve výrobním systému Toyota jako postup řízení a optimalizace procesu výroby automobilů s cílem zvýšit hodnotu pro zákazníka a minimalizovat plýtvání.
Jestliže tedy principy štíhlé výroby souvisejí s výrobou motorových vozidel, jak je to s vývojem softwaru? Víme, že výroba a vývoj softwaru se liší – výroba zahrnuje tvorbu fyzických produktů, zatímco produkt vývoje softwaru je nehmotný a jeho hodnotu lze vnímat a vytvářet pouze v myslích vývojového týmu.
Mapování mezi štíhlou výrobou a štíhlým vývojem softwaru poprvé vzniklo v roce 2003 v knize s názvem „Lean Software Development: An Agile Toolkit“ autorů Mary a Toma Poppendieckových. V knize manželé Poppendieckovi vykládají, jak lze principy štíhlé výroby produktivně aplikovat na vývoj softwaru. Výroba i vývoj softwaru se řídí opakovatelnými postupy a vyžaduje přesné standardy kvality. Také se spoléhají na týmovou práci. Sedm principů štíhlé výroby lze tedy aplikovat a využít při vývoji softwaru.
Sedm principů štíhlé výroby, které je třeba dodržovat při vývoji softwaru
Protože umožňují rychlejší způsob vývoje softwarových produktů, jsou agilní vývojové přístupy oblíbené u mnoha vývojových společností. Takové společnosti již zavádějí zásady štíhlého vývoje. Zde je 7 zásad štíhlého vývoje, které můžete uplatnit ve svých projektech vývoje softwaru:
- Eliminovat plýtvání
První zásadou, kterou je třeba při štíhlém vývoji dodržovat, je eliminovat vše, co nepřináší hodnotu pro koncového uživatele. Při vývoji softwaru lze tuto zásadu realizovat tak, že nejprve identifikujeme hodnotu vytvářeného softwarového produktu. Jakmile se to podaří, bude snazší odhalit „odpad“ – cokoli, co nepřináší hodnotu produktu a nakonec ani uživatelům, včetně zbytečného kódu, nejasných požadavků, funkcí a procesů navíc atd. Ostatní fáze metodiky, které nepřinášejí žádnou hodnotu, je také třeba odstranit. Existují nástroje, které pomáhají při identifikaci plýtvání při vývoji softwaru, včetně mapování hodnotových toků.
- Vytváření znalostí
Vývoj softwaru je sám o sobě postupem generujícím znalosti. Princip vytváření znalostí tedy podporuje vývojové týmy, aby měly správné struktury umožňující řádné učení. Zní to jednoduše, ale princip vyžaduje naprosté soustředění a odhodlání. Lze jej realizovat prostřednictvím provádění školení, revizí kódu, adekvátních komentářů ke kódu, párového programování, projektové dokumentace, sezení ke sdílení a dalších.
- Build Quality In
Šetrný vývojový tým by měl zajistit, aby se zaměřil na rozvoj kvality produktu. Neměly by tedy spoléhat na představu zajištění bezchybného konečného produktu. Naopak, týmy by měly pokračovat ve zdokonalování procesu vývoje a přestat rozptylovat vady v produktu od samého počátku pro funkční konečný produkt.
- Rychlé dodání
Agile vývojové techniky se zaměřují na co nejrychlejší dodání softwaru. Štíhlý vývoj jako agilní přístup také klade důraz na rychlé dodání softwaru. To znamená, že projektový tým musí uživatelům dodat cílenou komponentu ve správný čas. Pro svůj tým vytvořte rovnoměrné a stabilní pracovní postupy, které vycházejí z pochopení hodnoty procesu, abyste usnadnili dosažení rychlejších výsledků.
- Posílení vašeho týmu
Posílení vašeho projektového týmu vyžaduje, abyste respektovali každého – lidé pracující společně v týmu by se měli respektovat navzájem. Když se něco nepovede, a to se většinou povede, neobviňujte lidi. Místo toho zkontrolujte, zda v procesu nejsou mezery, které by mohly vést k problémům a konfliktům. Vytvářejte příznivé pracovní prostředí pro všechny a jděte příkladem. Kromě toho dopřejte členům týmu inovativní svobodu při výběru a určování správných přístupů a nástrojů pro všechny zadané úkoly.
- Zpoždění při rozhodování
Vím, že to zní kontroverzně, protože konvenčně máme tendenci pracovat s co nejrychlejším rozhodováním. Jako zásada štíhlosti platí, že pozdní rozhodování neznamená nezodpovědnost při rozhodování. Naopak, podporuje projektový tým v tom, aby si ponechal možnosti otevřené po delší dobu a shromáždil více údajů a informací, které mu pomohou učinit zásadní rozhodnutí. Opožděné rozhodování dává více času na učení a získávání dalších znalostí, což vede k ještě lepším rozhodnutím. V důsledku toho váš projekt neutrpí negativní dopady, které by mohly být důsledkem špatného rozhodování. Zamyslete se nad tím, zda byste raději udělali unáhlené rozhodnutí, kterého byste později litovali, nebo si vzali čas na shromáždění informací a učinili správné rozhodnutí?“
- Optimalizujte celek
Vždy se snažte o optimalizaci celého procesu vývoje, nejen dílčích procesů. Pokud přidáte hodnotu pouze jednomu nebo jen několika málo procesům, ovlivní to konečný produkt a vaše výsledky budou neoptimalizované. Neměli byste uvádět na trh horší produkt jen proto, že jste neměli dostatek času. K vypořádání se s neoptimalizací vybízí princip optimalizace jako celku, který eliminuje bludné vývojové a testovací cykly a místo toho pracuje s mnohem lepšími pracovními kapacitami. Optimalizace jako celek umožňuje identifikovat hodnotové toky procesů pro celý tým, což umožňuje rychlejší a hodnotnější dodávky. Zaměřte se tedy na celý hodnotový tok od začátku do konce, abyste dosáhli optimalizace.