# 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?