Agilní metodiky a vývojové procesy

Podobné dokumenty
SCRUM představení.

Řízení reálných projektů, agilní metodiky

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

Agilní metodiky vývoje softwaru

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

Agile Software Development

Návrh softwarových systémů - úvod, motivace

Seznam.cz. Tomáš Pergler. najdu tam, co neznám!

Ročníkový projekt. Jaroslav Žáček

TREND POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE

AGILNÍ METODIKY VÝVOJE SOFTWARE

End-to-end testování. 26. dubna Bořek Zelinka

Zuzana Šochová MFF Modelování a realizace softwarových projektů

Softwarový proces. Bohumír Zoubek, Tomáš Krátký

Ročníkový projekt. Jaroslav Žáček

programátor vs. vývojář

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

4IT445 - AGILNÍ VÝVOJ WEBOVÝCH APLIKACÍ AGILNÍ METODIKY VÝVOJE SW ING. JAN ČERNÝ

Testování Java EE aplikací Petr Adámek

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

Metodika analýzy. Příloha č. 1

Co je to SCRUM! FRAMEWORK vs METODIKA. Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily?

Základy analýzy. autor. Jan Novotný února 2007

Agenda. Docházka Odhadování Neohlášený test Vedení projektů Historie projektů

Dotazy na event #E256

Návrh softwarových systém. Návrh softwarových systémů

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

Výběrové řízení. Informační systém Autoklubu ČR. Autoklub České republiky. Strana 1 z 8

Agilní metodiky a techniky. analýza a vývoj IS

Novinky v UML 2.5 a agilní modelování

Návrh IS - UML. Jaroslav Žáček

PRŮZKUM AGILNÍHO ŘÍZENÍ V ČR 2013

Testování softwaru. 10. dubna Bořek Zelinka

Softwarový proces Martin Hlavatý 4. říjen 2018

Zkušenosti nejen z provozu Portálu občana. Jan Vlasák NAKIT Miroslav Vacula Jihomoravský kraj Václav Koudele - Microsoft

Návrh IS - UML. Jaroslav Žáček

Analýza a Návrh. Analýza

Agilní metodiky Agilní Jan Smolík

Týmy SiTD. M. Studeníková E.Pařenicová. E. Hesounová E. Benková K. Hubáček L. Juráňová T. Vojkůvka P. Říha

Agilní přístupy k vývoji SW. Jaroslav Žáček

Mib:S4Road přechod k SAP S/4HANA. Jiří Palát

Životní cyklus vývoje SW. Jaroslav Žáček

2. Začlenění HCI do životního cyklu software

Video natáčení / střih

VOIPEX Pavel Píštěk, strategie a nové Sdílet projek ts y práv, I né PEX inf a.s orm. ace se správnými lidmi ve správný čas

Vedení projektů, Odhadování, historie

KATALOG SLUŽEB NÁSLEDNÉ PODPORY

Prezentace 2. Slide 1. Slide 2. Slide 3. Slide 4. Prezentace pdf. nazev projektu jmena atd.. Obsah

Analytická specifikace a její zpracování

SOFTWAROVÉ INŽENÝRSTVÍ 1

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Podnikové informační systémy

Vývoj informačních systémů. Přehled témat a úkolů

Umí HR držet krok s byznysem (zkušenosti z agilního řízení)

Seznámení s přípravou platformy pro zajištění služeb dodávaní dokumentů včetně MVS: ZÍSKEJ

ové kampaně Byznys CRM s.r.o.

Petr Náhlovský, Servodata a.s. Michal Oškera, AUKRO s.r.o. IT PROJEKT ROKU 2017

Projektové řízení. Ing. Miroslav Žilka, Ph.D.

Případová studie. Partners Financial Services a.s.

Životní cyklus produktu (IS / IT služby) Životní cyklus projektu Životní cyklus řízení projektu. Vývoje produktu Implementace produktu

edice Windows 10 je pro vás nejvhodnější? Firemní prostředí Kancelářské a uživatelské prostředí Správa a nasazení Home Pro Enterprise Education

