Jednou z najväčších výziev, ktorým musí spoločnosť meniaca sa z malej na strednú, prípadne na veľkú čeliť, je projektový manažment a jeho zmeny. S touto výzvou sa momentálne stretávame aj v SCR. Časy spontánneho riadenia a fungovania firmy sú preč. Spolu s počtom zamestnancov a objemom prác rastie aj potreba, či dokonca nutnosť efektívnejšieho riadenia spoločnosti a lepšej koordinácie jednotlivých funkčných celkov (tímov).
Jedným z populárnych, efektívnych a silných nástrojov na podporu manažmentu sú tzv. agilné metódy, z ktorých si predstavíme metódu SCRUM.
Agile a SCRUM
Agile a SCRUM predstavujú alternatívu voči klasickému (vodopádovému) prístupu vývoja, ktorý je založený na realizácii vopred stanového plánu a postupov vedúcich až k odovzdaniu diela (analýza požiadaviek, dizajn, implementácia, verifikácia, údržba). Jedným z dôvodov jeho vzniku bol aj fakt, že zákazník často v úvodných fázach projektu nemá konkrétnu predstavu o jeho podobe a funkcionalite.
Podpora motivácie a soft skills
Pri dlhodobejších a zložitejších projektoch sa významným faktorom ukazuje najmä podpora motivácie a nezávislosti tímu.
Želaný efekt dosiahneme napríklad prostredníctvom tvorby kompletných funkčných celkov, čo je jeden z princípov metódy SCRUM. Cieľ práce je tak menej vzdialený ako pri tradičných lineárnych metódach.
Ďalším pozitívnym motivačným faktorom je vysoká autonómia tímu a zameranie sa na človeka. Tím a jeho členovia sa dostávajú do popredia pred zložitými procesmi a obsiahlou dokumentáciou a stávajú sa najdôležitejším zdrojom spoločnosti. Takýto prístup vyžaduje komunikatívnosť, kreativitu a adaptabilitu. Soft skills tak naberajú na váhe oproti čisto odborným znalostiam.
Dôležitá práca so zákazníkom
Prístup zameraný na človeka je aplikovaný aj na prácu so zákazníkom, s ktorým sa udržuje pravidelný kontakt a ktorý sa aktívne podieľa na procese vývoja. Pravidlo, že zákazník je vlastne člen projektového tímu je tiež jedným zo základných kameňov metódy SCRUM. Umožňuje pružne reagovať na jeho očakávania týkajúce sa čiastkových aj celkových výsledkov, ale zároveň ich aj počas vývoja korigovať a aktívne pretvárať. Výsledkom by tak mala byť čo najväčšia hodnota pre zákazníka.
Svižný a živý projekt
Celý projekt sa rozdeľuje do viacerých iterácií (samostatných funkčných celkov), ktoré je možné otestovať a prezentovať klientovi. Ten môže následne pripomienkovať čiastkové výsledky, ale zároveň aj upraviť svoje požiadavky a celé zadanie projektu. Projekt sa tak stáva agilným (z anglického agile – čulý, živý svižný) – je možné ho „ohýbať“ počas samotného vývoja. Žiadne kľúčové parametre projektu, ktoré tradične metódy považovali za fixné a určené na začiatku projektu, nie sú nedotknuteľné. Napríklad, ak sa určitá funkcionalita ukáže ako nepotrebná, je možné jej odstránením znížiť náklady a čas vývoja. V prípade, že produkt musí byt nasadený skôr ako sa pôvodne predpokladalo, je možné uvažovať, ktoré funkcie sa budú realizovať až v ďalších fázach. Ak klient neočakávane počas vývoja zistí, že na realizáciu disponuje vyšším množstvom prostriedkov ako pôvodne očakával, je možné zapojiť do vývoja viac zamestnancov a dosiahnuť dokončenie projektu za kratší čas s väčším objemom funkcií alebo aj s obidvomi parametrami súčasne.
Vo všeobecnosti tak môžeme povedať, že klasický cyklus vývoja softwéru (analýza požiadaviek, dizajn, implementácia, verifikácia, údržba) sa skracuje a kúskuje na menšie časti. Maximálna dĺžka jednej iterácie by mala pritom byť 30 dní. Pokiaľ to situácia umožňuje, tím by sa mal denne stretávať na krátkych poradách a identifikovať stav prác, chýbajúcich funkcionalít a prípadne problémy, ktoré nastali pri prácach. Počas vývoja jednej iterácie ostáva tím autonómny a jej výsledkom by mal byť funkčný prototyp, ktorý by malo byť možné prezentovať klientovi aj manažmentu spoločnosti.
Pri aplikácii metódy SCRUM je potrebné si uvedomiť, že akékoľvek nátlakové a manipulačne metódy sú v nej neúčinné a potenciálne rizikové, keďže môžu spôsobiť zlú atmosféru v tíme, narušiť jeho krehké psycho-sociálne väzby a ohroziť splnenie cieľov danej iterácie alebo celého projektu. Táto metóda tiež nemôže fungovať bez otvorenej komunikácie na profesionálnej úrovni, osobnej zainteresovanosti, prirodzenej kreativite a osobnostnej vyspelosti každého člena tímu. Je nevyhnutné, aby sa jeho členovia vzájomne podporovali, motivovali, učili sa od seba a v rámci možností si pomáhali pri každodennej práci. Nie je možné očakávať úspešný výsledok splnením presne a exaktne stanovených čiastkových úloh (toto platí v komplexných softwérových projektoch dvojnásobne). Nezabúdajme na to, že každý člen tímu je autorom výsledného diela :)