Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi...
Transcript of Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi...
![Page 1: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/1.jpg)
CZJUG http://java.cz/jug
Agile Software Development
Agile Software Development
Jiri Fabianwww.jirifabian.net
![Page 2: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/2.jpg)
CZJUG http://java.cz/jug
O čem to bude● O metodologiích● RUP● Agile
– XP– Scrum
![Page 3: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/3.jpg)
CZJUG http://java.cz/jug
Co je softwarový vývoj● Umění?● Manufaktura?● Modelování?
![Page 4: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/4.jpg)
CZJUG http://java.cz/jug
Co je softwarový vývoj● Alistair Cockburn:
“Kooperativní hra invence a komunikace, jejímž primárním cílem je dodání software.”
● Hráči jsou lidé ne role– vlastní zájmy, motivace– různé znalosti– kultura, zvyky– neškálují – nejsou dokonalí
![Page 5: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/5.jpg)
CZJUG http://java.cz/jug
Metodologie● Headdy: “Tak to dělám já”● Pravidla hry
![Page 6: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/6.jpg)
CZJUG http://java.cz/jug
Atributy metodologii
● disciplína(XP) vs. tolerance (Crystal)● předvídatelnost (RUP) vs. adaptace (XP)● ohýbání● špatná vs. dobrá metodologie
![Page 7: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/7.jpg)
CZJUG http://java.cz/jug
Oblíbené metodologie● RUP● XP● Scrum● Waterfall● Crystal● Lean Software Development● Cowboy Coding● Home grown● Mix
![Page 8: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/8.jpg)
CZJUG http://java.cz/jug
Rational Unified Process● 1995 – Rational Software, dnes IBM● Ivar Jacobson● iterace vs. waterfall ● prediktivní – nejprve neprůstřelný design
![Page 9: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/9.jpg)
CZJUG http://java.cz/jug
RUP čtyřtakt● Incepční (inception)● Elaborační (elaboration)● Konstrukční (construction)● Dodání (transition)
● Milestones
![Page 10: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/10.jpg)
CZJUG http://java.cz/jug
RUP čtyřtakt
![Page 11: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/11.jpg)
CZJUG http://java.cz/jug
Vlastnosti● Heavyweight – popis celého procesu● role, work products (artefakty) a tasks (activity)● Nutno přizpůsobit● Vhodné pro junior týmy
![Page 12: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/12.jpg)
CZJUG http://java.cz/jug
Agile methodologies● iterativní● dodání software v nejkratší možné době● face 2 face komunikace● zákazník s developery v jednom týmu● minimum dokumentace (Agile Modelling)● vztah vůči heavyweight – cmd line tools vs. IDE
![Page 13: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/13.jpg)
CZJUG http://java.cz/jug
Historie● 90. léta – reakce na heavyweight● Agile Alliance (http://www.agilealliance.com)● The Agile Manifesto (2001) – základní principy
![Page 14: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/14.jpg)
CZJUG http://java.cz/jug
Agile Manifesto● pravidelné dodání použitelného software
– spokojenost zákazníka– KPI
● změna je život a je vítána● denní kooperace mezi funkcionálníky (zákazníky) a vývojáři● přímá komunikace – omezit dokumenty● pozornost věnována dobrému designu a technické zdatnosti
týmu● jednoduchost● samoorganizace týmů
![Page 15: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/15.jpg)
CZJUG http://java.cz/jug
Výhody● risk management – klidné spaní● nutnost neustálé komunikace (nevýhoda?),
sdílení znalostí● nižší nároky na počet členů v týmu ● podpora nepeněžních motivačních faktorů
– hrdost na tým, dosažené výsledky, kontribuci => radost z práce
![Page 16: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/16.jpg)
CZJUG http://java.cz/jug
Nevýhody● Výsledný design může kulhat● Minimum dokumentace● Nezvyklé metody vývoje● Úspěch stojí na množství senior developerů
![Page 17: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/17.jpg)
CZJUG http://java.cz/jug
Extreme Programming● vznik v polovině 90. let● Kent Beck, Ward Cunningham● Co je vlastně extrémní?
![Page 18: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/18.jpg)
CZJUG http://java.cz/jug
Principy XP● komunikace● jednoduchost – refactoring● feedback● courage - také díky XP socialismu● restecp
![Page 19: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/19.jpg)
CZJUG http://java.cz/jug
Hlavní praktiky XP● párové programování● TDD● plánovací hra● kontinuální integrace● krátké release cykly● programovací standardy● kolektivní vlastnictví kódu● jednoduchý design (hlavně, že to pracuje)● zákazník a my jsme jeden tým
![Page 20: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/20.jpg)
CZJUG http://java.cz/jug
Vhodné projekty XP● R&D, prototypy● maintenance projekty – troubleshooting● jakýkoliv T&M projekt
![Page 21: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/21.jpg)
CZJUG http://java.cz/jug
Scrum● 90. leta● Ken Schwaber, Jeff Sutherland● management proces
– původně pro XP, ale možné pro cokoliv
![Page 22: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/22.jpg)
CZJUG http://java.cz/jug
Principy Scrum● žádné týmové hierarchie● krátké iterace – sprints● backlog – seznam akcí pro danou iterací,
vlastníkem je tým● denní scrumy● plánovací session před každým sprintem● “heartbeat session” – retrospekce po každém
springu
![Page 23: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/23.jpg)
CZJUG http://java.cz/jug
Scrum tým● max. 7 lidí● nejlépe jedna místnost - osmóza● Scrum Master
– odklízení překážek– dbání na dodržování scrum principů– volen týmem– participace ve Scrum of Scrums– zkušenost se Scrumem– možnost certikace (nebo kuchařka Scrum
Checklist)
![Page 24: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/24.jpg)
CZJUG http://java.cz/jug
Denní Scrum● každé ráno● max 15 minut● odpověď na otázky:
– co jsem udělal– co budu dnes dělat– jaké mám problémy popř. na jaké zajímavosti jsem
přišel (krátce)● na konci
– dohoda na párech– detailnější adhoc diskuse
![Page 25: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/25.jpg)
CZJUG http://java.cz/jug
Plánování● Backlogs ● Product Backlog
– založený na user stories– priority– highlevel odhady dodané týmem
● Release Backlog– sestavuje product owner s týmem
● Sprint Backlog– detailní popis úkolů– burndown chart
![Page 26: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/26.jpg)
CZJUG http://java.cz/jug
Plánování● Plánovací sessions – 2 fáze
– I. sestavení release backlogu– II. sestaveni sprint backlogu
● Identifikace všech nezbytných akcí● Plánovací poker● Banka hodin● Ideální inženýrská hodina● Možný i descope
![Page 27: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/27.jpg)
CZJUG http://java.cz/jug
Vývoj – typické denní menu● Denní Scrum● Vývoj akceptačního popř. unit testu● Diskuse ohledně designu● Vývoj● Integrace● Update sprint backlogu
![Page 28: Agile Software Development · – KPI změna je život a je vítána denní kooperace mezi funkcionálníky (zákazníky) a vývojáři přímá komunikace – omezit dokumenty pozornost](https://reader036.fdocuments.net/reader036/viewer/2022090605/605a6ac750fd360aac74aa41/html5/thumbnails/28.jpg)
CZJUG http://java.cz/jug
Q&(maybe)A
???