Informační systémy ve strojírenství

Rychlá a výkonná příprava zakázek určených pro velkoformátový tisk

Vývoj řízený testy Test Driven Development

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

Příloha č. 2. Charta projektu plné znění (pro MŠMT/ČŠI a příspěvkové organizace zřízené MŠMT)

XINF1. Jaroslav Žáček

Úvod do softwarového inženýrství a týmového vývoje

PŘÍPADOVÁ STUDIE ŘEŠENÍ DATOVÉHO ÚLOŽIŠTĚ S REPLIKACÍ POUŽITÉ ŘEŠENÍ: DELL EMC STORAGE, SERVER, NETWORKING A SLUŽBY IT AWACS. Kateřina, marketing, DNS

Agilní řízení projektů v praxi. Daniel Jerman

Vývoj informačních systémů. Přehled témat a úkolů

Vzdálená správa v cloudu až pro 250 počítačů

Seznámení s přípravou platformy pro zajištění služeb dodávaní dokumentů včetně MVS: ZÍSKEJ

Komunikace mezi businessem a IT

Jsme firma, která už působí na trhu několik let. Za tu dobu jsme nasbírali

Studie webů automobilek

Odbor informatiky a provozu informačních technologií

Essox: Upgrade systému Microsoft Dynamics CRM

Projektový informační systém. Řízení obchodu v Navigu

Přípravné činnosti projektu. Mgr. Lenka Svrčinová Ing. Jan Ministr, Ph.D.

Výkonnostní marketing velkých značek. Jan Jelínek

Komunikační strategie a plán rozvoje portálu portal.gov.cz

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Dobré UX jako nejlepší marketingový nástroj mobilních aplikací. Vladimír Korbel

Aktuální otázky provozu datových skladů PAVEL HNÍK

POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ

Testování SW produktů. Jiří Sochor, Jaroslav Ráček 1

Extrémně silné zabezpečení mobilního přístupu do sítě.

Obsah. Zpracoval:

Hodnotocentrické metodiky

Jednotný NIS Prezentace k zahájení projektu pro Radu kraje Vysočina. Projektový manažer - Ing. Ivan Sokolov, Ph.D.

CobiT. Control Objectives for Information and related Technology. Teplá u Mariánských Lázní, 6. října 2004

POČÍTAČE A PROGRAMOVÁNÍ

Projektový informační systém. Projekty opravdu efek8vně!

KATALOG ŘEŠENÍ ELVAC SOLUTIONS

Heineken Slovensko. První FMCG společnost na Slovensku s online CRM. Případová studie

Zavedení UX do organizace

SOFT-ENG ACADEMY 2017/2018

Nasazení jednotné správy identit a řízení přístupu na Masarykově univerzitě s využitím systému Perun. Slávek Licehammer

Testování software. Jaroslav Žáček

Transkript:

Agilní metodiky a vývojové procesy

Co je agilní vývoj Primárně iterativní přístup Například sprinty Rychlá a pružná reakce na trh Požadavky na změny Opravy chyb Využití nových technologií Agilní vývoj se hodí tam kde se předpokládá dlouhodobý rozvoj

Agilní manifest Jednotlivci a interakce před procesy a nástroji Fungující software před vyčerpávající dokumentací Spolupráce se zákazníkem před vyjednáváním o smlouvě Reagování na změny před dodržováním plánu Jakkoliv jsou body napravo hodnotné, bodů nalevo si ceníme více.

Role v agilním týmu Product owner = Produkťák Sbírá podklady od ostatních na vylepšení produktu nebo vymýšlí vlastní Připravuje zadání Vyhodnocuje business cíle Scrum master Dohlíží na procesy Ochraňuje tým před vnějším světem Tým by se o sebe měl ideálně starat sám Po nějaké době už by Scrum master neměl být potřeba

Životní cyklus feature - přehled Zadání Zadání Plánování Vývoj Předání Spuštění Vyhodnocení Plánování Vývoj Předvedení Spuštění Vyhodnocení

Zadání

