Disciplined Agile Delivery

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

Disciplined Agile Delivery (dosl. ukázněná agilní dodávka, DAD) umožňuje zjednodušit procesní rozhodování při vývoji a správě software a dodávat řešení postupným a přírůstkovým způsobem. DAD staví na mnoha postupech agilního softwarového vývoje, jako je agilní metodika Scrum, agilní modelování, Lean Software Development a další.

Biblí DAD je kniha Disciplined Agile Delivery[1], kterou napsal Scott Ambler a Mark Lines.

DAD se využívá zejména jako způsob jak rozvíjet metodu Scrum[2]. Podle staršího konzultanta fy Cutter, Bhuvana Unhelkara, "Nástroje DAD poskytují pečlivě navržený mechanismus, který urychluje práci v IT a hlavně umožňují škálování"[3].

Historie[editovat | editovat zdroj]

DAD má životní cyklus založený na porovnání rizik a přínosů. Je řízený cílli, je škálovatelný a zohledňuje podnik.[4]

Scott Ambler vyvinul Disciplined Agile Delivery v době kdy působil jako hlavní metodik pro IT ve společnosti IBM Rational (léto 2006 až léto 2012). DAD mělo vyplnit procesní mezery (záměrně) ignorované metodou Scrum, a doplnit nástroje pro vývoj na úrovni podniku. Podle Amblera existuje pro řešení projektu od jeho zahájení k dodání "mnoho agilních metodik - včetně Scrum, XP, AM, Agile data, Kanban aj." Dokud nebyla DAD, museli jste si pro svou práci vždy slepit vlastní agilní metodiku."[5]

Framework DAD byl navržen podle případů, ve kterých byly agilní metody v daném měřítku úspěšné. Odráží zkušenosti zaměstnanců IBM s různými zákazníky, použití agilních metod na interních projektech a spolupráci s obchodními partnery.[6]"DAD proces uznává nejen význam sítí mezi různými týmy, ale výslovně nabízí podporu pro škálování klíčových postupů v rámci komplexních pracovních prostředí pomocí technik, které propojují jednotlivé vývojové techniky do robustní dodávky software".[7]

Dílčí cíle Disciplined Agile Delivery[editovat | editovat zdroj]

Fáze zahájení Fáze výstavby Přechodová fáze
  • Zformovat tým
  • Vytvořit společnou vizi projektu
  • Přizpůsobit firemním potřebám
  • Prozkoumat počáteční rozsah
  • Stanovit počáteční strategii
  • Určit první Release Plan
  • Vytvořit si pracovní prostředí
  • Zabezpečit financování
  • Identifikovat rizika
  • Vytvářet přijatelná/použitelná řešení
  • Plnit měnící se potřeby zainteresovaných stran
  • Přibližovat se k použitelné provozní verzi
  • Zlepšovat jakost
  • Včas stabilizovat architekturu
  • Zajistit že řešení je použitelné
  • Nasadit hotové řešení
Průběžné cíle
  • Splnit misi projektu
  • Profesní růst členů týmu
  • Pojmenování rizik
  • Zlepšování týmových procesů a prostředí
  • Vylepšování stávající infrastruktury

[8]

Podstatné znaky[editovat | editovat zdroj]

Lidé na prvním místě[editovat | editovat zdroj]

Disciplined Agile Delivery říká, že faktorem, který nejvíce ovlivňuje úspěch při dodání projektu jsou lidé a způsob jak spolu komunikují.

Zaměřený na učení[editovat | editovat zdroj]

DAD podporuje myšlenku, že členové týmu by měli úzce spolupracovat a učit se od sebe navzájem. Tým by se měl snažit učit se z vlastních zkušeností a vylepšovat svůj přístup, a jednotlivci by měli dělat totéž.

Smíšený přístup[editovat | editovat zdroj]

DAD přejímá a přizpůsobuje si z existujících metod osvědčené strategie jako například Scrum, extrémní programování (XP), agilní modelování, Unified Process (UP), Kanban, vývoj software metodou outside-in a jiné. DAD již má vyřešeno, které části těchto technik jsou vzájemně relevantní, takže údajně není nutno ztrácet čas přizpůsobováním jednotlivých metod.

Životní cyklus úplné dodávky[editovat | editovat zdroj]

Na rozdíl od první generace agilních metod, které se obvykle zaměřují na budování systému, životní cyklus DAD řeší celý projekt od bodu zahájení kontinuálně do produkce a také poprodukční činnosti.

Řízený procesními cíli[editovat | editovat zdroj]

Přístup DAD je spíše řízený cílem, než normativní. Na rozdíl od Scrum, který práci řídí pomocí fronty nevyřízených položek produktu (backlog), DAD navrhuje stanovení pracovních priorit založených na nejdůležitějších faktorech pro stakeholdery, ať už je to cokoliv.

Těmito faktory mohou být obchodní přínos, riziko, datum dokončení, závislosti na okolí nebo jakákoli jejich kombinace. DAD popisuje kompromisy spojené s každou strategií a popisuje životaschopnost každé z nich.

Poznámka: Speciálním případem je FDD, vývoj řízený užitnými vlastnostmi daného software.

Zaměřený na řešení[editovat | editovat zdroj]

