SWI041: Plánov nování projektů Hledáme odpověď na otázku: Jak dlouho a za kolik?
Produkce software Produkce Produkcesoftware (Software (Software Process) Process) zahrnuje Management Management projektu projektu Plánování Plánování Řízení Řízení Zajištění Zajištěníkvality je realizována Projekt Projekt Projekt Projekt Projekt Projekt zahrnuje Tvorbu TvorbuSW SW produktu produktu Analýza Analýza Návrh Návrh (design) (design) Implementace Implementace Testování Testování používá Metodiky Metodiky projektového projektového managementu managementu Metodiky Metodiky tvorby tvorby software software používá SWI041 - Plánování projektů 2
Hrubý životní cyklus programového dílad Hrubý cyklus: Nápad Vznik Instalace Provoz a údržba Zánik cca 20% života cca 80% života SWI041 - Plánování projektů 3
Životní cyklus program. dílad Nápad Neformální specifikace (odborný článek, úvodní studie) Formální specifikace (analýza) Dekompozice (návrh) Řešení komponent (modulů) Implementace komponent Testování komponent Integrace komponent do celku Testování celku (akceptační test) Instalace Provoz a údržba Programování ve velkém Programování v malém SWI041 - Plánování projektů 4
Fáze tvorby SW produktu Úvodní studie (informační plánování, feasibility study) podklady pro rozhodnutí, zda vůbec má projekt smysl Analýza vytvoření dostatečně přesné specifikace produktu Návrh (design) dekompozice systému na komponenty, které lze naprogramovat Implementace realizace komponent definovaných v návrhu a jejich sestavení do výsledného produktu SWI041 - Plánování projektů 5
Náročnost fázíf životního cyklu Každý produkt by měl projít všemi fázemi životního cyklu. Ze statistik (pro velké systémy řádově stovky tisíc řádků kódu) vyplývá, že úsilí věnované těmto fázím by mělo být rozděleno zhruba v poměru: analýza 40%, návrh 40%, implementace 20%. Pokud nevěnujeme počátečním fázím dostatečné úsilí, projeví se to zvýšenými nároky při implementaci či údržbě systému. SWI041 - Plánování projektů 6
Cena a pravděpodobnost podobnost chyby 120 100 80 60 40 Cena Pravděpodobnost 20 0 Úvodní studie Analýza Návrh Implementace Provoz SWI041 - Plánování projektů 7
Modely životního cyklu Pro standardizaci postupů jsou zavedeny typové modely životních cyklů, např.: Model vodopád (Waterfall) Model průzkumník Spirálový model Přírůstkový model Model životního cyklu určuje základní schéma postupu Životní cyklus by měl vždy začínat dostatečně přesnou specifikací a návrhem Není nutno realizovat celý systém najednou naopak přírůstky poskytují uživateli dobrý pocit postupu prací SWI041 - Plánování projektů 8
Model vodopád Nikdy se nevracet zpět SWI041 9
START Ale co když jsme se trochu zmýlili? KAM? Snažíme se specifikovat, co zákaznz kazník k chce CÍL SWI041 - Plánování projektů 10
START Nebo se změnily požadavky? KAM? CÍL Snažíme se specifikovat, co zákaznz kazník k chce SWI041 - Plánování projektů 11
START MEZIKROK KAM? CÍL Můžeme zkrátit okamžik ověř ěření a korigovat směr KAM? SWI041 - Plánování projektů 12
Model průzkumn zkumník Nejsme schopni odhadnout dopředu, jak to dopadne SWI041 13
Přírůstkový model SWI041 14
Spirálový model SWI041 15
Jiné modely životního cyklu Model RAD (Rapid Application Development) model určený pro dobře srozumitelné a dobře vymezené problémy, s malými riziky, využívající krátký vývojový cyklus (cca do 3 měsíců), problém je rozdělen na samostatné moduly Evoluční model využívá skládání komponent, které mohou být vyvíjeny současně, či zakoupeny a upraveny Formální metody využívají specifikací řízený styl vývoje, tj. generování programů ze specifikací Extrémní programování a podobné techniky Testy řízený vývoj SWI041 - Plánování projektů 16
Co je to projekt? Projekt je dobře definovaná posloupnost činností, která má určen začátek a konec, je zaměřena na dosažení určitého cíle a je uskutečňována pomocí zdrojů lidí, věcí, nástrojů a prostředků Projekt je specifická nerutinní akce, která proto vyžaduje plánování. Čím složitější je projekt, tím více vyžaduje plánování. SWI041 - Plánování projektů 17
Odhad nákladn kladů na projekt Odhad na základě zkušenosti z minula již jsme něco podobného řešili a údaje o nákladech jsme si schovali Odhad na základě dekompozice problému na odhadnutelné složky (plánování) klasické řešení problému technikou divide-etimpera Odhady na základě výpočtu z odhadu rozsahu odhad se obvykle řídí odhadem rozsahu kódu (LOC, KLOC, FP) SWI041 - Plánování projektů 18
Co je cílem c plánov nování? Plány nejsou vytvářeny proto, aby se dodržovaly (i když se na to dají také použít). Plánování je nutné proto, abychom si rozmysleli, co je třeba udělat. Plánování je zaměřeno na odstranění nejistoty. Plánování se využívá pro sestavení odhadů harmonogramu a rozpočtu. Plánování je nástrojem pro řízení projektů. SWI041 - Plánování projektů 19
Plánov nování projektů je řešení problému: Jak dlouho a za kolik metodou divide et impera SWI041 - Plánování projektů 20
Úroveň procesu tvorby software Maturity Levels Proces se vylepšuje Optimalizující (5) Proces je kvalitativně měřen a řízen Řízený (4) zpětn tná vazba Proces je definován Proces je opakovatelný Opakovatelný (2) Definovaný (3) měření integrovaný proces řízení projektu Iniciální (1) základní řízení projektu SWI041 - Plánování projektů 21
Typy plánov nování Strategické plánování dlouhodobé řádově desítky let a více cíle organizace, možné způsoby jejich realizace, vnější a vnitřní činitelé, kteří ovlivňují možnosti, výběr alternativ Taktické plánování střednědobé řádově měsíce až roky způsob, kterým je vybraná alternativa uskutečňována přidělení potřebných zdrojů rozvrženíčasu Operační plánování krátkodobé řádově hodiny až měsíce rozvržení času a přidělení potřebných prostředků SWI041 - Plánování projektů 22
Postup plánování Strategické plánování definuje potřebné projekty. Plán jejich realizace vzniká taktickým plánováním, kde je projekt rozdělen na úlohy. Řešení úloh přiřazenými zdroji je věcí operativního plánování. Plánování projektů je zaměřeno na realizaci podrobný popis dílčích činností na projektu, jejich vzájemné vztahy a rozvržení času, zdrojů a prostředků na tyto dílčí činnosti. Plánování realizace SW projektů je taktické plánování Příklad nástroje pro vytváření plánů projektů a sledování jejich realizace je MS Project SWI041 - Plánování projektů 23
Elementy plánu projektu úlohy (tasks) vyžadujíčas a zdroje milníky (milestones) kontrolní okamžiky zdroje (resources) lidé, vybavení, místa vztahy (dependencies, assignments) co dříve, co později, kdo-co udělá SWI041 - Plánování projektů 24
Co je to úloha? Projekt: stěhování firmy Příklady úloh: nalezení nového místa rozebrání nábytku převoz nábytku sestavení nábytku SWI041 - Plánování projektů 25
Co je to milník? Projekt: stěhování firmy Příklady milníků: nové místo je připraveno uzavřena smlouva se stěhovací firmou nábytek je zabalen přesun dokončen SWI041 - Plánování projektů 26
Co je to zdroj? Projekt: stěhování firmy Příklady zdrojů: architekt (člověk) malíř (člověk) stěhovací vůz (prostředek) sklad (místo) SWI041 - Plánování projektů 27
Co je to vztah? Projekt: stěhování firmy Příklady vztahů: nábytek je třeba nejprve zabalit a pak stěhovat úloha malování je pořízena úloze příprava zdroj malíř je přiřazen úloze malování SWI041 - Plánování projektů 28
Nástroje pro přípravu p pravu plánů MS Project MinuteMan SmartDraw WBS Chart Pro SWI041 - Plánování projektů 29
Základní data SWI041 - Plánování projektů 30
Přesnější data plánu SWI041 - Plánování projektů 31
Podrobněji SWI041 - Plánování projektů 32
SWI041 - Plánování projektů 33
(Příklad pro MS Project) Informace ukládan dané o plánu projektu Tasks Assignments Resources Tasks Assignments Resources Aktuální plán Směrný plán (baseline) nástroje kalendáře, sestavy, pohledy, lišty, makra,... SWI041 - Plánování projektů 34
Techniky zobrazení plánu atomy: činnosti + vztahy + zdroje přímočaré plánování (Gantt Charts) podle Henryho Gantta (původně nazývána sloupcové grafy) síťové plánování (PERT Program Evaluation Review Technique) vyvinuta na zakázku pro armádu (Polaris, Lockheed) SWI041 - Plánování projektů 35
Ganttovy (sloupcové) ) grafy vazba A začátek B čas konec činnost SWI041 - Plánování projektů 36
SWI041 - Plánování projektů 37
Síťový plán n podle PERT číslo délka vztah A 12 10.3.00 8:00 4d 16.3.00 17:00 začátek 11 B 2d 14.3.00 8:00 15.3.00 17:00 konec činnost SWI041 - Plánování projektů 38
SWI041 - Plánování projektů 39
SWI041 - Plánování projektů 40
Základní problém čas nekvalita cena SWI041 - Plánování projektů 41
Zkrátíme čas? čas nekvalita cena SWI041 - Plánování projektů 42
Nebo cenu? čas nekvalita cena SWI041 - Plánování projektů 43
Nebo kvalitu? čas nekvalita cena SWI041 - Plánování projektů 44
Proces plánov nování projektu Vytvoření a uspořádání plánu projektu rozdělení plánové činnosti na jednodušší elementy Rozvržení úloh analýza vztahů mezi elementy Doplnění zdrojů (lidí, zařízení, prostředků) do projektu odhad potřeb Přiřazení nákladů úlohám a zdrojům porovnání se skutečnými možnostmi Úpravy a ladění plánu (až vznikne směrný plán) Monitorování a sledování plánu Uzávěrka projektu (úschova plánu pro budoucnost) SWI041 - Plánování projektů 45
SWI041 - Plánování projektů 46
SWI041 - Plánování projektů 47
SWI041 - Plánování projektů 48
Vazby mezi úlohami Úlohy potřebné pro realizaci projektu nejsou zpravidla nezávislé pokud ano, mohou se všechny začít realizovat současně Některé úlohy ale mají mezi sebou nějaký vztah vazbu např. testování modulu může začít až po jeho implementaci Teprve důkladným studiem vazeb mezi úlohami získáme přehled o potřebné návaznosti úloh a z toho vyplývajícíčasový harmonogram projektu SWI041 - Plánování projektů 49
SWI041 - Plánování projektů 50
SWI041 - Plánování projektů 51
SWI041 - Plánování projektů 52
SWI041 - Plánování projektů 53
Různé typy vazeb mezi úlohami FS (Finish to Start) další úloha může začít, až když předchozí úloha skončí SS (Start to Start) další úloha začne současně s předchozí úlohou FF (Finish to Finish) další úloha skončí současně s předchozí úlohou SF (Start to Finish) další úloha musí skončit, aby mohla předchozí úloha začít SWI041 - Plánování projektů 54
SWI041 - Plánování projektů 55
Náskok a zpoždění Opoždění (lag) Př.: druhá malba může začít až řádně uschne první Náskok (lead) Př.: podlaha se může začít pokládat když je topení z 50% hotovo SWI041 - Plánování projektů 56
Hierarchická osnova projektu Projekt se skládá ze sady úloh, které je nutné pro jeho uskutečnění vykonat Seznam všech úloh je nepřehledný je třeba v něm vytvořit hierarchickou osnovu Přidáme do projektu sumární úlohy a podřídíme jim jiné úlohy Sumární úlohy jsou úlohy vyšší úrovně (pro řízení na vyšší úrovni), ale vždy nakonec zastupují v sobě obsažené skutečné (nesumární) úlohy SWI041 - Plánování projektů 57
SWI041 - Plánování projektů 58
Kritická cesta CPM (Critical Path Method) je metoda k hledání kritické cesty v grafu. Kritická cesta je nejdelší cesta mezi začátkem a koncem grafu. Kritická úloha je úloha ležící na kritické cestě. Změna doby trvání kritické úlohy ovlivňuje dobu trvání projektu. SWI041 - Plánování projektů 59
SWI041 - Plánování projektů 60
Náklady na projekt Cena projektu = cen úloh Cena úlohy = fixní náklady + cena za použití zdrojů Cena za použití zdroje = odměna za práci v normální pracovní době + odměna za práci přesčas + fixní náklady na použití zdroje Práce = jednotky * délka Práce je dána součinem počtu jednotek zdroje, které na úloze pracují a délky úlohy SWI041 - Plánování projektů 61
SWI041 - Plánování projektů 62
Další život plánu projektu Úpravy plánu tak dlouho, až dojde k jeho schválení. Nastaví se směrný plán. Manažer projektu dostane projekt k realizaci. Zjistí a najme si zdroje. Aktualizuje plán dle skutečnosti. Uzavře projekt a vyhodnotí. Plán se uloží do archivu firmy (úroveň 2). SWI041 - Plánování projektů 63
SWI041 - Plánování projektů 64
SWI041 - Plánování projektů 65
SWI041 - Plánování projektů 66
Jiné metody odhadu COCOMO (Constructive Cost Model) - Barry Boehm http://sunset.usc.edu/research/cocomoii/ SWI041 - Plánování projektů 67
Odhad rozpočtu dle COCOMO Vstup: Rozsah produktu v KLOC (KLines of Code) Náročnost = 2.94 * (Rozsah) 0.91 (udává se v člověko-měsících) Čas = 3.97 * (Náročnost) 0.28 Cena = Čas * Plat Koeficienty se mění dle typu projektu a korekcí (cca 0.5 2.0) SWI041 - Plánování projektů 68
Příklad: Sestavovací program Velikost: 32 KLOC (KDSI) Náročnost (Effort): 121.77 ČM Čas: 15.50 měsíců Lidí: 7.856 (organic mode jednodušší známé projekty, spočteno přes COCOMO kalkulátor) http://sunset.usc.edu/research/cocomoii/ cocomo81_pgm/cocomo81.html SWI041 - Plánování projektů 69
Příklad výpočtu (COCOMO II) SWI041 - Plánování projektů 70
Karnerova metoda odhadu Jiná metoda odhadu nákladů, založená na modelu jednání Spočítejte aktéry, každého aktéra zařaďte do kategorie: jednoduchý (např. jiný systém komunikující přes API) váha 1, střední (např. uživatel se znakovým terminálem nebo jiný systém komunikující přes TCP/IP) váha 2, nebo složitý (např. osoba komunikující přes GUI nebo Web) váha 3. Sečtěte váhy všech aktérů a získáte neupravenou váhu aktérů - UAW (Unadjusted Actor Weights). SWI041 - Plánování projektů 71
Karnerova metoda odhadu (pokr( pokr.) Rozdělte případy použití do kategorií podle odhadu počtu potřebných transakcí: jednoduchý (méně než 4 transakce) váha 5, střední (4-7 transakcí) váha 10, nebo složitý (více než 7 transakcí) váha 15. Sečtěte váhy všech případů užití a získáte neupravenou váhu případů užití - UUCW (Unadjusted Use Case Weight). SWI041 - Plánování projektů 72
Karnerova metoda odhadu (pokr( pokr.) Sečtěte obě váhy a získáte neupravenou váhu modelu jednání UUCP (Unadjusted Use Case Points) Adjustujte takto spočtenou váhu technickými faktory (TCF) a faktory prostředí (EF). Faktor má hodnotu 0 (žádný vliv) až 5 (silný vliv). Koeficient se spočítá: TCF = 0.6+0.01*Technický faktor EF = 1.4-0.03*Faktor prostředí Získáte tak upravenou váhu modelu jednání UCP (Use Case Points) UCP = (UAW+UUCP)*TCF*EF Vynásobte UCP předpokládanou pracností jednoho případu užití (cca 15 30 hod, Karner doporučuje 20 hod). Získáte pracnost v člověko-hodinách. Příklad (Zdroj: www.komix.cz) SWI041 - Plánování projektů 73
Co od Vás V s budeme chtít: t: Naučit se číst a vytvářet plány. Prostudovat si a upravit plán SWI041.mpp (to je plán Vaší práce). SWI041 - Plánování projektů 74
SWI041 - Plánování projektů 75
The End