Co je agilní vývoj?

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 dokončením práce v krátkých přírůstcích, obvykle označovaných jako 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 pro zvýšení kvality produkce každý sprint vyžaduje, aby vývojový tým agilního vývoje zohlednil akcelerované 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:

  • Upřesnění usilovného backlogu
  • Integrace v rané fázi a často
  • Minimalizace technického dluhu

Upřesnění usilovného backlogu

Agilní vývojový tým pracuje s backlogem požadavků, které se často označují jako uživatelské scénáře. Backlog má prioritu s nejdůležitějšími uživatelskými příběhy v horní části. 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.

Image of a Kanban board that contains several columns. In each column, a few cards are visible.

Jedním z největších přetahování 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 každý sprint měl jasně definované uživatelské scénáře pro práci. Uživatelské scénáře v horní části backlogu by měly být vždy připravené na zahájení 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í je to dobře stojí za investici.

Při upřesňování backlogu si zapamatujte následující klíčové aspekty.

  1. 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í. Usilovní vlastníci produktů upřesní uživatelské scénáře o dvou až třech sprintech předem. Můžou zohledňovat iterace návrhu a kontroly zákazníků. Snaží se zajistit, aby každý uživatelský příběh byl něco, co agilní tým je hrdý na to, aby zákazníka doručil.

  2. Uživatelský scénář není upřesněný, pokud tým nehlásí, že je. Tým musí zkontrolovat uživatelský příběh a odsouhlasit, že je připravený na práci. Pokud tým neuvidí uživatelský příběh až do jednoho dne sprintu, můžou problémy pravděpodobně vést k problémům.

  3. Uživatelské scénáře dále v backlogu můžou zůstat nejednoznačné. Neztrácejte čas zpřesnění položek s nižší prioritou. Zaměřte se na začátek backlogu.

Časná integrace a často

Kontinuální integrace a průběžné doručování (CI/CD) nastavily váš tým pro rychlé tempo agilního vývoje. Co nejdříve automatizujte kanály 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 obtížného nasazení, okamžitě zjistí, jestli sestavení a nasazení selže. CI/CD vynutí tým, aby vyřešil problémy s nasazením, když k nim dojde. Produkt je pak vždy připraven k odeslání.

Abstract bar chart that shows the status of CI builds over time. Most builds succeeded. Only a few failed.

Pro efektivní agilní vývoj jsou důležité některé klíčové aktivity CI/CD.

  1. Testování jednotek Testy jednotek jsou první obranou proti lidské chybě. Zvažte testování částí, které jsou 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í.

  2. Automatizace 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í.

  3. Zásady větvení a sestavování Nakonfigurujte zásady větve a sestavení tak, aby se automaticky sestavily, protože tým kontroluje kód do konkrétní větve.

  4. Nasazení do prostředí Nastavte kanál verze, který automaticky nasadí vytvořené projekty do prostředí, které napodobuje produkční prostředí.

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 pořízeny 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, aby se vymyslel, že 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ů.

Udržování nad technickým dluhem 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. Vlastník inteligentního produktu spolupracuje se svým týmem, aby zajistil, že je čas zaplatit technický dluh každý sprint. 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.

Pří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é buildy chybí 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ší nový postup. 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 jazykové verzi a cílům týmu, najdete v tématu 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í agilního škálování pro velké týmy.