# 3. Projektové riadenie Plánování, řízení rizik, role modelů v projektovém řízení. Ganttovy diagramy, síťová analýza, metoda kritické cesty (CPM), Program Evaluation and Review Technique (PERT). Mezinárodní standardy a metodiky projektového řízení (PMI Project Management Body of Knowledge, PRINCE 2). Příklady z praxe pro vše výše uvedené. (PA179) --- **Projekt** je dočasná snaha o vytvorenie nejakej hodnoty (produkt, službu) pre stakeholderov alebo business case. Na rozdiel od procesu je projekt **unikátna činnosť** (každý projekt je iný, proces je ten istý a opakuje sa). Avšak, v rámci projektu sa množstvo udalostí môže opakovať a tak nám vznikajú **procesy**. Každý projekt sa začína a končí v určitý čas. Zvyčajne má **životné fázy**: - Pre-project - Initiation - Execution - Close Projekt sa dobre znázorňuje **Gantt** diagramom, proces **Flow chart**om. Projekt vieme definovať aj ako unikátny sled procesov, ktoré sa môžu opakovať a automatizovať. Tieto procesy si vieme predstaviť ako formuláre, ktoré sa vedia vypĺňať s rôznymi vstupmi. Príklad: - Definícia rozsahu projektu - Vytvorenie plánu - Vytvoriť WBS (Work Breakdown Structure) - Pripraviť stratégiu riskov - Špecifikácia úloh členov tímu a zodpovedností - Plánovanie na ďalší krok V rámci firmy tvoríme štruktúru **PPP** - Portfolio, Program, Project. - **Portfolio** - dlhodobé zameranie firemných programov a projektov na dosiahnutie dlhodobých biznisových (strategických) cielov - Príklad: portfólio zamerané na vývoj a poskytovanie služieb do športových hál a štadiónov - Cielom portfólia je pridanie hodnoty do biznisu - **Program** - dočasné zameranie projektov, riadených v skupine, ktorých úlohou je splniť spoločný ciel - Príklad: chceme poskytnúť služby na Slovensku - Cielom programu je doručiť hodnotu stakeholderom - **Project** - dočasné úsilie, ktorým chceme docieliť vytvorenie produktu, poskytnutie služby alebo dosiahnutie výsledku - Príklad: poskytnúť služby na štadióne v Bratislave - inštalácie LED panelov, počítačov, nasadenie SW, výjazd, support ## Plánovanie, riadenie rizík, úlohy modelov v projektovom riadení Projekt môže byť plánovaný **tradične** alebo **agilne**. **Tradičný, prediktívny spôsob** sa zameriava na požiadavky a dokumentáciu. Funkcionalita je daná, mení sa cena a čas dokončenia. **Agilný prístup** sa zameriava na komunikáciu developerov a product ownerom, menší dôraz na dokumentáciu. Dôležité je dodať funkčný produkt čo narýchlejšie, aj za cenu nižšej funkcionality. V rámci projektového riadenia sa vždy snažíme nájsť **ideálny pomer** medzi cenou, časom dokončenia a rozsahom práce (**trojimperatív**). Na začiatku definujeme **PID - Project Initiation Document (prediktívny prístup)** alebo **Project Charter (agilný prístup)**. **Project Initiation Document** obsahuje: - Business case (WHY) - Prečo vôbec projekt vzniká - Kľúčové riziká - Prehľadová cena a budget - Detailné info o projekte (WHY WHAT WHO HOW WHEN) - Kľúčové stratégie - Čo sa dokumentuje - História zmien v dokumentoch - Vytváranie registrov - Schvalovanie product ownerom Pre prediktívny prístup sa definuje **projektový plán** - **(WBS) Work Breakdown Structure diagram**, ktorý obsahuje **Work Packages** (najmenšie jednotky práce). Z týchto jednotiek sa potom robí špecifikácia systému. **Project Charter** obsahuje: - Bussiness case (WHY) - Prečo vôbec projekt vzniká - Kľúčové riziká - Prehľadová cena a budget - Outcome (WHAT) - Popis produktu - Kľúčové ciele a požiadavky - Stakeholders (WHO) - Externí a interní stakeholderi - External - dodávatelia, zákazníci, predstavitelia zákazníkov - Internal - kľúčový vývojarsky tím, manažéri, product owner v rámci našej firmy - Approach (HOW) - Aké štandardy sa budú používať - Očakávaný životný cyklus - Schedule (WHEN) - Kľúčové milníky (milestones) - čo sa kedy odovzdáva [2. Softvérové inžinierstvo](/oBpiVbWyTS-6qcx5XndUIA) Projekt je vo všeobecnosti riskantná záležitosť - často to robíme prvý krát, niečo to stojí, zákazník čaká na výsledok. **Projektový risk** je nejaká udalosť alebo podmienka, ktorá má (negatívny) efekt na dosiahnutie cieľov projektu. Zvyčajne na **začiatku** cyklu alebo iterácie tvoríme dokument, kde **identifikujeme** možné rizíka a dávame im **váhu**. - **Identifikujeme** riziká - Čo môže nastať? Prečo by to nastalo? (what, why technique) - **Ohodnotíme** riziká (risk assessment) - Riziká hodnotíme na základe Probability-Impact tabuľky - Aká je šanca, že riziko nastane, a v prípade ak nastane, aký to má dopad? - Povieme aj slovne, aký to bude mať dopad (napr. horšia kvalita kódu) - Definujeme **reakciu** na vzniknutú rizikovú udalosť - Ak riziko nastane, tak ako to vyriešime? - Definujeme nápravný "measure", aby sme riziko mitigovali - Jedna z možností: - Accept - ignorujeme riziko, budeme riešiť až keď nastane - Avoid - upravujeme plány tak, aby sme sa vyhli situácii - Transfer - presunieme odpovednosť na tretiu stranu (iný provider služby) - Reduce - snažíme sa akýmkoľvek spôsobom riziko minimalizovať - Špecifikujeme **monitoring** rizík - Kto má zodpovednosť za monitoring rizík? (napr. project manager) - Kde nájdem zoznam rizík? (napr. v registri rizík) - Kedy sa bude robiť aktualizácia registru rizík? (napr. po Sprint Review) - Tvoríme **register** rizík - Často odkazujeme pri definícii User stories - Robíme pravidelný update **Problémy** najčastejšie vznikajú na rôznych **úrovniach**: - Užívateľ - nechce spolupracovať, nechce zmenu - Požiadavky - neustále sa menia, nedostatočne definované, nepresné alebo zle definované - Komplexnosť projektu - použitie nových technológií, vysoká úroveň náročnosti - Plánovanie a kontrola - zle zvolená metóda PM, zlé plánovanie zdrojov, neskúsený project manager - Tím - neskúsení členovia, neprispôsobiví - Prostredie organizácie - zmena menežmentu, meniace sa prostredie V agilnom riadení nám pomáha na vyhodnotenie efektivity tímu **Sprint Burndown** chart a **Team velocity**. **Sprint burndown** je závislosť story pointov od dní - tj. keď nám na konci šprintu niečo zostane, tak vieme, že toho ten tím zvládne viac. **Team velocity** je metrika, ktorá udáva koľko story pointov dokáže tím spracovať za deň. V rámci špecifikácie vieme vytvoriť UML modely, ktoré slúžia na dokumentáciu pre programátorov. ## Gantt diagram, sieťová analýza, metoda kritickej cesty (CPM), PERT **Ganttov diagram** je nástrojom na časové plánovanie projektu. Obsahuje aktivity, kedy začínajú, končia, akú majú prioritu, kto na nich pracuje a ako sú vyťažené zdroje (ľudia). Závislosti medzi aktivitami sa označuje šípkami **Precedence Diagramming Method (PDM)**: - Finish to start - Finish to finish - Start to start - Start to finish (málo používané) Tento diagram môže byť súčasťou Project Charteru alebo PID. **Sieťová analýza** používa **network diagram** na označenie úloh a ich závislostí, spoločne s cenou. Je lepší ako Gantt pre veľké projekty. Ľahko sa v ňom hľadá kritická cesta. Pomocou **metódy kritickej cesty (CPM)** určujeme sekvenciu úloh, ktoré sa po dobu trvania projektu nemôžu oneskoriť, inak to bude mať za následok celkové oneskorenie projektu. - Vytvoríme graf závislostí - Ideme od začiatku po koniec, označíme earliest start a completion time - Ideme od konca po začiatok, označíme latest completion a start time - Kritická cesta obsahuje aktivity, ktoré majú earliest earliest a latest finish time identický **PERT (Program Evaluation and Review Technique)** je metódou na odhad času k dokončeniu úlohy. Používa optimistický, pesimistický a najpravdepodobnejší odhad. Ak máme dostupný platový register tímu, vieme dopočítať aj cenu za úlohu. $$ odhad = \frac{optimistický + 4 * najpravdepodobnejší + pesimistický}{6} $$ ## Medzinárodné štandardy a metodiky projektového riadenia - PMBOK, PRINCE2 Poznáme štandardy **IPMA ICB**, **PMBOK** a **PRINCE2**. Kombinujeme ich s metodikami riadenia SW vývoja ako **Unified Process (UP)** pre prediktívny vývoj alebo **SCRUM** pre agilný vývoj. - **PRINCE2** (PRoject In Controlled Environment 2) - Rigorózne riešenie, na všetko existuje formulár, checklist - Nariaďuje, čo majú procesy robiť, krok za krokom - Potrebné na **obrovské projekty**, kde sú vyžadované protokoly a dokumentácia - Vhodné ak máme neskúseného PM, ak máme veľký tím a potrebuje reportovanie výsledkov - 7 princípov - Continued bussiness justification - Learn from experience - Defined roles and responsibilities - Manage by stages - Manage by exception - Focus on products - Tailor to suit the project - 7 témat - Business Case - Organization - Quality - Plans - Risk - Change - Progress - 7 procesov - Starting up a project (SU) - Initiating a project (IP) - Directing a project (DP) - Controlling a stage (CS) - Managing stage boundaries (SB) - Managing product delivery (MP) - Closing a project (CP) - Fázy zhruba zodpovedajú **Unified Process** (vhodný na kombináciu) - **Starting up** - tvoríme Project Brief - robíme feasibility study - popis významných požiadaviek s ohľadom na architektúru - identifikácia aktérov a ďalších systémov - máme obrysovú architektúru - využívame feedback z iných projektov na poučenie - určenie orientačnej ceny, plánu rizík - **Initiation** - tvorba Project Initiation Documentation - obsahuje detailný popis projektu - schvaluje product board - popis štruktúry tímov, cena za MD pozícií - change management, risk management... - plán projektu, Gantt - **Delivery** - iterácie - prebieha vývoj - menežéri kontrolujú termíny a ceny za prácu - pravidelný reporting pre product board - prebieha tímové plánovanie - na konci iterácie sa robí znovu WBS a Gantt, aktualizuje sa PID - **Close** - odovzdanie produktu, handover - vytvorenie preberacích protokolov - nasadenie na HW - tvorba SLA a support tímu - **PMBOK** (Project Management Body of Knowledge) - Niečo medzi PRINCE2 a ICB - Princíp: Sprav to takto aby si dosiahol svoje ciele - Obsahuje návod, best practices of project management - Vhodné ak manažér potrebuje tipy a techniky, ale zhruba vie, čo robiť - Jedná sa o **procesne orientovaný štandard**, vhodný na kombináciu s **SCRUM** - Pomáha nám definovať Project charter, registre riskov, change management, stakeholders a podobne - 49 procesov - 5 procesných skupín - Initializing processes - Planning processes - Executing processes - Monitoring and controlling processes - Closing processes - 10 znalostných oblastí (vs 7 témat v PRINCE2) - Project integration management - Project scope management - Project time management - Project cost management - Project quality management - Project human resource management - Project communications management - Project risk management - Project procurement management - Project stakeholder management - **ICB** (Individual Competence Baseline) - Určuje iba kompetencie, jedná sa o obecný štandard na vedenie projektu - 5 perspektívnych kompetencií - metódy a techniky pre interakciu jedincov s prostredím - 10 ľudských kompetencií (soft skills) - techniky pre jednanie s jedincami alebo skupinami - 13 praktických kompetencií - metódy a techniky prispievajúce k úspechu projektu - Vhodné ak máme skúseného PM, ktorý pozná procesy ak nepotrebujeme dokumentovať vývoj - **ITIL** - Odporúčania na riadenie informačných služieb - Skladá sa z úrovní životného cyklu: - Service strategy - Definujeme ako jadro projektového riadenia, sú na ňom závislé zvyšné úrovne - Aký máme strategický plán do budúcna? - Čo za službu budeme poskytovať a dlhodobo vylepšovať? - Service design - Aké máme SLA? - Aké máme časy dostupnosti? - Ako riešime riziká? - Spĺňajú naše služby bezpečnostné protokoly? (ukladanie dát, GDPR, hash ...) - Service transition - Aké sú výhody našej služby oproti konkurencii? - Ako robíme deployment? - Ako zdieľame získané poznatky? - Service operation - Akú dokumentáciu dávame našemu helpdesku? - Kto bude riešiť incidenty, požiadavky, problémy? - Ako budeme riešiť identity a prístupové práva do systémov? - Continual service improvement - Kto bude robiť monitoring, updating?