Agilní metodiky
Agilní manifest. Srovnání rigorózních a agilních metodik. Metoda Scrum. Extrémní programování.
Agilní manifest
Podepsán v únoru 2001. Díky lepšímu způsobu vývoje SW se dává přednost:
· Individualitě a komunikaci před procesy a nástroji
· Provozuschopnému SW před obsáhlou dokumentací
· Spolupráci se zákazníkem před sjednáním kontraktu (podpisem smlouvy)
· Reakci na změnu před plněním plánu
Rigorózní metodiky
Těžké metodiky, požadavky je možno specifikovat předem, jsou velmi podrobné, mají hodně formalit, předpokládají opakovatelnost procesů, jsou náročné
Př. OPEN, RUP, EUP, OOSP
Metodiky hodnocení SW procesů CMM model (capability maturity model).
Agilní metodiky
Vývoj s krátkými interacemi, zaměření na fungující SW, lidi jsou prvořadý faktor(spolupráce, komunikace), změny jsou vítány, automatizované testování.
Zákazník určuje a mění priority – odpovědnost přebírá on. Systém je vytvářen tak, aby byl tolerantní ke změnám.
Př. ASD(adaptive SW development), DSDM(Dynamic systems development method), FDD(feature-driven development), XP(extreme programming), Scrum, Lean Development, Crystal metodiky.
SCRUM
Nejznámější agilní metodika, týmy 4-15 lidí v jedné místnosti, délka interace 30 dní.
Dělí lidi na „Pigs“ a „Chickens“.
Pigs = osoby související přímo s vývojem aplikace – Product Owner(zodpovídá, co se bude implementovat), Scrum Master(řídí vývojáře, odstiňuje programátory od okolního světa).
Chickens = uživatelé projektu, manažeři, Stakeholders(lidé od zákazníka – připomínky zvenčí)
Product Backlog – obsahuje všechny scénáře, které systém zahrnuje(co všechno je možno v systému udělat).
Zásady scrumu
Zákaz práce přes čas – odpočinutý zaměstnanec pracuje lépe.
6h práce na sprintu(celá práce je rozdělena na určité části – sprinty), 2h práce na jiných úkolech.
Daily scrum – všichni krátce řeknou Scrum Masterovi, co včera dělali a co budou dělat dnes.
Extrémní programování (XP)
Automatizované testy
Testování má přednost před kódováním
Jednoduchý návrh
Refaktorizace
Párové programování
Společné vlastnictví kódu
Jednoduchý návrh redukuje čas nutný k testování. Neustálé testování redukuje čas dodání. Kódování a testování zároveň dává vývojářům a testerům lepší porozumění kódu. Automatizované testy dovolují vývojářům provádět refaktorizaci.