Vždy se ptejte proč danou feature děláme Nejen ve Scrum metodice se doporučuje tato forma zadání (feature, story, ) Příklad KDO - pro koho story děláme CO - co je obsahem story PROČ - ujasnění, proč story dělám Nestane se, že vytváříme něco jen tak Vývojářům to pak pomůže s pochopením problému a mohou přijít s vlastním návrhem na vylepšení Uživatel chce mít možnost zobrazit profil jiného uživatele, aby zjistil jeho kontaktní údaje

Zákazníka zajímá viditelná změna produktu Nová feature by měla být prezentovatelná Velká zadání nerozdělujte po vrstvách (DB, design, back-end, front-end, ) Velká zadání rozdělte po uživatelských vlastnostech

Vývojáři nedokáží odhadovat celý projekt A menší zadání se vývojářům i lépe odhadují Více menších úkolů se dobře doplňuje s iterativním přístupem Malé zadání se rychle odhadne, vyvine, otestuje Lehce na něj navážeme s dalším úkolem

Zadání nemusí být zbytečně podrobné Pokud správně rozdělíme zadání na malé celky, není nutné psát rozsáhlá zadání Díky PROČ, zná motivaci úkolu i vývojář a v drobných nejasnostech dokáže improvizovat Pokud něco není jasné, je nejlepší se zeptat Ideálně osobně, pokud je tu ta možnost

Nedělat featury dokonalé, ale tak aby se na nich dalo stavět Nemusíme tvořit dokonalé podrobné zadání Lepší je zkusit udělat prototyp a postupně jej vylepšovat Řešení ale musí být rozšiřitelné Prototyp neznamená špatnou implementaci, ale produktově minimalizované zadání

Plánování

Feature hodnotíme pomocí bodů určujících složitost a ne čas Časový odhad je velmi nepřesný a každý jej má jiný Ale na tým je potřeba se dívat jako na celek Snažíme se úkoly ohodnotit vzájemně mezi sebou Až na základě zkušenosti dokážeme predikovat budoucí rychlost týmu Veškeré odhady vychází z průměrů

Výhody hodnocení pomocí bodů Stabilita Není nutné odhady časem dělat znovu Rychlost Po zaškolení jsou odhady velmi rychlé Nezávislé na kvalitě programátora V porovnání s ostatními úkoly bude každý hodnotit stejně Plánování do budoucna Na základě minulosti, zle odhadnou rychlost v budoucnu Není nutné řešit agendu Automaticky zahrnuje i průběžné schůzky atd.

Hodnocení featur provádí tým společně Na schůzce Grooming přednese produkťák zadání a vývojáři jej ohodnotí Je zde prostor na doplňující otázky a vyjasnění zadání Hodnocení by mělo být rychlé Nemusí být naprosto přesné Díky zkušenostem dokáže tým hodnotit úkoly velmi rychle Nejdůležitější schůzka vzhledem k plánování

Prioritu určujeme podle Měli bychom znát business přínos Výdělek Úspora nákladů Legislativní podmínky Závazky vůči obchodním partnerům (deadline) Známe složitost Lze určit poměr CENA / VÝKON

Analyzuje a plánuje se jen to nejnutnější To neznamená, že analyzujeme nedostatečně Než se něco vyvine, je to finálně dostatečně analyzováno Ale je zbytečné analyzovat příliš vzdálenou budoucnost Nestane se, že bychom analyzovali zbytečně podrobná analýza priorita úkolů odhad náročnosti přesné zadání dílčí podúkoly střední analýza priorita úkolů odhad náročnosti zběžná analýza priorita úkolů nyní budoucnost

Díky zkušenosti z minulých sprintů dokážeme rychle odhadnout práci na další Známe hodnotu úkolů, které máme implementovat Známe průměrný počet bodů, které stihneme za sprint Ale je to jen odhad Nezle nutit vývojáře k něčemu, co tvrdí, že nestihnou

Vývoj

Agilní vývoj Sledujeme stejné mechanismy jako při přípravě zadání Postupujeme iterativně, po menších logických celcích, které ale 100% fungují Opět upřednostňujeme vývoj po funkčních celcích - nikoliv po technologiích

