Jakými způsoby se v dnešní době dají řídit technologické projekty? Jak se od sebe jednotlivé přístupy liší? V čem spočívá agilní vývoj a jaké má výhody? Pojďme se na tyto otázky podívat zblízka.

2 nejčastější typy řízení projektů

Technologické projekty lze řídit především dvěma způsoby: waterfall (= kaskádovitým) a agilním přístupem. Waterfall přístup je založen na lineárním řízení, což znamená, že každá fáze projektu musí být kompletně ukončena, než lze pokračovat k fázi následující. Tento přístup rovněž nezahrnuje zpětnou vazbu od klienta natož od koncového uživatele. Samotné testování aplikace pak probíhá až na samotném konci projektu.

Naopak agilní přístup projektového řízení lze obecně definovat jako přístup připouštějící skutečnost, že ne vždy jde vše podle plánu. Projekty z tohoto důvodu dělí do několika menších dynamických fází resp. cyklů, které jsou často označovány jako tzv. sprinty. V rámci těchto sprintů dochází k pravidelné komunikaci mezi všemi stakeholdery (tj. zainteresovanými stranami), především mezi vývojovým týmem a zákazníkem. Namísto vývoje podle předem daných specifikací a s minimální komunikací a přísnou kontrolou, je agilní vývoj založen na postupném definování parametrů, spolupráci, kreativitě a učení se.

Příčiny vzniku agilního řízení

Na základě nevýhod waterfall přístupu vzniklo v roce 2001 tzv. Agile Manifesto, tedy manifest, který se zaměřoval na zjednodušení přístupu waterfall v IT projektech. Manifest je založen na 12 principech agilního řízení, z nichž nejdůležitější princip spočívá ve změnách projektu. Ty jsou zde na rozdíl od waterfall přístupu jednak přijímány, jednak očekávány a to v průběhu celého životního cyklu projektu.

Lze tedy tvrdit, že agilní přístup je zaměřen na potřeby zákazníka a umožňuje měnit podobu projektu dle měnících se požadavků svého zadavatele. Jednoduše řečeno: agilní přístup se vyznačuje značnou flexibilitoupružností.

Objevujeme lepší způsoby vývoje software tím, že jej tvoříme a pomáháme při jeho tvorbě ostatním. Při této práci jsme dospěli k těmto hodnotám:
Jednotlivci a interakce před procesy a nástroji
Fungující software
před vyčerpávající dokumentací
Spolupráce se zákazníkem
před vyjednáváním o smlouvě
Reagování na změny
před dodržováním plánu
Jakkoliv jsou body napravo hodnotné, bodů nalevo si ceníme více.

Agile Manifesto (2001)

Výhody agilního přístupu

Nezáleží na tom, jak prozíraví jsme, budoucnost nás vždy překvapí. To platí dvojnásob v oblasti technologií, kde se trendy mění téměř neustále. Jediným způsobem, jak se těmto změnám přizpůsobit, je zvyšování produktové adaptability, což umožňuje právě agilní způsob řízení, jehož výhody tkví především v následujících bodech:

  1. Konzistentní a opakované zapojení všech zainteresovaných stakeholderů do projektu: Agilní přístup nejen podporuje, ba dokonce přímo vybízí k pravidelné interakci mezi všemi stakeholdery, což zajišťuje, že se cíle projektu nevzdálí od potřeb a očekávání klientů.
  2. Neustálé zlepšování produktu: Díky stálé komunikaci a zpětné vazbě může vývojový tým průběžně vylepšovat produkt a zvyšovat tak jeho kvalitu a relevanci na trhu.
  3. Transparentnost zpracovaných úkolů: Všechny úkoly jsou pečlivě dokumentovány a pravidelně aktualizovány, aby měl každý stakeholder jasný přehled o pokroku projektu.
  4. Vyšší spokojenost s výsledkem projektu: Výsledný produkt lépe odpovídá požadavkům a představám zadavatele a to zejména díky flexibilitě v řešení změn a včasné komunikaci.
  5. Rychlá adaptabilita na změny: Jak již bylo řečeno, díky průběžné komunikaci agilní týmy rychle reagují na změny a nové požadavky, čímž zvyšují pravděpodobnost úspěšného dokončení projektu.
  6. Snížení rizik: Vyhodnocování rizik probíhá stejně jako mnoho jiných činností v agilním řízení průběžně. To zajišťuje minimalizaci potenciálních problémů, které by mohly projekt prodražit, prodloužit či dokonce znemožnit jeho kompletaci.

