1 Řízení rizik při vývoji SW Barry Boehm, USC 2 “Pokud aktivně nenapadnete rizika, … 3 ..., rizika napadnou aktivně vás.” Tom Gilb 4 Význam rizikového řízení • Týká se složitých SW systémů. • Soustředí pozornost projektu na kritické rizikové položky. • Poskytuje techniky pro zvládnutí rizikových položek. • Redukuje ceny SW tím, že snižuje cenu přepracování, obvykle 40-50% ceny SW. 5 Když je řízení rizik důležité, proč to lidé nedělají ? Neochota připustit existenci rizik. • Zanechává dojem, že nevíte přesně, co děláte. • Zanechává dojem, že vaši pánové - zákazníci neví přesně, co dělají. • Orientace na úspěch. Tendence odložit obtížné části. • Možná, že zmizí. • Možná se budou řešit snáze, až vyřešíme lehké části. Prevence stojí peníze a čas. 6 Kdy použijí lidé řízení rizik? Poté, co se spálili v podobné situaci. • Vyhýbání se bolesti. • Přesvědčivá evidence následků. Když je každý zúčastněný přesvědčen, že rizika existují, ale že má stále cenu pokračovat. • Každý je vítězem, realistická očekávání. Když se to konečně naučili dělat správně. • Techniky nejsou všeobecně známé, ale lze se je naučit. 7 Definice rizika Riziko = Možnost ztráty nebo zranění (Webster) E = P · Z E = Expozice rizika P = Pravděpodobnost nežádoucího výsledku Z = Ztráta při nežádoucím výsledku 8 Složky uspokojivého výsledku Zákazník: Cena, termín dodání … Vývojář: Rozpočet, plán … Uživatel: Funkcionalita, výkon, spolehlivost, použitelnost … Údržbář: Modifikovatelnost, přenositelnost … Manažer výroby: Další použitelnost … 9 Příklad rizikové SW situace Software řídí vesmírný experiment PROB (pravděpodobnost kritické chyby) = 0.4 Ztráta po výskytu kritické chyby = $20M Pokud se provede nezávislá V&V: • PROB (kritická chyba zůstane) = 0.05 • Přidaná cena k SW projektu = $1M Pokud se neprovede nezávislá V&V: • PROB (kritická chyba zůstane) = 0.2 • Přidaná cena k SW projektu = $0 10 Příklad rizikové SW situace – základní paradigma 11 Řízení rizik při vývoji SW 12 „Top 10“ rizikové položky 1. Nedostatek pracovníků 2. Plány, rozpočty, proces 3. COTS, externí komponenty 4. Neshody v požadavcích 5. Neshody v uživatelském rozhraní 6. Architektura, výkon, kvalita 7. Změny v požadavcích 8. Zděděný software 9. Externě řešené úlohy 10. Přecenění možností informatiky 13 „Top 10“ Rizika vývoje SW 1. Personnel Shortfalls Staffing with top talent; key personnel agreements; incentives; teambuilding; training; tailoring process to skill mix; peer reviews. 2. Unrealistic schedules and budgets Business case analysis; design to cost; incremental development; software reuse; requirements descoping; adding more budget and schedule. 3. COTS; external components Qualification testing; benchmarking; prototyping; reference checking; compatibility analysis; vendor analysis; evolution support analysis. 14 „Top 10“ Rizika vývoje SW 4. Requirements mismatch; gold plating Stakeholder win-win negotiation; business case analysis; mission analysis; ops-concept formulation; user surveys; prototyping; early users’ manual; design/develop to cost. 5. User interface mismatch Prototyping; scenarios; user characterization (functionality, style, workload). 6. Architecture, performance,quality Architecture tradeoff analysis and review boards; simulation; benchmarking; modeling; prototyping; instrumentation; tuning. 15 „Top 10“ Rizika vývoje SW 7. Requirements changes High change threshold; information hiding; incremental development (defer changes to later increments). 8. Legacy software Design recovery; phaseout options analysis; wrappers/mediators; restructuring. 9. Externally-performed tasks Reference checking; pre-award audits; award-fee contracts; competitive design or prototyping; team-building. 10. Straining computer science capabilities Technical analysis; cost-benefit analysis; prototyping; reference checking. 16 Stanovení priority rizik 17 Risk Reduction Leverage (RRL) 18 Plány řízení rizik Otázky pro každou rizikovou položku: 1. Proč? Význam rizikové položky, vztah k cílům projektu. 2. Co, kdy? Výstupy pro rozhodnutí rizik, milníky, sítě aktivit. 3. Kdo, kde? Zodpovědnosti, organizace. 4. Jak? Přístup (Prototypy, Přehledy, Modely, …). 5. Kolik? Zdroje (Rozpočet, plán, klíčoví pracovníci). 19 Techniky řízení rizik Identifikované riziko - poškození auta a zranění pasažérů při autonehodě cestou do práce • vyhnutí se - bydlet blízko práce a chodit pěšky/ používat MHD • předpokládání - jet do práce a doufat, že to dobře dopadne • řízení - snížení maximální povolené rychlosti, bezpečnostní pásy, zesílení oddělovacích panelů, cesta se zkušeným, bezpečným řidičem • přenesení - pojištění auta, záchranný systém, žaloba druhého řidiče • získání znalosti - určení nejbezpečnějších aut pomocí nárazových testů, nalezení nejbezpečnější cesty do práce 20 Techniky řízení rizik Identifikované riziko - být někým zastřelen • vyhnutí se - zákaz ručních palných zbraní • předpokládání - stane se to někomu jinému • řízení - držet se mimo nebezpečné oblasti, být stále ve střehu, koupit neprůstřelnou vestu • přenesení - pojistit se, provozovat záchranný systém, žalovat střelce • získání znalosti - zjistit nebezpečná místa, zjistit varovné příznaky nebezpečí 21 Techniky řízení rizik Identifikované riziko - selhání disku • vyhnutí se - nepoužívat disk • předpokládání - používat disk a slíbit si, že zítra udělám zálohu • řízení - pravidelně zálohovat disk • přenesení - použití utility pro obnovení disku • získání znalosti - určit frekvenci selhání pro různé značky disků 22 Schéma řízení rizik dle PMI: 23 Risk identification Zdroj: PMI 24 Risk quantification Zdroj: PMI 25 Zdroj:PMI Pravděpodobnostní odhady (příklad) Nástroj pro ohodnocení rizik Zdroj: PMI 26 Simulace „Monte Carlo“ (příklad) Zdroj: PMI 27 Rizika plynoucí z konvergence cest (příklad) Zdroj: PMI 28 Rozhodovací strom (příklad) Zdroj: PMI 29 Risk response development Zdroj: PMI 30 Risk response control Zdroj: PMI 31 Závěry • Rizikové řízení je vhodné u komplexních SW projektů, kde umožňuje: - vyhnout se překvapením, - redukce nákladů. • Ověřené techniky řízení rizik jsou k dispozici. • Rizikové řízení nelze dělat podle kuchařky. 32 Úkoly • Revidujte přiřazení pracovníků podle jejich dovedností. • Prověřte potřebné dovednosti a naplánujte zvýšení kvalifikace. • Identifikujte hlavní rizika a odhadněte jejich expozice (předpokládejte znalost nákladů). • Přiřaďte rizika k jednotlivým fázím projektu. 33 „Nečekaný“ úkol Po té, co jste vše naplánovali a zahájili jste projekt, postihla Vaši firmu morová epidemie. Ze dne na den jste přišli o dvě třetiny programátorů. Ve Vašem týmu dále nezůstal nikdo, kdo má zkušenosti s tvorbou uživatelského rozhraní podobných aplikací, jaké vyvíjíte. • Navrhněte seznam opatření, kterými budete danou situaci řešit. • Jak se tato opatření projeví na časovém plánu?