Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Agilní vývoj je termín, který se používá k popisu iterativního vývoje softwaru. Iterativní vývoj softwaru zkracuje životní cyklus DevOps tím, že dokončuje práci v krátkých intervalech, které se obvykle nazývají sprinty. Sprinty jsou obvykle dlouhé jeden až čtyři týdny. Agilní vývoj je často kontrastován s tradičním nebo vodopádovým vývojem, který plánuje větší projekty předem a dokončí je podle plánu.
Poskytování kódu v produkční kvalitě během každého sprintu vyžaduje, aby tým agilního vývoje zohlednil zvýšené tempo. Veškeré kódování, testování a ověření kvality musí být provedeno každý a každý sprint. Pokud není tým správně nastavený, výsledky můžou spadat pod očekávání. I když tato zklamání nabízejí skvělé studijní příležitosti, je užitečné se naučit některé klíčové lekce před tím, než začnete.
Tento článek popisuje několik klíčových faktorů úspěchu pro agilní vývojové týmy:
- Pečlivé vylepšování backlogu
- Raná a častá integrace
- Minimalizace technického dluhu
Důkladné upřesnění backlogu
Agilní vývojový tým pracuje s backlogem požadavků, které se často označují jako uživatelské scénáře. Backlog je seřazen podle priority, přičemž nejdůležitější uživatelské příběhy jsou nahoře. Vlastník produktu vlastní backlog a přidá, změní a přepíše uživatelské scénáře na základě potřeb zákazníka.
Jednou z největších překážek produktivity agilního týmu je špatně definovaný backlog. Tým se nedá očekávat, že každý sprint bude poskytovat vysoce kvalitní software, pokud nemají jasně definované požadavky.
Úkolem vlastníka produktu je zajistit, aby inženýři měli v každém sprintu jasně definované uživatelské příběhy pro práci. Uživatelské scénáře v horní části backlogu by měly být vždy připravené k zahájení práce týmu. Tento pojem se označuje jako upřesnění backlogu. Udržování backlogu připraveného pro agilní vývojový tým vyžaduje úsilí a disciplínu. Naštěstí to stojí za investici.
Při upřesňování backlogu si zapamatujte následující klíčové aspekty.
Upřesňování uživatelských scénářů je často dlouhou aktivitou. Elegantní uživatelská rozhraní, krásné návrhy obrazovek a uživatelsky příjemné řešení zabírají čas a energii při vytváření. Pečliví vlastníci produktů zdokonalují uživatelské příběhy dva až tři sprinty předem. Zohledňují iterace návrhu a zpětnou vazbu od zákazníků. Snaží se zajistit, aby každý uživatelský příběh byl něčím, na co je agilní tým hrdý a co může s hrdostí doručit zákazníkovi.
Uživatelský příběh není upřesněný, dokud tým neprohlásí, že je. Tým musí zkontrolovat uživatelský příběh a odsouhlasit, že na něm lze začít pracovat. Pokud tým neuvidí uživatelský příběh až do prvního dne sprintu, pravděpodobně to povede k problémům.
Uživatelské scénáře dále v backlogu můžou zůstat nejednoznačné. Neztrácejte čas vylepšováním položek s nízkou prioritou. Zaměřte se na začátek backlogu.
Integrujte často a od začátku
Kontinuální integrace a průběžné doručování (CI/CD) nastavily váš tým pro rychlé tempo agilního vývoje. Jakmile to bude možné, automatizujte procesy sestavení, testování a nasazení. Nastavte tuto automatizaci jako jeden z prvních úkolů, které váš tým řeší při zahájení nového projektu.
Díky automatizaci se tým vyhne pomalým, náchylným chybám a časově náročným procesům ručního nasazení. Vzhledem k tomu, že týmy vydávají každý sprint, není čas tyto úkoly provádět ručně.
CI/CD také ovlivňuje architekturu softwaru. Zajišťuje dodávky sestavitelného a nasaditelného softwaru. Když týmy implementují funkci, jejíž nasazení je složité, okamžitě zjistí, zda sestavení a nasazení selhaly. CI/CD přiměje tým vyřešit problémy s nasazením v okamžiku, kdy k nim dojde. Produkt je pak vždy připraven k odeslání.
Pro efektivní agilní vývoj jsou důležité některé klíčové aktivity CI/CD.
Testování jednotek Jednotkové testy jsou první obranou proti lidské chybě. Považujte jednotkové testy za součást kódování. Zkontrolujte testy pomocí kódu. Testování jednotek je součástí každého sestavení. Neúspěšné testy jednotek znamenají neúspěšné sestavení.
Automatizace procesu sestavení Systém sestavení by měl automaticky vyžádat kód a testy přímo ze správy zdrojového kódu při spuštění sestavení.
Zásady větvení a sestavování Nakonfigurujte zásady pro větve a sestavení tak, aby se automaticky sestavovalo, jakmile tým odesílá kód do konkrétní větve.
Nasadit do prostředí Nastavte vývojový kanál, který automaticky nasazuje vytvořené projekty do prostředí, které napodobuje produkci.
Minimalizace technického dluhu
S osobními financemi je snazší zůstat mimo dluh, než se z něj vykopávat. Stejné pravidlo platí u technického dluhu. Technický dluh zahrnuje cokoli, co tým musí řešit kvůli zkratkám, které byly udělány dříve. Pokud jste například v úzkém plánu, můžete obětovat kvalitu, abyste splnili konečný termín. Technický dluh je cena, kterou zaplatíte později, když budete muset refaktorovat kód, abyste napravili nedostatek kvality. Mezi příklady patří opravy špatného návrhu, chyb, problémů s výkonem, provozních problémů, problémů s přístupností a dalších problémů.
Zvládání technické zadluženosti vyžaduje odvahu. Existuje mnoho tlaků, které zpožďují přepracování kódu. Je dobré pracovat na funkcích a ignorovat dluh. Bohužel, někdo musí zaplatit technický dluh dříve nebo později. Stejně jako u finančního dluhu se technický dluh stává obtížnější splácet čím dál déle. Inteligentní vlastník produktu spolupracuje se svým týmem, aby zajistil, že každý sprint věnují čas na odstranění technického dluhu. Vyrovnávání technického snížení dluhu s vývojem funkcí je obtížné. Naštěstí existují některé jednoduché techniky pro vytváření produktivních týmů zaměřených na zákazníky.
Vždy být agilní
Být agilní znamená učit se ze zkušeností a neustále se zlepšovat. Agilní vývoj poskytuje více cyklů výuky než tradiční plánování projektů kvůli užším smyčkám procesů. Každý sprint poskytuje týmu něco nového, co se může naučit.
Například:
- Tým doručí zákazníkovi hodnotu, získá zpětnou vazbu a pak upraví backlog na základě této zpětné vazby.
- Zjistí, že jejich automatizovaná sestavení postrádají klíčové testy. Zahrnují práci v dalším sprintu, aby tento problém vyřešili.
- Zjistí, že určité funkce fungují špatně v produkčním prostředí, takže plánují zlepšení výkonu.
- Někdo z týmu slyší o novém postupu. Tým se rozhodne vyzkoušet několik sprintů.
Týmy, které právě začínají agilním vývojem, by měly očekávat více studijních příležitostí. Jsou neocenitelnou součástí procesu, protože vedou k růstu a zlepšení.
Další kroky
Existuje mnoho způsobů, jak se vypořádat s procesem agilního vývoje, který je pro tým správný. Azure DevOps poskytuje různé šablony procesů. Týmy, které hledají různé základní struktury pro plánování, můžou tyto šablony používat jako výchozí body. Informace o výběru šablony procesu, která nejlépe vyhovuje kultuře a cílům týmu, naleznete v Volba toku procesu nebo šablony procesu pro práci v Azure Boards.
S růstem organizací to může být výzva k tomu, abyste zůstali v disciplíně. Přečtěte si další informace o škálování Agile na velké týmy.