Agilní a rigorózní metodiky

Slides:



Advertisements
Podobné prezentace
Podpora personálních procesů v HR Vema Jaroslav Šmarda
Advertisements

Stodůlky 1977 a 2007 foto Václav Vančura, 1977 foto Jan Vančura, 2007.
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
ARBES FEIS [BI] ARBES Technologies, s.r.o.
Stručný úvod do UML.
M A N A G E M E N T 3 Akad. rok 2009/2010, Letní semestr
11 Udržovatelnost a servisní logistika
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Podnikové informační systémy úvod
Zefektivňování, zvyšování výkonnosti a kvality Kaizen.
Informační systémy Analýza systému. Sestavení týmů a potvrzení téma projektu.
Efektivnost řídící práce
Student: Ing. Olga Minaříková školitel: doc.akad.soch. Miroslav Zvonek, PhD. srpen 2009.
Téma 3 ODM, analýza prutové soustavy, řešení nosníků
Přínosy metodik  Větší produktivita a kooperace týmů  Komunikační standard  Specializace projektových týmů  Nezávislost na konkrétních řešitelích 
METODOLOGIE PROJEKTOVÁNÍ
Násobíme . 4 = = . 4 = = . 4 = = . 2 = 9 .
1 Extreme programming v praxi Martin Junek, product manager
Agilní Softwarové Procesy
Metody zpracování vybraných témat (projektů)
Audit administrativních činností
11 Procesy a procesní řízení 22 Další charakteristiky procesu má svého vlastníka (osoba odpovídající za zlepšování procesu) má svého zákazníka (interního.
Softwarové inženýrství
VY_32_INOVACE_INF_RO_12 Digitální učební materiál
VY_32_INOVACE_ 14_ sčítání a odčítání do 100 (SADA ČÍSLO 5)
Dělení se zbytkem 6 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Dělení se zbytkem 5 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Lenka Fialová Martina Procházková Ondřej Soukup Martin Valenta Cyril Vojáček 1.
Čtení myšlenek Je to až neuvěřitelné, ale skutečně je to tak. Dokážu číst myšlenky.Pokud mne chceš vyzkoušet – prosím.
Aukro.cz – projektový management v e-commerce Tereza Kabrdová.
3. Životní cyklus a procesy projektu
Geo-informační systémy
Dělení se zbytkem 8 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Zásady pozorování a vyjednávání Soustředění – zaznamenat (podívat se) – udržet (zobrazit) v povědomí – představit si – (opakovat, pokud se nezdaří /doma/)
Troška idealismu nezaškodí.... celá řada přístupů metodika vývoje by se měla vždy přizpůsobovat konkrétním podmínkám nejedná se o normu, absolutní pravdu.
12. OPERATIVNÍ MANAGEMENT
Inovace výuky ve vazbě na požadavky Mezinárodních výukových standardů doc. Ing. Marie Pospíšilová,CSc. SVŠES.
11. Trendy ve vývoji aplikací, podporujících podnikové procesy
DĚLENÍ ČÍSLEM 7 HLAVOLAM DOPLŇOVAČKA PROCVIČOVÁNÍ
Tradiční metodiky vývoje softwaru
Metody modelování požadavků na IS Vývoj informačních systémů.
13AMP 9. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled ADA ADA Java Java.
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í.
Modelovací jazyk UML. Jazyk UML je víceúčelový modelovací jazyk, který byl vyvinut speciálně pro účely softwarového inženýrství. Obsahuje formalizovaný.
ITIL Information Technology Infrastructure Library.
1 Celostátní konference ředitelů gymnázií ČR AŘG ČR P ř e r o v Mezikrajová komparace ekonomiky gymnázií.
Agilní metodiky vývoje softwaru
Aplikace DVB-T Český Telecom, a.s.. 2 Agenda DVB-T MHP Platforma ČTc DVB-T MHP Platforma ČTc – aplikace Shrnutí cílů společnsti Český Telecom, a.s.
END 1.Přítelem 2.Druhem 3.Milencem 4.Bratrem 5.Otcem 6.Učitelem 7.Vychovatelem 8.Kuchařem 9.Elektrikářem 10.Instalatérem 11.Mechanikem 12.Návrhářem 13.Stylistou.
Možnosti modelování požadavků na informační systém
B. Miniberger, BIVŠ Praha 2009
DĚLENÍ ČÍSLEM 5 HLAVOLAM DOPLŇOVAČKA PROCVIČOVÁNÍ Zpracovala: Mgr. Jana Francová, výukový materiál EU-OP VK-III/2 ICT DUM 50.
INFORMAČNÍ SYSTÉMY Semestrální projekt 2013/2014 Podmínky udělení zápočtu Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení.
Program zahájení - Petr Pavlinec, KÚ role systémového integrátora - Martin Vimr, PH organizace projektu - Vladimír Kvarda, PH obsazení projektového týmu.
Přednáška č. 1 Proces návrhu databáze
Databázové modelování
Základní rozdělení činností v podnikové informatice
© Ing. V. Šebek, CSc. Řízení projektů a podnikových procesů 1/9 9. Tvorba modelů v procesně řízeném podniku  Způsoby modelování  Základní postupy a role.
Na cestě k ASP Jiří Voříšek VŠE - KIT publikováno: červen 2002.
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
Metodika řízení projektů
Základní problémy realizace eLearningového systému Roman Malo Ústav informatiky PEF MZLU v Brně.
Helios Orange - Implementace systému
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.
Agilní metodiky vývoje softwaru
Tradiční metodiky vývoje softwaru
Tradiční metody vývoje softwaru
METODOLOGIE PROJEKTOVÁNÍ
Základy projektování informačních systémů Jaroslav Šmarda
Místo lidských zdrojů ve znalostní ekonomice
Transkript prezentace:

Agilní a rigorózní metodiky přednáška IT_215 ing. Alena Buchalcevová

Metodiky vývoje, údržby a provozu IS/ICT problémy metodik je velké množství a nejsou jednotně popsány obtížně je lze srovnávat a vyhledat vhodnou metodiku mnohé metodiky se zaměřují jen na určité aspekty vývoje, jen na určité fáze živ.cyklu většinou jsou zaměřeny jen na vývoj nového SW tradiční rigorózní metodiky pro současné projekty nevyhovují většina metodik je v angličtině

Velké množství metodik objektivní důvody různé technologie vyžadují různé techniky organizace se liší firemní kulturou každý jedinec je jedinečný každý tým je jedinečný projekty se liší velikostí projekty se liší důležitostí snaha prezentovat se komerční důvody

Kategorizace existujících metodik Kritérium Kategorie/ vysvětlení zaměření metodiky globální projektové rozsah metodiky fáze – role - dimenze váha metodiky velikost metodiky x hustota metodiky [Cockburn] typ řešení vývoj nového řešení, rozšíření stávajícího řešení, integrace řešení, implementace typového řešení, užití řešení například formou ASP doména ERP, CRM, SCM, EAI,... přístup k řešení Strukturovaný, objektově orientovaný, RAD

Kritérium celý systém versus projekt globální metodiky metodiky IS v rámci celé organizace Enterprise metodiky např. MMDIS, Enterprise Unified Process (EUP), projektové metodiky zabývají se vývojem části IS – jeden projekt většina metodik

Kritérium rozsah metodiky pokrývající celý životní cyklus vývoje . např. MMDIS viz dále dílčí metodiky – zabývají se jen částí životního cyklu IS – např. jen návrh a implementace

Kritérium podrobnosti metodiky – váha metodiky těžké metodiky podrobný popis rigorózní lehké metodiky minimálně dostatečná metodika „barely sufficient“ Cockburn „a little bit less than just enough“ Highsmith agilní metodiky

Kritérium přístupu k vývoji strukturované metodiky RAD metodiky RAD nástroje, prototypování objektově orientované metodiky

Kritérium způsobu vývoje tradiční metodiky s vodopádovým životním cyklem metodiky pro iterativní a přírůstkový vývoj

Kritérium domény EAI Enterprise Application Integration BIN Business Intelligence SCM Supply Chain Management ERP Enterprise Resource Planning CRM Customer Relationship Management ECO e-commerce OIS kancelářské systémy CTM Content Management WKF wokflow ELE e-learning

Charakteristika rigorózních metodik těžké metodiky podrobné, hodně formalit, direktivní řízení předpokládají opakovatelnost procesů možnost definovat všechny požadavky na řešení předem příklady OPEN, RUP, EUP, OOSP metodiky pro hodnocení SW procesů (Software Process Assesment ) Capability Maturity Model CMM

Model zralosti SW Capability Maturity Model for Software označovaný zkratkou SW–CMM. vyvinut v Institutu pro softwarové inženýrství (Software Engineering Institute – SEI) za účelem hodnocení dodavatelů softwarových řešení pro ministerstvo obrany USA – v r. 1995 Integrační model zralosti (Capability Maturity Model Integration, CMMI) od r. 2000

Úrovně zralosti CMM Počáteční úroveň (initial) softwarové procesy jsou náhodné a chaotické organizace nemají stabilní prostředí pro vývoj a údržbu software, reagují pouze na vzniklé problémy. Opakovatelná úroveň (repeatable) organizace mají definovány a zavedeny postupy řízení projektu. softwarový proces je disciplinovaný Definovaná úroveň (defined) organizace má definovány, dokumentovány a standardizovány procesy pro řízení i softwarově inženýrské činnosti, které jsou navzájem integrovány v rámci celé organizace softwarový proces je standardní a konzistentní Řízená úroveň (managed) organizace má stanoveny detailní metriky softwarových procesů i kvality produktu softwarový proces je predikovatelný Optimalizovaná úroveň (optimizing) organizace má vytvořeny podmínky pro kontinuální zlepšování procesů.

Rigorózní metodiky pro mnohé současné projekty nevyhovují vycházejí z předpokladu, že : požadavky je možné specifikovat předem změnám se snažíme zabránit, jsou náročné velké množství meziproduktů ztrácí se cíl vývoje – vytvořit fungující SW odpovídající potřebám uživatelů expertem v rigorózních , procesně orientovaných metodikách koncem 80. a počátkem 90. let, si začal uvědomovat, že stále detailnější a specifické metodiky přetížené fázemi, kroky, úlohami a činnostmi (spolu s dokumenty, které je podporují) mají podstatné trhliny. Základem přístupu Scrum je přesvědčení, že většina metodik vývoje SW je postavena na špatném filosofickém základě. Vývoj SW není definovaný proces, jak rigorózní metodiky předpokládají, ale empirický proces. Empirický proces vyžaduje úplně odlišný styl řízení

Charakteristika agilních metodik společné principy: iterativní vývoj s velmi krátkými iteracemi, zaměření na fungující SW, který má hodnotu pro zákazníka, lidé jsou prvořadým faktorem – důraz na spolupráci a komunikaci, tolerantní ke změnám, automatizované testování.

Agilní metodiky praktiky místo procesů je popisován v manuálech, pohlíží na lidi jako na sekundární, zaměřuje se na explicitní (popsanou) znalost Praktika je, co se odehrává v realitě, soustředí se primárně na lidi, soustředí se na interní „tacit“ znalosti.

Agilní metodiky Hodnota pro zákazníka jestliže SW musí dodávat hodnotu pro zákazníka, kdo může nejlépe určit, jaká hodnota to je? vývojáři ne, ale zákazníci ano, přesun zodpovědnosti na zákazníka zákazník určuje a mění priority funkcí zákazník nevidí do budoucna, proto my, vývojáři musíme do systému zabudovat funkce a data , které by mohl zákazník v budoucnu potřebovat X je lepší vytvořit systém tolerantní ke změnám, který umí akceptovat změny v budoucnu

Agilní metodiky osobní komunikace

Spolupráce zákazníků a vývojářů Rigorózní metodiky postaveny na nedůvěře. Nevěřím ti, že uděláš práci správně, tak tě musím neustále sledovat a kontrolovat. Agilní metodiky vůdcovství a spolupráce - jsou formovány na důvěře a respektu. Věřím ti, že uděláš práci dobře, a tak budeme spolupracovat, abychom dosáhli výsledku.

Spolupráce zákazníků a vývojářů / 2 Rigorózní metodiky standardizují lidi v organizaci snaží se vykázat lidi do role zaměnitelné součástky čím větší projekty se realizují, tím více specialistů je třeba zapojit  Agilní metodiky využívají individualit a silných stránek lidí požadují integraci znalostí, stálá interakce a kooperace, sdílení znalostí v týmu, týmové řešení problému.

Manifest pro agilní vývoj SW podepsán v únoru 2001 Odhalili jsme lepší způsob vývoje SW, sami jej používáme a chceme pomoci i ostatním, aby jej používali. Z toho pohledu dáváme přednost: individualitám a komunikaci před procesy a nástroji provozuschopnému software před obsažnou dokumentací spolupráci se zákazníkem před sjednáváním kontraktu reakci na změnu před plněním plánu manifest je výsledkem schůzky ve SnowBird v Utahu, které se účastnilo 17 osobností z oblasti vývoje SW zpravidla autorů a zastánců tzv. Light metodik. Slovo light nemá jednoznačný význam, proto se začalo používat slovo agilní I když jde o významné osobnosti, přesto se v manifestu objevuje slovo uncovering, které naznačuje, že ne všechny odpovědi jsou zodpovězeny. Manifest obsahuje 4 deklarace hodnot, prvky na levé straně mají větší význam než prvky na pravé straně, to neznamená, že prvky na pravé straně by neměly existovat, ale je třeba si položit následující otázky - relativní význam ·        mohu mít úspěšný projekt. když dodám dokumentaci bez fungujícího systému? ·        mohu mít úspěšný projekt. když dodám fungující systém bez dokumentace? Když se podíváme na tyto dva koncové body, můžeme lépe uchopit relativní význam (důležitost). Ačkoli zde musí být rovnováha dokumentace - fungující Sw, smlouvy a spolupráce, odpovědnost a plánování, lidé a procesy, musíme vyznačit extrémy a koncové body, aby organizace, týmy i jednotlivci mohly nalézt svůj vlastní rovnovážný bod (těžko bude uprostřed) Manifest deklaruje 12 principů, které by měly být uplatňovány při vývoji SW

Které metodiky řadíme mezi agilní? Adaptive Software Development (ASD), Dynamic Systems Development Method (DSDM), Feature-Driven Development (FDD), Extreme Programming (XP), Lean Development, SCRUM, Crystal metodiky, Agile Modeling

Porovnání rigorózních a agilních metodik rigorózní metodiky agilní metodiky SW procesy lze popsat požadavky je možné definovat předem SW procesy nelze popsat předem jen hrubé požadavky předpoklady přesně definované procesy, činnosti, artefakty obsah jen generativní pravidla, praktiky a principy výzkumné projekty time-to-market menší týmy standardní projekty, velké projekty použití

Předpoklady agilního vývoje zákazník je součástí týmu a je k dispozici dle potřeby dokumentace a modely nehrají klíčovou roli při vývoji požadavky a prostředí se mění v průběhu vývoje přizpůsobování procesu vývoje vede k vyšší kvalitě produktu vývojáři mají zkušenosti potřebné k přizpůsobování procesů viditelnost procesů je jen při ukončení přírůstku hodnocení produktu je neformální cílem není znovupoužitelnost SW může být vyvíjen inkrementálně Tur, D. - France, R. - Rumpe, B.: Limitations of Agile Software Process

Omezení agilního vývoje omezená podpora pro distribuované prostředí vývoje týmy nejlépe v jedné místnosti, komunikace tváří v tvář omezená podpora subdodavatelů omezená podpora pro vytváření znovupoužitelných artefaktů omezená podpora pro vývoj ve velkém týmu omezená podpora pro vývoj kritických aplikací omezená podpora pro vývoj velkého komplexního SW - není architektura !! Tur, D. - France, R. - Rumpe, B.: Limitations of Agile Software Process

Více o agilních metodikách Buchalcevová, A.: Metodiky vývoje a údržby informačních systémů, Grada publishing, 2005, ISBN 80-247-1075-7

Extrémní programování XP hlavní praktiky automatizované testy testování před kódováním jednoduchý návrh refaktorizace párové programování společné vlastnictví kódu Jednoduchý návrh redukuje testovací práci. Neustálé testování redukuje čas dodávky. Prokládání kódování a testování dává vývojářům a testerům lepší porozumění kódu. Automatizované testy dovolují vývojářům provádět refaktorizaci.

Metodika Feature-Driven Development (FDD) přináší výhody agilního vývoje, ale staví na modelování autoři Jeff De Luca a Peter Coad je založena na iterativním vývoji, který je řízen užitnými vlastnostmi produktu (feature-driven)

Praktiky FDD doménové objektové modelování (Domain Object Modeling) diagram tříd UML, který zahrnuje nejdůležitější typy objektů v problémové doméně a vztahy mezi nimi vývoj podle užitných vlastností (Developing by Feature), vlastnictví tříd (Individual Class Ownership), týmy pro užitné vlastnosti (Feature Teams), inspekce (Inspections) pravidelné buildy (Regular Builds), řízení konfigurací (Configuration Management), reporting/viditelnost výsledků (Reporting/Visibility of Results).

Vývoj podle užitných vlastností (Developing by Feature) užitná vlastnost(feature) malá funkce (realizovatelná během 2 týdenní iterace) s hodnotou pro zákazníka vyjádřená ve formátu <akce> <výsledek> <objekt> např. vypočítat celkovou sumu prodeje

Procesy FDD

SCRUM vývoj SW není definovaný proces, který je možné přesně popsat a opakovat, ale empirický proces empirický proces vyžaduje odlišný styl řízení - vyžaduje konstantní monitorování a adaptaci

SCRUM framework pro řízení projektu Pre-sprint Sprint Post-sprint seznam užitných vlastností backlog definování cíle sprintu Sprint v rámci sprintu se nesmí měnit priority Scrum meetings Post-sprint zhodnocení posunu, předvedení zákazníkovi

SCRUM meetings umožňují monitorovat stav, konají se ve stejný čas na stejném místě trvají méně než 30 minut (cílem je 15 minut) vede je Scrum master účastní se jich všichni členové týmu (vývojáři, uživatelé , testeři,..) navštěvují je manažeři, aby věděli o stavu, ale aktivně se neúčastní slouží ke zjištění problémů, ale ne k jejich řešení každý účastník musí zodpovědět 3 otázky co udělal od poslední scrum porady co bude dělat do příští scrum porady jaké překážky mu stojí v cestě

Agilní modelování Scott Ambler lehká metodika pro efektivní modelování postavená na prověřených modelovacích technikách jde o kolekci praktik - doporučení, jak efektivně modelovat

Modelování modelování základní částí vývoje SW ať v lehkých nebo těžkých metodikách dva primární důvody, proč modelovat: abyste pochopili podstatu toho, co vytváříte, abyste mohli komunikovat v týmu je bohužel obětí mýtů a nepochopení

Mýty o modelování 1. Modelování je vždy svázáno s dokumentací model je abstrakce, která popisuje jeden nebo více aspektů problému a možné řešení problému tradičně jsou modely chápány jako diagramy a odpovídající dokumentace Realita nevizuální artefakty jako CRC karty, textový popis byznys pravidel jsou považovány také za modely při modelování nejde o model jako takový, ale o proces modelování většina modelů není součástí oficiální dokumentace systému, ale některé modely je dobré uchovat - persistentní modely

Mýty modelování 2. Je možné vše namodelovat předem a správně snaha namodelovat vše předem a správně a zmrazit požadavky před začátkem kódování Realita nemá smysl modelovat ve všech podrobnostech programátoři příliš neuznávají modely základem vývoje SW je iterativní přístup - trochu modelování, trochu kódování, trochu testování a hlavně nasazení fungující verze SW a zpětná vazba od zákazníka

Mýty modelování 3. Modelování je spojeno s rigorózními metodikami Realita je možné modelovat agilním způsobem – používat jednoduché modely a jednoduché nástroje

Mýty modelování 4. Při vývoji softwaru je třeba zmrazit požadavky Při zmrazení požadavků na začátku životního cyklu nejspíš dodáte to, co bylo požadováno, ale pravděpodobně ne to, co je třeba. Realita dochází ke změnám, mění se požadavky protože se mění byznys priority protože zákazník po dodání části systému jej lépe pochopí lepší než zmrazit požadavky a riskovat neúspěch je uchopit změnu a odpovědět na ni

Mýty modelování 5. Návrh je vytesán do kamene Realita nikdo, ani nejlepší návrhář není dokonalý a stejně tak jeho dílo, nemá smysl fixovat chyby pokud nechceme zmrazit požadavky, není možné zmrazit návrh návrh je hotov, až po dodání kódu

Mýty modelování 6. Při modelování je nutné používat CASE nástroj který nejlépe zachytí všechny aspekty modelu a zajistí konzistenci mezi modely Realita daleko efektivnější je vytvářet jednoduché modely, které zachycují jen podstatné informace a používat jednoduché nástroje

Mýty modelování 7. Modelování je ztráta času častý názor nových vývojářů, kteří se orientují jen na kódování Realita často se produktivita vývojáře zvýší náčrtkem diagramu, vytvořením prototypu UI atd. produktivní vývojáři modelují před psaním kódu

Mýty modelování 8. Základem je datové modelování datová komunita má politickou sílu Realita datové modelování je důležitý, ale sekundární úkol modelování

Mýty modelování 9. Všichni vývojáři umí modelovat umění modelovat vyžaduje léta zkušeností

Agilní modelování – hodnoty odvozeny z hodnot Extrémního programování komunikace mezi vývojáři, uživateli, projekt manažery, vedením, modely jednoduchost zpětná vazba odvaha skromnost umět si přiznat, že nevím vše a že ostatní mohou přidat hodnotu

Agilní modelování – principy primárním cílem je fungující software sekundárním cílem je umožnit další rozvoj projektu obsah je mnohem důležitější než reprezentace jednoduchost komunikace modelovat za určitým účelem více modelů znát své modely

Agilní modelování – principy / 2 přizpůsobení metodiky maximalizovat výnosy z investic otevřená komunikace učit se od druhých důraz na kvalitu rychlá zpětná vazba uchopit změnu inkrementální změny cestovat nalehko

Agilní modelování – praktiky aktivní účast investorů používání standardů modelování využívání vzorů používání správných artefaktů kolektivní vlastnictví testovat modely paralelní vytváření různých modelů jednoduchý obsah jednoduché zobrazení modelů

Agilní modelování – praktiky / 2 modelování v malých přírůstcích modelování pro komunikaci modelování pro porozumění modelování s druhými odstranění dočasných modelů veřejné vystavení modelů formalizace požadovaných modelů přechod na jiné artefakty

Agilní modelování – praktiky / 3 testování modelů kódem znovupoužití existujících zdrojů úprava jen, když je to nezbytné používání nejjednodušších nástrojů

Agilní model „just barely good enough“ plní svůj účel je pochopitelný je dostatečně přesný je dostatečně konzistentní je dostatečně detailní přináší kladnou hodnotu je co možná nejjednodušší

Agilní modelování lehká metodika pro efektivní modelování postavená na prověřených modelovacích technikách jde o kolekci praktik - doporučení, jak efektivně modelovat je možné ji použít v rámci jiných metodik (RUP, XP, SCRUM, FDD,...

Agilní modelem řízený vývoj Agile Model Driven Development AMDD