1 / 54

Agilní a rigorózní metodiky

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

tamera
Download Presentation

Agilní a rigorózní metodiky

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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ávata 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í metodikypro současné projekty nevyhovují • většina metodik je v angličtině

  3. 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

  4. Kategorizace existujících metodik

  5. 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

  6. 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

  7. 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

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

  9. 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

  10. Kritérium domény EAI Enterprise Application Integration BINBusiness Intelligence CRMCustomer Relationship Management ERPEnterprise Resource Planning SCMSupply Chain Management ECOe-commerce OISkancelářské systémy CTMContent Management WKFwokflow ELEe-learning

  11. 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

  12. Model zralosti SWCapability 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

  13. Ú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ů.

  14. 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ů

  15. 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í.

  16. Agilní metodikypraktiky místo procesů 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.

  17. 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

  18. Agilní metodiky osobní komunikace

  19. 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.

  20. 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.

  21. 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

  22. 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

  23. 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í

  24. 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

  25. 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

  26. 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

  27. 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.

  28. MetodikaFeature-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)

  29. 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).

  30. 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

  31. Procesy FDD

  32. 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

  33. SCRUM • framework pro řízení projektu • Pre-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

  34. 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ě

  35. 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

  36. 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í

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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í

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

  46. Agilní modelování – hodnotyodvozeny 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

  47. 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

  48. 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

  49. 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ů

  50. 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

More Related