Výhody agilního řízení ve vývoji softwaru

Mimo výše zmíněné výhody, které se týkají agilního přístupu obecně, existují také specifické výhody aplikovatelné výhradně na vývoj softwaru. Ačkoliv zadavatel softwarového řešení zpravidla tuší, jaké funkční prvky by měl software obsahovat, s jeho výslednou podobou si téměř nikdy není jistý. Díky neustálé komunikaci v rámci agilního řízení dokáže zhotovitel lépe pochopit, co zákazník očekává, v důsledku čehož je následně schopný zaměřit se na oblasti, jež si zadavatel předem neurčil či o nich neměl tušení. Konečný výsledek pak po mnoha společných mítincích a diskusích vede k vyšší spokojenosti klienta.

Jak vypadá agilní vývoj softwarového řešení?

Již víme, jaké má agilní vývoj softwaru výhody, nyní se zaměříme na 4 konkrétní činnosti respektive fáze, které tento vývoj provází a které se opakují v cyklech:

  1. prvotní analýza, která je založená na předložených požadavcích, a naprogramování základní kostry;
  2. stanovení plánu pro daný cyklus a určení úkolů jednotlivým členům týmu;
  3. samotná implementace požadované změny či přání;
  4. představení průběžného výsledku klientovi, který má v této fázi prostor pro připomínkování.

Obsahem samotné schůzky, na které je zákazníkovi představen průběžný výsledek, probíhá:

  • neustálá komunikacediskuse;
  • plánování dalších kroků ve vývoji včetně předem nedefinovaných funkcionalit;
  • hledání řešení vzniklých problémů;
  • kontrola průběhu projektu.

Jakmile se klient vyjádří a dohodne s vývojovým týmem na dalších krocích projektu, pak může začít další cyklus obsahující výše zmiňované fáze. Tento proces se opakuje až do té doby, kdy je klient s výslednou aplikací spokojen. Mimo předání finálního projektu může být předmětem smlouvy také následná správaúdržba.

Metody agilního řízení

V případě agilního řízení lze tvrdit, že se jedná o jakýsi styl myšlení, který je založen na 4 hodnotách, 12 principech a mnoha metodách. Záleží pak na každém projektovém manažerovi, jakou metodu či jakou jejich kombinaci si pro svůj projekt zvolí. Na výběr se nabízí například: Kanban, Scrum, Crystal, XP, FDD, DSDM, ASD, XPM či APF. Některé z těchto metod si nyní blíže představíme.

Kanban

Kanban je jednou z vizuálních metod agilního přístupu spočívající v prezentaci toho, v jaké fázi se definované úkoly nachází. Obecně se rozlišují 4 fázeco udělat“, „na čem momentálně pracujeme“, „testování“ a „hotovo“, které jsou zobrazeny v uvedeném pořadí v jednotlivých sloupcích. Naopak jednotlivé činnosti mají podobu kartiček a v průběhu práce se posouvají v řádku do příslušných sloupců zleva doprava. Tato metoda je tak ideální pro vizualizaci množství práce, která je již hotová a naopak kterou je ještě potřeba udělat.

Pro realizaci této metody však není potřeba vlastnit hmotnou tabuli a jednotlivé úkoly ručně přesouvat. V dnešní době pro tyto účely existuje již několik povedených aplikací jako je kupříkladu Trello či Issue boards.

Scrum

