Termín “agilný” čiže AGILE je chápaný mnohými odlišnými spôsobmi. Môžeme sa na neho pozerať ako na súbor správaní, konceptov a techník, ktoré sú charakteristické ako agilné spôsoby práce.
Globalizácia a rýchlosť inovácií v informačnom priemysle prudko zvýšila v poslednom desaťročí tlak na schopnosť reakcie na zmeny. Konkurencieschopnosť je dnes v online svete kľúčovou. Noví konkurenti sa objavujú veľmi rýchlo s často lepšie zacielenými produktmi, ktoré rýchlo oslovia trh. Schopnosť týchto nových firiem reagovať na požiadavky je ich obrovskou výhodou, ktorá umožnila takýmto start-upom zápasiť aj s veľkými korporáciami s množstvom prostriedkov. Po niekoľkých rokov aj korporácie pochopili, že musia zmeniť spôsob fungovania, že sila už v dnešnej ére nestačí. Firmy prešli zmenou formy internej organizácie od komplikovaných hierarchií k plochým štruktúram.
V 21. storočí firmy prechádzajú dokonca smerom k prepojeným sietam tímov, k pavučine spolupráce.
Takáto organizácia umožňuje dosiahnuť rýchlosť vďaka samoriadeniu tímov bez obmedzenia centrálnymi prvkami. Zároveň vyžaduje jednoznačne daný cieľ, ktorým sa skupiny majú hýbať. Zmenil sa aj pohľad na zamestnancov z ľudí typu X na typ Y a Z. Zmenil sa pohľad na rolu manažmentu z kontroly na líderstvo, víziu a stratégiu. Zmenili sa aj procesy samotné. Celé toto zjednodušovanie prináša práve efekt rýchlosti a zblíženia sa jednak vnútro firemných skupín aj priblíženie klienta k dodávateľovi a naopak.
Zavádzanie agilných praktík prináša komplexnú zmenu firmy v rôznych aspektoch. Bude to zmena ľudí, procesov, nástrojov, artefaktov. Od biznisových procesov, cez vývojové a prevádzkové až po organizačné zmeny vo firme kvôli novým rolám a kvôli obmedzeniam a benefitom, ktoré agile so sebou prinesie. Aj preto je potrebné považovať zavedenie Agile za transformáciu spoločnosti a je potrebné byť na to pripravený. Firmy, ktoré v tom zlyhali, predpokladali, že sa „iba“ zavedú nové procesy a firma je v priebehu troch mesiacov agilná.
Agile je predovšetkým o zmene myslenia a filozofie, na ktorej je agilná firma postavená. Toto vyvolá pnutie, na ktoré je nutné spoločnosť pripraviť. A ako sa vraví „každá zmena prináša zhoršenie“. Očakávajte ho, pretože nastane bez pohľadu na to, čo urobíte. Rozdiel je v hĺbke a šírke priekopy, ktorá sa pritom otvorí. Aby táto priekopa bola čo najplytšia a najužšia, firma by mala pripraviť víziu a ciele transformácie, transformačné tímy, zoznam aktivít, vytvoriť interné záujmové komunity, ktoré pomôžu dosiahnuť cieľ a poznať spôsob ako robiť experimenty a ako merať ich výsledok. Zavádzanie agile je tak projektom samotným s množstvom dotknutých stakeholderov. Ide o manažment zmeny, pre ktorý existuje viacero aplikovateľných modelov.
Agile bolo dlho označované za moderný spôsob tvorby produktov. Po desiatich rokoch sa Agile stalo de facto štandardom, ktorý sa používa predovšetkým keď:
– je potrebné rýchlo, priebežne a pravidelne dodávať produkt,
– je potrebné angažovať do vývoja klienta tak, aby bolo možné reagovať na časté zmeny dané realitou klienta,
– je potrebná vysoká úroveň transparentnosti stavu projektu,
– je žiadúce zvýšiť angažovanosť vývojových tímov so zameraním na kvalitu a funkčnosť dodávaného výsledku.
Pojem “AGILE” použila v roku 2001 skupina nezávislých vývojárov, ktorí sa spojili, aby vytvorili alternatívny spôsob vývoja software k vtedy dominantnému, málo flexibilnému “vodopádovému modelu”. Skupina vytvorila dokument s názvom “Agilný manifest” obsahujúci 12 princípov, na ktorých je agilný prístup založený.
Ľudia a komunikácia sú viac než procesy a nástroje
Funkčný softvér je viac než vyčerpávajúca dokumentácia
Spolupráca so zákazníkom je viac než dojednávanie zmluvy
Radšej reagovať na zmenu než sa držať plánu
Aj keď časť napravo je dôležitá, viac si ceníme ľavú časť
1. Našou najvyššou prioritou je uspokojiť zákazníka skorým a sústavným dodávaním hodnotného softvéru.
2. Zmeny požiadaviek sú vítané dokonca aj v neskorých fázach vývoja. Agilné procesy dokážu pretaviť zmenu na konkurenčnú výhodu zákazníka.
3. Dodávame funkčný softvér často, od niekoľkých týždňov po niekoľko mesiacov, s uprednostnením čo najkratších intervalov.
4. Ľudia z biznisu a vývojári musia denne spolupracovať počas celého projektu.
5. Postavte projekty na motivovaných ľuďoch. Poskytnite im prostredie, podporu a dôverujte im, že svoju úlohu splnia.
6. Najlepším spôsobom odovzdávania informácií vývojovému tímu a v tíme je osobný rozhovor.
7. Základným ukazovateľom napredovania je funkčný softvér.
8. Agilné procesy podporujú trvalo udržateľný rozvoj. Sponzori, vývojári a užívatelia by mali byť schopní trvalo udržať konštantné tempo.
9. Sústavný dôraz na technickú vyspelosť a kvalitný návrh podnecujú agilitu.
10. Jednoduchosť – umenie vykonať naozaj len to potrebné, je nevyhnutnosť.
11. Samoorganizované tímy vytvárajú najlepšie koncepty, požiadavky a návrhy riešení.
12. Tím v pravidelných intervaloch vyhodnocuje sám seba s cieľom byť efektívnejší a prispôsobuje tomu svoje správanie.
AGILE – súbor hodnôt a princípov
Metodika (metodológia) je súbor metód, postupov a pravidiel pričom agilné hodnoty a princípy sa výslovne vyhýbajú predpisovaniu akýchkoľvek konkrétnych metód alebo postupov
AGILE nešpecifikuje metódy, nie je metodológia, skôr návod, ako vybrať z metód a postupov najvhodnejších pre prácu tímu.
Agilné hodnoty a prístupy sa nesnažia predpisovať spôsob práce pre ľudí, ale pomáhajú v myslení a interakcii, ktoré dosiahne agilitu. Agilita je schopnosť neustále prispôsobovať schopnosť zlepšovať spôsob, akým pracujeme. AGILE sa vyslovene vyhýba stať sa metodikou, pretože by sa stal jednoducho menej agilný. Existuje ale množstvo metodík, ktoré môžu tímy použiť pre využitie agilných zásad a hodnôt.
Medzi najpoužívanejšie a najznámejšie metodiky (rámce) považované za agilné patria:
Scrum
Kanban
Lean
LeanStartup
XP (eXtreme Programming)
SAFe® (Scaled Agile Framework)
DSDM (Dynamic Systems Development Method)
1. Aplikuj ekonomický pohľad
2. Aplikuj systémové myslenie
3. Predpokladaj variabilitu a zachovaj možnosti
4. Buduj inkrementálne s rýchlymi integračnými cyklami
5. Objektívne zhodnoť po míľniku stav systému
6. Vizualizuj a limituj množstvo rozpracovaných úloh, ich veľkosť a prestoje v procese
7. Aplikuj pravidelnosť a synchronizuj medzitímové plánovanie
8. Identifikuj a podpor vnútornú motiváciu
9. Decentralizuj rozhodovanie
Komplexné agilné prístupy ako SAFe® nenútia organizáciu aby implementovala všetky súčasti metodiky. SAFe je koncipované modulárne a jednotlivé súčasti môže a nemusí spoločnosť podľa svojej potreby implementovať. V súčasnej dobe využíva agilné prístupy čím ďalej tým viac organizácií aj mimo oblasti IT. Implementácia rôznorodého agilného prístupu môže viesť až k vytvoreniu v podstate vlastnej firemnej metodiky.
Agilný prístup k riadeniu projektov má blízko k LEAN technikám a prístupom ako je Kaizen alebo Six Sigma, pretože má silne prozákaznícky charakter, všetky aktivity v priebehu vývoja sú zamerané účelovo na dosiahnutie požadovaného výsledku a tým je minimalizované plytvanie výraznejšie než u tradičných postupov.
Eliminuj zbytočnosti
Posilňuj vzdelávanie
Rozhoduj tak neskoro ako sa dá
Dodávaj tak skoro ako sa dá
Splnomocni tím
Zabuduj integritu
Vidieť celok
Identifikácia zbytočností
Mapovanie toku hodnoty
Teória obmedzení
Systém ťahania
Motivácia
Meranie
– metóda postupného zlepšovania založená na kultúrnych tradíciách. Zlepšovanie sa zameriava na postupné optimalizovanie procesov a pracovných postupov, zvyšovanie kvality a znižovanie nepodarkov, úspory materiálu a času vedúce k znižovaniu nákladov alebo na bezpečnosť práce a znižovanie počtu nehôd na pracovisku. Podstatou metódy je zapojenie mnohých pracovníkov z daného organizačného útvaru, od radových po manažérov. Zúčastniť sa môže ktokoľvek, všetci môžu prichádzať s nápadmi na zlepšenie, ktoré sú kolektívne diskutované.
Základom agilného riadenia sú spoločné hodnoty a spôsoby správania ako spolupráca a samoorganizácia. Agilný tímy sú zmiešané – skladajú sa z vývojárov, analytikov, testerov a zástupcov zákazníka. Členovia tímu majú rôznorodé zručnosti a skúsenosti a sú motivovaní k spoločnému postupu. Miesto riadenia zhora sa tím sám rozhodne, čo, ako a kedy bude v rámci jednotlivých balíkov / “timeboxov” / “šprintov” robiť. Dôležitá je pritom vzájomná dôvera a neobviňovanie sa. Pretože sa požiadavky vyvíjajú, hrá významnú úlohu zástupca zákazníka v tíme a prioritizácia jednotlivých požiadaviek.
Dôležitým princípom je “timeboxing”, plánovanie práce v krátkych časových intervaloch. Nemenej dôležitým princípom je limitovanie rozpracovanosti. Tu sa často využíva vizualizácia postupu práce na tzv. Kanban Board alebo Scrum Board (nástenke). Tímy sa samé rozhodujú, na koľkých úlohách sa bude pracovať súčasne, čo umožňuje mať pod kontrolou komplexitu.
– Zamerať sa na výsledok dodávaný priebežne, pričom každá časť výsledku musí byť hodnotná, funkčná a mať zmysel pre klienta
– Poznať dobre klienta a používateľov daného produktu. Poznať ich prácu, denné aktivity, problémy a výhody, ktoré im produkt má pomôcť vyriešiť, alebo poskytnúť
– Poznať víziu a ciele produktu
– Aktívne zapojiť klienta do spolupráce s tímom, pretože chcem funkčný produkt podľa mojich predstáv. Tie nestačí iba zapísať do dokumentu. Tím potrebuje dennú kooperáciu s dôrazom na detaily
– Pracovať a myslieť tímovo, pretože iba dobrý a skutočný tím je schopný rýchlo zareagovať
– Akceptovať, že zmeny zadania tu sú a vždy budú, pretože zadanie sa mení kvôli potrebám klientov našich klientov. Neznamená to však, že zmeny sú neriadené. Zmeny sú plánované do jednotlivých iterácií podľa dôležitosti, nie urgentnosti
– Uprednostňovať osobnú komunikáciu pred nástrojmi
– Pravidelne koordinovať vzájomnú spoluprácu v tíme.
Agilný prístup k riadeniu projektov sa uplatňuje v projektoch, u ktorých je jasný rámcový cieľ, ale z najrôznejších dôvodov je nemožné presne definovať všetky dlhodobé požiadavky bez priebežných prototypov. Používa sa teda, keď sa nedá určiť detailný plán projektu vrátane detailných požiadaviek (čo je postup typický pre tradičný, vodopádový prístup). Agilný prístup k riadeniu projektov je interaktívny, pružný a prírastkový. V praxi to znamená tesnú a neustálu (inkrementálnu) spoluprácu medzi projektovým tímom, ktorý vytvára priebežné prototypy a medzi zákazníkom, ktorý dáva spätnú väzbu na základe ktorej sa upresňuje zadanie. Agilné riadenie projektov sa preto uplatňuje u veľmi komplexných systémov u ktorých sa detailné požiadavky tvoria alebo upresňujú priebežne na základe skúseností s prototypmi z jednotlivých iterácií. Pri agilných metódach práce sa realizujú malé porcie výsledkov (prototypy) v každom vývojovom cykle v tesnej spolupráci so zákazníkom.
Agilný prístup k riadeniu projektov vyžaduje schopných jednotlivcov, ktorí sú schopní tento spôsob riadenia zvládnuť. Nie je možné ho univerzálne uplatniť vždy, vo všetkých typoch projektov a vo všetkých tímoch. Uplatňuje sa vo vývoji softvéru, ale rovnako tak dobre v ostatných oblastiach, kde je projekt silne inovačný, vyžaduje priebežné korekcie a nápady a je možné všetko priebežne komunikovať so zákazníkom. Najväčšou výzvou pre úspešné využitie agilných prístupov je nutnosť prispôsobiť pôvodné “neagilné” spôsoby fungovania. Napr. pri práci agilného tímu nie je možné použiť “klasické” riadiace mechanizmy v štýle “velenia a kontroly”. Ďalej je dôležité vedieť, že agilné prístupy sú určené pre vývoj produktov, resp. pre jeho riadenie. Nie sú určené na komplexné riadenie projektov. Nemožno nimi teda nahradiť “tradičné” projektové riadenie. Otázkou teda nie je, či riadiť agilne alebo projektovo, ale ako oba tieto prístupy kombinovať a integrovať.