Disciplined Agile Development údajně posouvá pozornost od prosté produkce software k poskytování použitelných řešení, která poskytují skutečnou obchodní hodnotu pro zúčastněné strany. Přestože software je jednoznačně důležitou součástí předmětu dodávky, zaměřenost na řešení znamená holistický pohled na celkový problém. To může vést k návrhu změn v oblasti hardware, obchodních / organizačních procesů a celkové organizační struktury.

Stálé porovnávání rizik a přínosů[editovat | editovat zdroj]

Životní cyklus DAD je řízený riziky a přidanou hodnotou. Rozšiřuje hodnotově řízený cyklus metody Scrum, která po každém cyklu/iteraci vytváří potenciálně dodatelný (shippable) software tak, že výslovně zahrnuje

  • odlehčené milníky, pro zajištění konsensu zúčastněných stran v rané fázi životního cyklu,
  • stabilizaci architektury strukturou vývojového kódu už na začátku životního cyklu,
  • zajištění dostatečné funkcionality ještě před přechodem na další verzi a
  • zajištění připravenosti do produkce ještě před uvolněním releasu.

Úroveň organizace[editovat | editovat zdroj]

Podpora úrovně Enterprise je klíčovou vlastností DAD. DAD týmy pracují v rámci organizace stejně jako jakýkoli jiný tým. V ideálním případě DAD tým bude využívat stávajících zdrojů s cílem snížit celkový čas na dokončení a náklady a může pracovat souběžně s ostatními týmy v organizaci. Důležitým aspektem přizpůsobení firmě je, že DAD má explicitní DevOps postupy[9] a strategie zabudované přímo do frameworku.

Role[editovat | editovat zdroj]

Hlavní role[editovat | editovat zdroj]

V rámci DAD je bez ohledu na velikost typicky pět základních rolí[10].

  • Stakeholder / Zúčastněná strana. Ten, na koho bude mít výsledek řešení podstatný dopad. Spíše než koncový uživatel je to někdo potenciálně ovlivněný vývojem a nasazením softwarového projektu.
  • Vlastník produktu. Osoba v týmu, která mluví jako "jediný hlas zákazníka", zastupuje potřeby komunity zúčastněných stran směrem k agilnímu dodavatelskému týmu.
  • Člen řešitelského týmu. Úkolem členů týmu je vytvořit řešení pro stakeholdery, včetně (ale nejen): testování, analýzy, architektury, designu, programování, plánování a
  • Vedoucí týmu Tzv. týmový vedoucí je agilní kouč, který je zodpovědný za usnadňování komunikace, optimalizace procesů a zajištění, že tým má potřebné zdroje a pracuje bez překážek.
  • Vlastník architektury Dělá pro tým architektonická rozhodnutí a usnadňuje tvorbu a vývoj celkového designu.

Vedlejší role[editovat | editovat zdroj]

Pro větší dodávky (problém škálování) jsou zavedeny tyto vedlejší role - někdy i na přechodnou dobu

  • Specialista. Ačkoli většina členů agilního týmu jsou obecně vzato specialisté, jsou v závislosti na potřebách projektu zapotřebí i další odborníci.
  • Doménový expert. Zatímco majitel produktu zastupuje širokou škálu stakeholderů, expert na věcnou problematiku / doménu je někdy zapotřebí v oblastech, které jsou složité na pochopení a mají mnoho zvláštností a nuancí.
  • Technický Expert. Pokud se narazí na zvláště obtížný problém, může být podle potřeby osloven technický odborník. To může být správce buildu, správce agilní databáze, návrhář prostředí (UX designer) nebo bezpečnostní odborník.
  • Nezávislý tester. I když většinu testování provádí členové DAD týmu, ve složitých oborech nebo technologiích může být paralelně k ověření práce přizván nezávislý testovací tým.
  • Integrátor. U složitých technických řešení může pomoci k vytvoření celého systému z jeho různých subsystémů integrátor (nebo více integrátorů).

Literatura[editovat | editovat zdroj]

  1. AMBLER, Scott; LINES, Mark. Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise. [s.l.]: [s.n.], 2012. Dostupné online. ISBN 978-0132810135. (anglicky) 
  2. AMBLER, Scott. Going Beyond Scrum: Disciplined Agile Delivery [online]. 2013. Dostupné online. (anglicky) 
  3. Disciplined Agile Delivery in the Enterprise (Cutter IT Journal, Special Issue, June 2013)
  4. Disciplined Agile Delivery: the foundation for scaling agile (Crosstalk journal, November / December 2013)
  5. Disciplined Agile Delivery Meets CMMI (Cutter IT Journal, November 2013)
  6. Disciplined Agile Delivery [online]. Crosstalk [cit. 2014-07-01]. Dostupné v archivu pořízeném z originálu dne 2014-02-22. (anglicky) 
  7. BROWN, Alan W. Toward the Agile Organization: Accelerating Innovation in Software Delivery. Cutter IT Journal, November 2013. 2013. (anglicky) 
  8. Disciplined Agile Delivery: An introduction (white paper), pg 11 [online]. IBM Software [cit. 2014-07-01]. Dostupné v archivu pořízeném z originálu dne 2013-05-29. (anglicky) 
  9. MANSOURA, Cherifa. Adapting agile requirements practices to ongoing enterprise improvement efforts: DevOps to the rescue [online]. 2012. Dostupné online. (anglicky) 
  10. AMBLER, Scott. Roles in Disciplines Agile Delivery [online]. [cit. 2014-07-01]. Dostupné v archivu pořízeném z originálu dne 2014-07-16. (anglicky)