Další metodou, která je typická pro malé týmy, je Scrum. Tým vede a má na starost tzv. Scrum master, jenž je zodpovědný za odstraňování překážek vyskytujících se v každodenní práci. I proto jsou zde důležité denní schůzky, na kterých tým jednak plánuje jednotlivé sprinty včetně jejich věcné náplně a způsobu provedení, jednak hodnotí již proběhlé sprinty s účelem zlepšení a zefektivnění další týmové činnosti. V softwarových projektech pak Scrum definuje 3 role: členy vývojového týmu, prostředníka a vlastníka produktu.

Extreme programming (XP)

Extreme programming je metoda běžně užívaná ve vývoji softwarového řešení, přičemž je založena na 5 hodnotách: komunikace, jednoduchost, zpětná vazba, odvaha a respekt. I v této metodě jsou aplikovány pravidelné schůzky, které se ovšem zaměřují především na technickou stránku problému. Diskuse nad požadavky zákazníků se tak zaměřuje na otázku „jak“, tedy jak tým problém vyřeší.

Adaptive Software Development (ASD)

Adaptive Software Development (ASD) je metodou umožňující rychlou reakci na měnící se požadavky zákazníků. Hlavním cílem ASD je neustálá adaptaceučení se v průběhu projektu, což umožňují 3 fáze této metody: spekulace, spolupráce a učení se. Není výjimkou, že se tyto fáze překrývají či se dokonce projekt nachází ve všech 3 v jeden moment. To týmu umožňuje rychlejší identifikaci a řešení problémů.

Adaptive Project Framework (APF)

Poslední metodou, kterou si zde zmíníme, je Adaptive Project Framework, jež je opět užívána zejména v IT projektech. Tato metoda je založena na předpokladu, že se během života projektu mohou objevit nečekané změny například v podobě snížení rozpočtu nebo posunutím časového plánu.

Shrnutí

Agilní přístup projektového managementu rozděluje projekty do dynamických fází nazývaných sprinty, které zahrnují pravidelnou komunikaci mezi vývojovým týmem a zákazníkem. Tento přístup klade důraz na postupné definování parametrů, spolupráci a učení se, což umožňuje flexibilně reagovat na změny a přizpůsobovat se potřebám zákazníka. Vývoj softwaru probíhá v cyklech, které zahrnují čtyři fáze: analýzu, plánování, implementaci a prezentaci výsledků. Mezi hlavní metody patří Scrum, Kanban, Extreme Programming a Adaptive Software Development, které podporují transparentnost a adaptabilitu v průběhu vývoje softwaru.

Seznam zdrojů:

CUNNINGHAM, Ward, 2001. Manifesto for Agile Software Development. agilemanifesto.org [online] [vid. 9. červen 2024]. Získáno z: https://agilemanifesto.org/

DYBÅ, Tore, Torgeir DINGSØYR a Nils Brede MOE, 2014. Agile Project Management. In: Günther RUHE a Claes WOHLIN, ed. Software Project Management in a Changing World [online]. Berlin, Heidelberg: Springer Berlin Heidelberg, s. 277 – 300. ISBN 978-3-642-55035-5. Získáno z: doi:10.1007/978-3-642-55035-5_11

HIGHSMITH, Jim, 2010. Agile Project Management: Creating Innovative Products. 2. vyd. USA: Pearson education. ISBN 0-321-65839-6.

KOĎOUSKOVÁ, Barbora, 2024. Co je agilní vývoj aplikací a kdy ho využívat. Rascasone [online] [vid. 11. červen 2024]. Získáno z: https://www.rascasone.com/cs/blog/co-je-agilni-vyvoj

LAOYAN, Sarah, 2024. What is Agile methodology? (A beginner’s guide). Asana [online] [vid. 11. červen 2024]. Získáno z: https://asana.com/resources/agile-methodology

PROJECT MANAGEMENT INSTITUTE, INC., 2017. AGILE PRACTISE GUIDE. 1. vyd. USA: Project Management Institute, Inc. ISBN 978-1-62825-199-9.

ŠMARDA, Ladislav, 2023. Co je agilní vývoj software? LŠ Advokátní kancelář [online] [vid. 11. červen 2024]. Získáno z: https://www.aksmarda.cz/rady-a-tipy/co-je-agilni-vyvoj-software/