Infrastruktura Lokální vývoj Jak dlouho trvá zaškolení nováčka? Mohu si postavit můj soukromý funkční systém? Kolik času se stráví odhalováním chyb v konfiguraci? Sdílené prostředky Odkud vezmu testovací data? Virtualizace lokální cloud

Automatické testy Psaní automatických testů není zbytečné zdržování vývoje, ale přímá reakce na požadavky produktu Optimalizace ceny změny produktu Kolik nás stojí zkontrolovat, že náš produkt funguje? Jak vlastně zkontrolujeme že náš produkt funguje?

Automatické testy unit integrační akceptační explorativní

Refactoring úprava kódu beze změny funcionality perfektní kód bez testů přirozeně zahnívá špatný kód s testy se přirozeně vylepšuje

Automatizace opakujících se úkolů Kvalitní automatizace nám zlevní režii vývoje. Vývojové prostředí Spouštění testů Continuous integration Příprava release Continuous deployment (delivery)

Automatizace opakujících se úkolů

Týmová koordinace Verzovací systém Coding standard Code review Extrémní programování Párové programování Test driven development

Předvedení

Testovací prostředí Zvláštní prostředí na hraní pro produktového managera Mělo by vždy fungovat - tedy hraje si tam produkťák, nikoliv vývojář Díky automatizaci můžeme mít testovacích prostředí víc (klidně jedno pro každou novou feature)

Důležitá je každodenní komunikace Produktově daný úkol schvaluje (tzv. spálí) produkťák Nejlépe na Testovacím prostředí Je ale vhodné, aby vývojáři s produkťákem průběžně komunikovali už při vývoji Průběžně mu ukazovali co mají (třeba i na svém stroji) Ptali se ihned na nejasnosti

Spuštění

Nasazení do produkce Vše by mělo být vyzkoušeno na předchozích prostředí (zejména na testovacím) Nemůžeme chybu úplně vyloučit, tedy je třeba mít připraven plán co dělat v případě chyby rollback postupné nasazování nasazování mimo špičku

Kontrola spuštěné produkční aplikace Sledování logů Sledování výkonnostních charakteristik Využití nedestruktivních akceptačních testů

Marketing Je důležité dát světu vědět, že jsme přišli s nějakou novinkou visuální průvodce novou funkcionalitou changelog newsletter

Vyhodnocení

Kontrola business cílů Každá funkcionalita má mít nějaký měřitelný přínos. Po vyvinutí nové funkce je třeba zkontrolovat že tento přínos byl naplněn To že je aplikace po spuštění funkční a správně plní zadání ještě nemusí znamenat, že přináší očekávaný zisk

Kontrola business cílů Používají uživatelé novou funkcionalitu? a/b testy Je nová funkcionalita výkonnější než původní? měření Google Analytics, vlastní metriky Vývojem financování funkcionality nekončí něco stojí provoz hardware údržba sw - nová funkcionalita může být komplikovaná na pozdější úpravy Někdy může být výhodnější přiznat neúspěch

Jak rozvíjet aplikaci dál Sledování nasazené aplikace je jedním z faktorů, které ovlivňují skladbu další iterace vývoje. Funkcionalita se osvědčila? - Můžeme dále rozvíjet a investovat nikdo ji nepoužívá? - Můžeme zlepšit marketing zákazníci ji používají, ale nevydělává? - Nejlépe upravit nastavení obchodních parametrů

Shrnutí Zadání - Plánování Máme seznam formálních story Plánování - Vývoj Vývojáři a produkťák jsou ve shodě v tom co se bude v následující sprintu dělat Vývoj - Předvedení Na Testovém prostředí je funkční otestovaná aplikace Předvedení - Spuštění Nová verze je připravena k instalaci na Produkci Spuštění - Vyhodnocení Novinky na Produkci funguje bez chyb a máme podklady pro vyhodnocení

KONEC Kontakty Stažení prezentace: http://www.masicek.net Jan Štěpánek: stepanek.j@gmail.com Viktor Mašíček: viktor@masicek.net