Zlepšujeme se? Source: Standish Group, 2004 Third Quarter Research Report, CHAOS Research Results Překročení rozpočtu klesá 200% 150% 100% 50% 0% 1994.

Slides:



Advertisements
Podobné prezentace
Národní seminář k metodám evaluací aktivit v oblasti globálního rozvojového vzdělávání (GRV) Praha, 2010 Analýza monitoringu a evaluace globálního rozvojového.
Advertisements

Bezpečný digitální podpis v praxi
Software Development Conference 2007 Vztah dodavatele a odběratele Zdeněk Borůvka.
Lean Six Sigma MÚ Kopřivnice.
Stručný úvod do UML.
Projektové řízení Modul č.1.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Databázové systémy Přednáška č. 2 Proces návrhu databáze.
Zlepšování jakosti.
Zefektivňování, zvyšování výkonnosti a kvality
METODOLOGIE PROJEKTOVÁNÍ
Evropský sociální fond
© HMP 2003 DATABÁZE NEJLEPŠÍCH PRAKTIK Trenér TRÉNINKOVÁ ČÁST „Řízení lidských zdrojů“ Trenér.
Projektový záměr : Zmapování vnitřních procesů na MS ČR MS_P01.
1 Audit software Petr SLOUP Cíl Cílem auditu je sestavit přehled a základní popis používaného software (aplikací)
ÚČEL AUTOMATIZACE (c) Tralvex Yeap. All Rights Reserved.
Škola pro udržitelný život 2010 Plánovací procesy ve škole a vzdělávání Jiří Kulich, Michal Veselý.
Benchmarking Benchmarking je metoda řízení kvality, která zapojené
Aukro.cz – projektový management v e-commerce Tereza Kabrdová.
Dotyková zařízení ve výuce​ KA4 Evaluace
6. Koncepce řízení projektů
Didaktické prostředky
12. OPERATIVNÍ MANAGEMENT
Auditorské postupy Činnosti před uzavřením smlouvy
11. Trendy ve vývoji aplikací, podporujících podnikové procesy
Hodnocení, realizace a kontrolní etapa. Hodnotí se tři skupiny kriterií: A)Prospěšnost – žádoucnost 1. Jak navržená strategie pomáhá dosažení cílů? 2.
Informační strategie. řešíte otázku kde získat konkurenční výhodu hledáte jistotu při realizaci projektů ICT Nejste si jisti ekonomickou efektivností.
Jaromír Skorkovský ESF MU KAMI
Michael Juřek Software Architect Microsoft s.r.o.
ITIL Information Technology Infrastructure Library.
Možnosti financování rozvoje zdravotnického IT a návratnost investic MUDr. Pavel Kubů.
Vybrané metody analýzy
Systém managementu jakosti
EVALUACE REALIZACE ICT STRATEGIE AUTOEVALUACE SLUŽEB ICT listopad 2006 (c) Radek Maca.
4. Lekce Dílčí procesy funkčního testování
Možnosti modelování požadavků na informační systém
VAŠE FIRMA JE LOĎ PLUJÍCÍ K VYTČENÉMU CÍLI, KTERÝM JE: n maximalizace tržní hodnoty firmy a n udržování platební schopnosti.
1 Měření efektů manažerských vzdělávacích a rozvojových aktivit Štěpán Galbavý Partner Inventa,s. r. o.
Reinženýring cesta ke zvyšování výkonnosti státní správy s využitím procesního řízení Ing. Martin Čulík Notes CS a.s. Konference ISSS 2003 Hradec Králové.
Aleš Chudý IW BG Lead Microsoft Corporation. Lidé jsou klíčové aktivum firem Nové trendy práce Software jako platforma Strategická iniciativa (horizont.
Dokumentace informačního systému
Název organizace Podnikatelský plán (bližší specifikace aktivity) Vaše logo.
Přednáška č. 1 Proces návrhu databáze
RNDr. Jana Sýkorová SOŠ a SOU technické, Třemošnice, Sportovní 322
1. Projektový management I. ÚVOD II. PROJEKT III. PROJEKTOVÉ ŘÍZENÍ IV. PROJEKTOVÝ TÝM Přednáška č. 1: Projektový management.
Rozhodovací proces, podpory rozhodovacích procesů
1 Regionální inovační strategie RIS. 2 O Regionálních inovačních strategiích Projekty RIS mají za cíl podporu rozvoje regionálních inovačních strategií,
Proces řízení kvality projektu Jaromír Štůsek
Eva Dufková, Jan Matyáš VSRR, 3.ročník
6. Koncepce řízení projektů
Několik námětů a otázek k zamyšlení a výběru
Projektová výuka na školách HEURÉKA CZ, spol. s r.o vzdělávací společnost pro podporu a rozvoj efektivity a adaptability lidských zdrojů a mezilidských.
METODY STŘEDNĚDOBÉHO PROGNÓZOVÁNÍ SURO jaro 2010.
Metodika řízení projektů
Teambuilding 2 Posouzení potřeby Podávání zpětné vazby
BSC 1992 Robert S. Kaplan a David P. Norton článek navrhující měření výkonnosti organizací – BSC – Vyrovnaný přehled výsledků kniha The Balanced.
Ekonomika malých a středních podniků Přednáška č. 10: Personální řízení v MSP.
Projektové procesy.  Podrobné procesní modely (PMBOK)  Zjednodušený procesní model  COBIT.
PROCESNÍ MODELOVÁNÍ AGEND VEŘEJNÉ SPRÁVY Rámcový návrh projektu.
Místní akční plán vzdělávání ORP Svitavy. Název projektu: Místní akční plán vzdělávání ORP Svitavy Reg. číslo: CZ /0.0/0.0/15_005/ Realizátor.
NKK Praha CAF-Externí zpětná vazba ověření efektivního fungování úřadu Mgr.Stanislav Loskot, MBA Mgr.Stanislav Loskot, MBA AQE advisors a.s.
Životní cyklus projektu a fáze projektu Martin Cupal Podnikatelský záměr a projektový management.
Digitální učební materiál Název projektu: Inovace vzdělávání na SPŠ a VOŠ PísekČíslo projektu: CZ.1.07/1.5.00/ Škola: Střední průmyslová škola a.
Testování aplikací v Javě Petr Adámek IBA CZ, s.r.o. © 2010.
Systém managementu jakosti
Vytváření pracovních míst – jejich analýza a popis
Didaktické prostředky
Tradiční metodiky vývoje softwaru
Tradiční metody vývoje softwaru
Presentation Title 1st September 2002
Transkript prezentace:

Zlepšujeme se? Source: Standish Group, 2004 Third Quarter Research Report, CHAOS Research Results Překročení rozpočtu klesá 200% 150% 100% 50% 0% Procent překročení Dobrá zpráva Za neúspěch teď platíme méně

Forrester definuje ALM jako: Koordinaci aktivit životního cyklu aplikace včetně požadavků, modelování, vývoje, sestavení a testovaní pomocí Vynucení procesů, které pokrývají tyto aktivity Řízení vztahů mezi výstupy z vývoje, které tyto aktivity používají nebo produkují Sledování a reportování celkových metrik softwarového projektu

Vyhodnoťte fungování vaší organizace Identifikujte hlavní nedostatky Prioritizujte oblasti ke zlepšení Zavádějte nové přístupy postupně, vyhodnocujte zkušenosti, postupujte projekt od projektu

Nástroje VSTS jsou vytvořeny k podpoře hodnotocentrického přístupu Obsah dnešního semináře není vázán na MS produkty a nástroje Jsou použity jako ilustrace přístupu

Přístupy, které s vámi chceme sdílet, jsou vyzkoušené a fungují: Neříkáme, že za všech podmínek Pokud si myslíte, že u vás nebudou fungovat, může to být: Pravda Pocit „to se nezaplatí“ – prvotní náklady vs. průběžné dlouhodobé přínosy Obava ze změny...

Budeme analýzu dělit na menší a menší části tak dlouho, až bude rozdělena na elementární kroky, ve kterých „nelze“ udělat chybu. Poté implementujeme. Přístup odráží vysokou cenu vytvoření verze v dřívějších dobách Stále má své zastánce, ale odumírá

Řešení budeme vytvářet v definovaných krocích (iteracích), abychom snížili rizika a měřili postup. Jednotlivé kroky budeme řídit striktním procesem. Iterace jsou umožněny nízkou cenou za vytvoření verze (důsledek komfortu vývojáře) Přiznává „právo dělat chyby“ Vhodné pro projekty s velkou mírou rizika, ale dosti nákladné Představitelé: RUP (Rational Unified Process) – nejznámnější MSF (Microsoft Solution Framework)

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Minimalizuje byrokracii a formálnost Snížení ceny je vyváženo zvýšením rizik Představitelé: Fundamentalisté – Extreme Programming (XP), Continuous Integration (CI), Test-Driven Development (TDD),... Pragmatici – MSF for Agile Dev. (MSF4AD), Feature Driven Development (FDD), SCRUM,...

Stavebnictví Rizika designu jsou nízká Náklady na design jsou relativně malé ve srovnání s náklady na stavbu Zřídka se objeví příležitost pro postupné dodání hodnoty Rizika designu jsou nízká Náklady na design jsou relativně malé ve srovnání s náklady na stavbu Zřídka se objeví příležitost pro postupné dodání hodnoty Tvorba software Design se může vyvíjet jak získáváme další informace Náklady na design a stavbu jsou skoro stejné Je žádoucí dodávat přidanou hodnotu postupně Design se může vyvíjet jak získáváme další informace Náklady na design a stavbu jsou skoro stejné Je žádoucí dodávat přidanou hodnotu postupně

Plan Task 1 Task 4 Task 3 Task 2 HodnotocentrickyÚkolocentricky V tradičních projektech rozdělujeme plány do pracovních položek ty jsou postupně plněny Hodnotocentrické metody dodávají v každé iteraci zákazníkovi další hodnotu

ÚkolocentrickyHodnotocentricky Plánovací a změnové procesy Naplánujeme a navrhneme správně hned na začátku Změna je běžná, pracujeme s ní Primární měření Ukončení úkoluVytvořená hodnota pro zákazníka Definice kvality Shoda se specifikacíHodnota pro zákazníka Akceptace odchylek Stanovení nových úkolů a jejich deterministický odhad Odchylky jsou součástí procesního toku Meziprodukty Nevyhnutná je dokumentace, modely, atd. Jen tolik abychom zamezili nejistotě Přístup k řešení problémů Čas, zdroje, funkčnost a kvalitaNalezneme a odstraníme úzká místa Přístup k důvěře Sledování a měření výkonu vůči plánu Hrdost na profesionalitu a týmovou spolupráci

Zvyšujeme návratnost investic (ROI) zaměřením se na stálý tok hodnot Získáváme spolehlivé výsledky zapojením zákazníků v pravidelných intervalech Očekáváme nejistotu a připravujeme se na ní (pomocí iterace, předvídání a adaptace) Umožníme kreativitu a inovaci tím, že uznáme individualitu jako zdroj hodnot Zvýšíme výkon pomocí skupinové odpovědnosti Zvýšíme efektivitu a spolehlivost pomocí specifických strategií, procesů a praktik

Tok je základem pro hodnotocentrické myšlení a praktiky Fungující software a hotová dokumentace jsou produkty, které se počítají Hodnotu software pro zákazníky pravidelně měříme Dodáváme zákazníkovi fungující software v pravidelných intervalech Měříme spokojenost zákazníka v pravidelných intervalech

Nárůst v oblasti Resolved indikuje úzké hrdlo v testování Sklon křivky Closed do konce iterace nedosáhne výšky naplánované práce

Manuální sledování postupu projektu je neefektivní Manuální procesy a oddělené nástroje vedou k nesprávným informacím Promrháme příliš mnoho času a úsilí Nástroje potřebujeme abychom Snížili náklady Vytvořili automatizovanou podporu procesů Měli auditovatelné změnové řízení (legislativa apod.)

Jediná databáze pracovních položek Pro sledování naplánované, aktivní a ukončené práce Většinu dat získáme automaticky Součást provádění denních aktivit Pracovní položky Metriky Zdrojový kód Excel / Project Reporty IDE Instrumentace denních aktivit

Každý projekt by měl mít vizi Měla by být srozumitelná pro všechny zúčastněné Měla by zahrnovat důvod, proč se projekt dělá Měla by být jasná a stručná Vize je důležitá, protože pomáhá definovat cíl a soustředit se na jeho dosažení Pro velké strategické projekty by měla mít formu krátké obhajoby („elevator pitch“) Pro adaptivní projekty popis a důvod změny

Všechny požadavky typicky nelze zachytit předem Snaha o to může vést k “analýze-paralýze” „Analýzu máme hotovou již 3 roky...“ Hodnotocentrický přístup předem počítá s tím, že se požadavky „podléhají zkáze“: Mění se prostředí, pro které projekt vytváříme Znalosti zastarávají, objevují se nová fakta Kapacita týmu zvládat požadavky je limitována Každá iterace přináší poznatky ovlivňující příští iterace

Detailnost Pochopitelnos t Ideálně popsané požadavky Leffingwell and Widrig, Managing Software Requirements (Boston, MA: Addison-Wesley, 2000), 273

Funkční Popisují, co by měl produkt umět Ostatní (Quality of Service) Popisují okolnosti a kvality fungování Např. výkonnost, škálovatelnost, bezpečnost, udržovatelnost, použitelnost,... Je nutné zaznamenat oba dva typy Pokud jsou QoS požadavky splněny, nikdo o nich ani neví, pokud ne, je velký problém

Zastupuje skupinu uživatelů Reprezentována jedním členem Dobrá persona je snadno zapamatovatelná, plastická Popis persony zahrnuje její návyky, pracovní prostředí, motivaci, chování,... Persona by měla být užitečnou pomůckou při rozhodování Persona by měla mít zapamatovatelné jméno

Persona Kroky potřebné k dosažení cíle Scénář Cíl Začněte cílem Popište kroky k dosažení cíle: Osoba udělá..., aplikace zareaguje... Používejte jazyk persony, pro kterou scénář je Alternativní cesty, výjimky,... dopisujte až později

Zákazník nadšen Zákazník znechucen Vlastnost chybí Vlastnost plně implementována Uspokojující scénář (satisfier) Potěšující scénář (exciter) Nezbytnosti (dissatisfier)

Různá hlediska: Podle Kanovy analýzy Podle míry rizika Podle pracnosti Podle persony, pro kterou jsou určeny Volte jednoduchost (např. A,B,C) Klasifikace vám pomůže v rozhodování, které scénáře kdy implementovat

V počátečních iteracích se snažte implementovat scénáře s vysokou hodnotou Věnujte obzvláštní pozornost scénářům a QoS, které jsou „nezbytnosti“ Nejprve se soustřeďte na maximální srozumitelnost scénáře Během iterace můžete scénáře upřesňovat a rozvíjet, soustředit se na přesnost a úplnost V pozdějších iteracích přidávejte další scénáře

Jeho funkce je založena na několika předpokladech: Procesy běží hladce Produktivita zdrojů je rovnoměrně rozdělena Malý rozptyl v efektivitě provádění úloh V systému nejsou žádné nevyužité kapacity

Klíčová je identifikace příčin rozptylu pro rozlišení projektů, které jsou a nejsou pod kontrolou Vyhýbá se používání preskriptivních metrik Počet úloh dokončených v čase Počet nalezených chyb Počet vyúčtovaných pracovních hodin Používání týmových metrik, raději než individuálních Využívání vícerozměrných pohledů, kombinace

Uvažte, co může být výsledkem, když: Hodnotíte vývojáře na základě počtu napsaných řádků kódu Hodnotíte vývojáře na základě počtu opravených chyb Odměníte tým za dosažení 90% pokrytí kódu testy Měříte testery na základě počtu objevených chyb

Výkonnost Čas Sledované metriky Skutečný výkon Source: Robert D Austin, Measuring and Managing Performance in Organizations, 1996

Metriky nejsou cíle, jsou pouze aproximací cílů Pozor na zploštění pohledu Pokud měříte pouze podle jedné dimenze, nezbytně dosáhnete změny chování lidí Získávání dat z více zdrojů je bez moderních nástrojů velmi pracné Metriky mohou vytvářet nesprávnou motivaci Měřte tým za jeho výsledky, ne za jeho metriky Očekávejte rozptyl způsobený běžnými příčinami

Plánovan á práce Hotová práce

Všechny šťastné rodiny jsou si podobné; každá nešťastná rodina je nešťastná svým vlastním způsobem. L.N.Tolstoj, Anna Karenina Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.

Pomalý postup vpřed spojený se škrty v dané iteraci, ale přesunů do dalších iterací není dost Neustálý postup vpřed, ale je příliš pomalý

Nárůst šířky pásma pro implementované, ale neuzavřené scénáře znamená buď nedostatek testerů anebo nízkou kvalitu implementace

Roste počet reaktivovaných chyb vyžadujících opakovaný zásah vývojáře i testera

Klesá pokrytí kódu testy Vysoké množství změn v kódu Klesá podíl úspěšných testů, stoupá podíl nerozhodných

“Temná hmota“, která nafukuje rozsah iterace Vytlačování plánované práce

Počet nalézaných chyb je dlouhodobě větší než opravených

Vysoká míra variability v denních přírůstcích značí nekonzistentní rozdělení práce a brání efektivnímu měření

Náhlý pokles v toku hodnoty znamená pravděpodobně odliv zdrojů na jinou práci

Úkolem architekta je přeměnit požadavky (zejména ne-funkční) v návrh aplikace Dobrá architektura je dobře srozumitelná, použitelná a dlouhodobě udržitelná Možnosti zapojení architektury Cílená, předem vytvářená, nezávislá na implementaci NEBO Vycházející z implementace a pružně reagující na nové poznatky a změny Cílená, předem vytvářená, nezávislá na implementaci NEBO Vycházející z implementace a pružně reagující na nové poznatky a změny Formální přístup Agilní přístup

Zachycují důležité vlastnosti produktu, které nesouvisí s funkční specifikací Quality of Service, non-functional,... Pokud je nepodchytíte a nezahrnete do návrhu aplikace, důsledkem bude zaručeně nespokojenost zákazníka Příklady: Bezpečnost Výkonnost, škálovatelnost Spravovatelnost Použitelnost Soulad s prostředím zákazníka

Architektura musí být explicitně dána, ale může vyvstat až z implementace Základní (baseline) architektura: Podmnožina celého systému navržená tak, aby ověřila správnost implementace nejdůležitějších scénářů Měla by být vždy spustitelná (prototyp) Důležitá je hlavně dodaná hodnota: Úlohou je snížit technologická rizika Zajistit splnění požadavků v budoucím produktu

Pro vývojáře: Stabilní platforma s nastavenou infrastrukturou, protokoly,... Pro provoz: Předvídatelnost a plánování pro nasazení a správu aplikace

Hodnotocentrické principy vedou k průběžnému učení se a aplikaci zkušeností získaných v předchozích iteracích Lepší návrh architektury zpravidla vyvstává až během vytváření systému Důležité je porozumět rozdílu mezi rozhodnutími, která musí padnout okamžitě a těmi, která mohou být učiněna až během pozdějších iterací Vytvořte základních architekturu, kterou potom můžete upřesňovat v pozdějších iteracích Shora dolů Zdola nahoru Požadavky, Qos, omezení Validace prostřednictvím spustitelných částí aplikace

Soustřeďte se na aktivity přinášející hodnotu, kterou je zákazník schopen ocenit Používejte techniky pro zvýšení kvality kódu od začátku vývoje Soustřeďte se na zlepšení procesů a činností, o nichž víte, že produkují kód špatné kvality Používejte nástroje pro zvýšení kvality kódu během celého vývoje

Špatně pochopené, špatně napsané, zastaralé požadavky Chyby vývojářů Špatně fungující zpětná vazba z testování „Rozjetí“ verzí (version skew) Míchání verzovaných a neverzovaných položek (konfigurace, databáze,...) Nedostatečná průhlednost vývojového procesu Např. reporty em

Okamžitá zpětná vazba o správnosti kódu usnadňuje vývoj navazujícího kódu Časté testování umožňuje sledovat metriky, jež jsou dobrým ukazatelem zdraví vývojového procesu Umožňuje včas odhalovat chyby vnesené novým vývojem, refaktorizací, opravou jiné chyby (regrese),...

Test Driven Development (TDD): Lze považovat za lehce extermistické pojetí Nejprve píšete selhávající testovací případy podle požadavků a teprve poté implementujete funkčnost Pomáhá dobrému porozumění požadavků Zachycuje nejasnosti a chyby včas: Dříve než se napíše nesprávný kód Zaručuje postup vpřed v měřitelných krocích Zabraňuje psaní kódu, který není nutný Zvyšuje celkovou kvalitu kódu

Statická analýza: Manuální nebo automatizovaná kontrola kódu pomáhá odhalit chyby vývojáře Měla by se provádět v definovaných fázích procesu vývoje: Před provedením check-inu Při automatickém buildu Dynamická analýza: Profilování běžícího kódu k odhalení výkonnostních slabých míst Pragmaticky – často se používá až při objevení problému

Databáze je spravována stejným způsobem jako kód „Offline“ vývoj databázového schématu „Master“ schématu databáze je v definičních souborech Změny nemají okamžitý efekt, provádí se explicitní nasazení změn do databáze Podpora generování dat a spouštění testů jednotek nad databázovou logikou Databáze využívá jednotný proces pro kvalitu

Bez automatického buildu není správa verzí v systému kompletní... Systém buildů by měl minimálně: Automaticky vytvořit vytvářený produkt Poskytnout maximum reálných a možných kontrol kvality Analýza kódu Spuštění testů (BVT, build verification tests)

BVT jsou testy běžící jako součást automatického buildu BVT odhalí, zda je build zralý na uvolnění k funkčnímu testování BVT by měly zahrnovat Veškeré automatizované funkční testy, které nevyžadují manuální zásah Většina testů jednotek – všechny, které je realistické pouštět automatizovaně Důležitou metrikou BVT je pokrytí kódu testy

Integrace systému správy změn a systému pro sledování postupu práce (scénářů, úloh, chyb) – ideálně obousměrně: Zajišťuje trasovatelnost změn – kdo, kdy a proč změnil tento soubor/tento řádek kódu Integrace systému správy změn a buildu Umožňuje automatické vytváření reportů o buildu: K jakým změnám v kódu došlo od posledního buildu? Jaké scénáře byly implementovány? Jaké chyby byly opraveny?

Posoudit hodnotu pro zákazníka Úloha testera Tester je advokátem zákazníka Podpořit vývoj produktu Úloha vývojáře

Snažte se, aby testování co nejdříve odhalilo velké problémy, teprve potom se soustřeďte na detailnější oblasti. Důležité problémy identifikujte co nejdříve Snažte se soustředit na oblasti největšího rizika, ostatním oblastem ale věnujte také přiměřenou pozornost (pokud by analýza rizik nebyla správná...) Soustředění na riziko Zkoušejte různé testovací přístupy a úhly pohledu Maximální rozmanitost Zjištění informace o kvalitě produktu je důležitější než absolutní hodnota čísel Vyhněte se nadužívání metrik

ChrisAnna Subsystem Subsystem2 06 Subsystem3 06 Subsystem4 06 Subsystem5 06 CELKEM10044

Scénáře jsou primárním představitelem hodnoty pro zákazníka Dobré otestování scénářů je nutnost Někdy může otestování identifikovat nové scénáře Testování scénářů může být automatizováno Výhody: Lze dosáhnout výrazně vyššího pokrytí testované funkčnosti Testy mohou být používány opakovaně bez dodatečného nákladu Nevýhody: Nákladné vytvoření Ještě nákladnější udržování Nemohou posoudit hodnotu pro zákazníka

Co nebylo testováno? Více odpovědí na jednu otázku: Které požadavky nebyly otestovány? Který kód nebyl otestován? Která možná selhání nás nenapadla? Závěr: Nespoléhejte se bezhlavě na metriky vytržené z kontextu

Pro každý check-in (pokud je to reálné): Nově implementovanou funkčnost a funkčnost zjevně zasaženou změnami Pro denní build Nově implementovanou funkčnost a funkčnost zjevně zasaženou změnami Pro iteraci: Zahrňte ad-hoc testování Pro finální produkt: Testujte splnění všech požadavků a kritérií