AGILNÍ METODIKY, JAK DÁL?

Podobné dokumenty
Stav používání agilních metodik v ČR

Jakou metodiku použít pro

Normy kvality softwaru a jejich podpora v metodikách budování informačních systémů

Metodický rámec budování IS/ICT

AGILNÍ METODIKY A SPRÁVA POŽADAVKŮ

ČÍM MOHOU PŘISPĚT NEJZÁMĚJŠÍ AGILNÍ METODIKY KE ZLEPŠENÍ VÝVOJOVÉHO PROCESU?

Agile Software Development

Metodiky pro efektivní vývoj software (agilní programování)

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

Agilní modelování. ing. Alena Buchalcevová, Ph.D. Katedra informačních technologií VŠE Praha nám. W.Churchilla 4, Praha 3

Vývoj IS. Vladimíra Zádová, KIN, EF TUL- ISN3

XINF1. Jaroslav Žáček

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

Vývoj informačních systémů. Jak vyvíjet v týmu

METODIKA FEATURE-DRIVEN DEVELOPMENT NEOPOUŠTÍ MODELOVÁNÍ A PROCESY, A PŘESTO PŘINÁŠÍ VÝHODY AGILNÍHO VÝVOJE ing. Alena Buchalcevová, Ph.

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

Výběr vhodné metodiky vývoje softwaru pro společnost HOUR, spol. s r.o.

Citace článku. Alena Buchalcevová, Jan Kučera. Katedra informačních technologií VŠE Praha nám. W.Churchilla 4, Praha 3

Semestrální práce ke kurzu 4IT421 Zlepšování procesů budování IS. Bc. Zuzana Čecháková, cecz00. Six Ways Agile Can Turn Static

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

Agilní metodiky Agilní Jan Smolík

Průzkum stavu procesního řízení ve veřejné správěčr a SR

Katedra informačních technologií VŠE Praha nám. W. Churchilla 4, Praha 3 buchalc@vse.cz PODNICÍCH. 1. Úvod

Hodnocení metodik vývoje informačních systémů z pohledu testování

Agilní metodiky vývoje softwaru

PROJEKTOVÁNÍ INFORMAČNÍCH SYSTÉMŮ Metodický list č. 1

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

Jaký má být dnes vývoj softwaru - business driven, test driven, model driven, architecture driven nebo service oriented?

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

ROZVOJ ICT A PDA ZAŘÍZENÍ THE DEVELOPMENT OF ICT AND PDA DEVICES Jiří Vaněk

3. Očekávání a efektivnost aplikací

Zpráva o Digitální cestě k prosperitě

Hodnotocentrické metodiky

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

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Cíle a metodika průzkumu

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Katedra informačních technologií

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

EXIN Agile Scrum Foundation Příručka ke zkoušce. Vydání

METODICKÝ RÁMEC IS/ICT

Informační predátoři, aneb, jak se účinně bránit. PhDr. Jindra Planková, Ph.D. Ústav informatiky, FPF Slezská univerzita v Opavě

Model procesů malých softwarových firem: ověření dotazníkovým průzkumem

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

Podnikatelská informatika obor šitý na míru

Ministudie: Content marketing v B2B v ČR a USA, 2013 Téma na přání účastníků B2B monitoru

Disciplined Agile Delivery (DAD) Framework

Agile. nejžádanější způsob vývoje software. Tomáš Tureček. Business consultant, Lean&Agile coach Tieto

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

Cíle a architektura modelu MBI

K výsledkům průzkumu zaměřeného na kvalitu podnikové informatiky

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

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

2. Podnik a jeho řízení

INFORMAČNÍ SYSTÉMY , Ing. Jiří Mráz

Efektívne projektové riadenie v zohratom tíme

SYSTÉMY ŘÍZENÍ PODNIKU OKRUHY OTÁZEK KE ZKOUŠCE Z PŘEDMĚTU MPH_SYRP V magisterském studiu

Okruhy ke státním závěrečným zkouškám Platnost: od leden 2017

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

software pro embedded systémy a mobilní zařízení

Co se chcete dozvědět?

Informační systémy ve výuce na PEF Information Systems in teaching at the FEM

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

Aktuá lní př ehodnocení MSF foř CMMI dle METES

Vysoká škola ekonomická Fakulta informatiky a statistiky

Informační systémy. Jaroslav Žáček

MORAVSKÁ VYSOKÁ ŠKOLA OLOMOUC

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

Dnešní témata Informační systém, informační služba Podnikový informační systém

SCRUM - agilní metoda pro vývoj softwaru

METODIKY VÝVOJE SOFTWARE STUDIJNÍ OPORA PRO KOMBINOVANÉ

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

RUP - Motivace, principy. Jaroslav Žáček

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK

Realizace klientsky orientovaných služeb veřejné správy

Projektové řízení jako základ řízení organizace

Metodika Disciplined Agile Delivery - charakteristika, současný stav

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

2 Životní cyklus programového díla

Marketingové aktivity B2B firem a struktura marketingových rozpočtů Jaro 2014

Návrh softwarových systémů - architektura softwarových systémů

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

AGILNÍ MODELOVÁNÍ A METODA BORM

Smart akcelerátor Královéhradeckého kraje

Obsah. Část I Řízením k inovacím 1. 1 Klíčové otázky při řízení inovací 3. 2 Inovace jako řídicí proces 63 III

Obsah. ČÁST I Základy návrhu webových stránek. Kapitola 1 Zákaznicky orientovaný návrh webu 19. Jak ze vzorů pro návrh webu vyzískat co nejvíc 33

CVIČENÍ Z PŘEDMĚTU MANAGEMENT I

Novinky v UML 2.5 a agilní modelování

Custom Code Management. Přechod na S/4HANA

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

Implementace SOA v GE Money

Semestrální práce ke kurzu 4IT421 Zlepšování procesů budování IS. The Disciplined Agile (DA) Framework

Primo Central. Martin Vojnar MULTIDATA Praha s.r.o.

STRATEGIE ROZVOJE SLUŽEB ICT VE ŠKOLE

AGILNÍ METODIKY VÝVOJE SOFTWARE

Efektivnější systém pro vyřizování požadavků na IT v ČMSS

7. ROČNÍK KONFERENCE , FEL ZČU v PLZNI VÍTÁME VŠECHNY ÚČASTNÍKY!

Zvyšování výkonnosti firmy na bázi potenciálu zlepšení

Porovnání průzkumů agilních metodik. VersionOne a českého průzkumu firmy Etnetera

Analýzy konkurence - teorie:

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

Transkript:

AGILNÍ METODIKY, JAK DÁL? Alena Buchalcevová Katedra informačních technologií VŠE Praha, buchalc@vse.cz ABSTRAKT: Agilní metodiky mají za sebou již sedm let své existence, vyzrávají a začínají být skutečně vnímány jako alternativní a úspěšný způsob vývoje softwaru. Výsledky celosvětových průzkumů ukazují, že agilní přístupy v praxi fungují a jsou akceptovány. Situace v ČR je poněkud jiná. Většina firem v Česku veřejné metodiky nepoužívá a rozsah znalostí o agilních metodikách je v praxi nízký. Aby bylo možné agilní metodiky použít, musí být splněny některé základní předpoklady (zákazník součástí týmu, tým maximálně 8 vývojářů v jedné místnosti apod.). V posledních letech probíhají výzkumy, které obohacují agilní metodiky o nové praktiky, umožňující použít agilní přístupy i pro projekty, které nesplňují základní předpoklady použití agilních metod. Dalším trendem je podpora agilního vývoje nástroji, jde zejména o nástroje zaměřené na podporu nového způsobu řízení projektu, kontinuální integraci a sestavování produktu a automatizované testy. KLÍČOVÁ SLOVA: metodika vývoje softwaru, agilní metodiky, inovace agilních metodik, nástroje pro agilní vývoj 1 ÚVOD Současná ekonomika je stále více orientovaná na znalosti, je charakterizována kratším životním cyklem produktů, důrazem na inovace a rychlým technologickým pokrokem. Svět kolem nás se mění a je třeba na změny nejen reagovat, ale dokonce změny vyvolávat, a tak získat náskok před konkurencí. Z pohledu IS/ICT to znamená, že jak při vývoji IS, tak při jeho provozu je třeba do systému promítat změny. Tradiční rigorózní metodiky vývoje softwaru přestávají v takových podmínkách vyhovovat a začínají se stále více prosazovat agilní metodiky. Jedná se o různé metodiky, které vznikaly od druhé poloviny 90. let a které jsou založeny na myšlence, že jedinou cestou, jak prověřit správnost navrženého systému, je vyvinout jej co nejrychleji, předložit zákazníkovi a na základě zpětné vazby jej upravit [3]. Každá z agilních metodik je svým způsobem specifická, ale všechny jsou postaveny na stejných principech a hodnotách, které byly v roce 2001 definovány v Manifestu agilního vývoje softwaru [7]: Odhalili jsme lepší způsob vývoje softwaru, 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 softwaru 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. Mezi agilní metodiky byly od počátku řazeny následující metodiky a přístupy: Dynamic Systems Development Method (DSDM), Adaptive Software Development ( ASD), Feature Driven Development (FDD), Extrémní programování (Extreme Programming, XP), Lean Development, 30

Scrum, Crystal metodiky, Agilní modelování (Agile Modeling). Rigorózní a agilní metodiky představují dvě skupiny metodik, které vycházejí z odlišných předpokladů a odlišného pohledu na vývoj softwaru. Výsledkem je jiný obsah a zaměření každé kategorie metodik a jiný okruh projektů, na které je vhodné tyto metodiky aplikovat, jak ukazuje přehledně obrázek 1. Obrázek 1 Srovnání rigorózních a agilních metodik 2 SOUČASNÝ STAV POUŽÍVÁNÍ AGILNÍCH METODIK Agilní metodiky mají za sebou již sedm let své existence, vyzrávají a začínají být skutečně vnímány jako alternativní a úspěšný způsob vývoje softwaru. Podle [11] bude agilní vývoj jedním ze tří hlavních trendů ve vývoji softwaru pro rok 2008, vedle outsourcingu vývoje softwaru a rostoucím významu řízení projektu. O rozvoj a propagaci agilních přístupů se stará Aliance pro agilní vývoj softwaru (Agile Alliance) a celosvětově je pořádána řada konferencí, z nichž nejvýznamnější je konference Agile. V poslední době bylo provedeno několik průzkumů zaměřených na používání agilních metodik ve světě. Výsledky průzkumu provedeného v roce 2006 organizací Agile Alliance ve spolupráci s VersionOne prokázaly, že agilní metodiky se ve světě stále více prosazují. Také Scott Ambler realizoval v březnu 2006 průzkum míry používání agilních metodik a jeho výsledky prezentoval v článku [1]. Stejný průzkum potom opakoval v roce 2007. Průzkum byl realizován ve spolupráci s Dr. Dobb's Journal and Software Development a dosáhl velkého počtu odpovědí (4232). Ambler shrnul výsledky průzkumu do tvrzení Agilní přístupy v praxi fungují a jsou akceptovány. Ve větší míře jsou akceptovány agilní techniky (65%) než agilní metodiky (41%). Nejpopulárnější agilní metodiky jsou XP a Scrum, ale také další metodiky jako Agilní MSF, Agile Unified Process a FDD dosáhly dobrých výsledků. Výsledky těchto průzkumů jsou poměrně optimistické, ale je třeba si uvědomit, že odkazy na tyto průzkumy jsou zejména z agilních zdrojů, a proto se těchto průzkumů účastní ti, kteří agilní přístupy používají a nebo je alespoň znají. Situace v ČR je poněkud jiná. Na konferencích se sice setkáváme s příspěvky o agilních metodikách a odborná česká literatura se snaží této oblasti věnovat [4], [9], ale přesto se v české praxi zatím agilní metodiky nedočkaly většího rozšíření. Svědčí o tom výsledky 31

průzkumu, který byl realizován v první polovině roku 2006 a jehož výsledky byly zveřejněny v [6]. Cílem průzkumu bylo zjistit stupeň rozšíření agilních přístupů a praktické zkušenosti s nasazením těchto přístupů v českých firmách. Průzkumu se účastnilo 21 respondentů kteří představovali malé vývojářské firmy, středně velké až větší firmy zaměstnávající 16 až 70 pracovníků ve vývoji a velké firmy s více než 70 pracovníky. Cílem průzkumu bylo zjistit, jaké metodiky (především agilní) jsou v praxi používány. Potvrdil se předpoklad, že většina firem v Česku veřejné metodiky nepoužívá (14 % ) a nahrazuje je buď metodikou individuální (v podobě firemních standardů) nebo tuto oblast vůbec neřeší a projekty jsou řízeny ad-hoc. Průzkum potvrdil také předpoklad, že rozsah znalostí o metodikách, zejména agilních je v praxi nízký. 43 % respondentů uvedlo základní vědomosti o agilních metodikách, 19 % své znalosti považuje za pokročilé a 19 % naopak přiznalo, že pojem agilní metodiky slyší zcela poprvé. 3 OMEZENÍ AGILNÍCH METODIK V TRADIČNÍM POJETÍ Aby bylo možné agilní metodiky v praxi použít, musí být splněny některé základní předpoklady. Nejdůležitějším předpokladem je požadavek, aby zákazník byl součástí týmu a byl k dispozici podle potřeby. Dalším klíčovým předpokladem je velikost týmu. Je známo, že ideální agilní tým má maximálně 8 vývojářů, kteří pracují v jedné místnosti a mohou tak plně využívat výhod osobní komunikace. Třetím klíčovým požadavkem je kvalita vývojářů jejich znalosti, zkušenosti i morální hodnoty. Další předpoklady, které by měly být splněny pro použití agilních přístupů, jsou podle [12]: dokumentace a modely nehrají při vývoji klíčovou roli, požadavky a prostředí se v průběhu vývoje mění, 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 do procesu bude jen při ukončení přírůstku, hodnocení produktu je neformální, cílem není znovupoužitelnost řešení, software může být vyvíjen inkrementálně. Na základě požadavků, které musí být splněny pro použití agilních metodik, můžeme vyvodit omezení agilního vývoje [11]: omezená podpora pro distribuované prostředí vývoje, 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 softwaru. 4 INOVACE AGILNÍCH METODIK Agilní metodiky vznikly jako reakce na tradiční způsob vývoje softwaru a zejména v počátcích jejich protagonisté vystupovali vůči tradičním přístupům velmi antagonisticky. Postupem času se ale ukázalo, že je možné oba přístupy určitým způsobem kombinovat. Rigorózní metodiky je možné odlehčit a aplikovat v jejich rámci některý z agilních přístupů. Příkladem je třeba samotná metodika Rational Unified Process, která byla původně považována za zástupce rigorózních metodik, ale od roku 2003 byla postupně rozšiřována o agilní myšlenky a dnes představuje metodický rámec pokrývající celé portfolio metodik od rigorózních až po agilní. Na druhé straně, pokud potřebujeme použít agilní metodiky na větší projekty, projekty vyvíjené distribuovanými týmy či projekty větší důležitosti, je třeba je více 32

formalizovat. V tomto směru probíhají právě v posledních letech výzkumy a na konferencích a v časopisech se objevuje řada článků, které obohacují agilní metodiky o nové praktiky, umožňující použít agilní přístupy i pro projekty, které nesplňují základní předpoklady použití agilních metod. Pilířem agilních metodik je osobní komunikace. Ta je ovšem možná, pokud je vývojový tým malý a centralizovaný. Pokud chceme použít agilní přístup k vývoji i pro distribuované týmy, musíme se vypořádat s následujícími překážkami: jazyková bariéra, nedostatek vhodných nástrojů pro komunikaci, nedostatek času pro komunikaci, rozdíly ve firemní i národní kultuře, rozdíly v byznys terminologii apod. Zkušenosti z distribuovaných projektů, které byly řízeny agilními metodikami jsou pozitivní [8]. Je třeba ale věnovat velkou pozornost výběru členů týmu. Musí to být lidé, kteří jsou připravováni pro práci v multikulturním prostředí. Je vhodné dodat roli velvyslance, který má za úkol usnadňovat komunikaci s jinou lokací. Je třeba věnovat velkou pozornost nastavení komunikačních kanálů. Pokud se členové týmu nacházejí v různých časových pásmech, musí se stanovit čas pro komunikaci, který je přijatelný pro všechny. Členové týmu musí být velmi flexibilní pokud jde o pracovní dobu. Je třeba plánovat osobní setkání. Na začátku projektu je vhodné uspořádat zahajovací setkání v délce alespoň jednoho týdne. Potom je vhodné se osobně setkávat v pravidelných intervalech, nejlépe střídavě na různých místech. Také na závěr projektu je vhodné uspořádat osobní setkání celého týmu, vývojářů, testerů i ostatních zainteresovaných. Řízení distribuovaného týmu je velmi náročné na organizaci. Je třeba mít jasnou organizační strukturu, která určuje vztahy v rámci lokálních pracovišť a vůči centru. Dále je třeba stanovit jasnou komunikační strategii, vybrat vhodné nástroje a zavést shodné prostředí pro vývoj ve všech lokacích. Agilní metodiky předpokládají každodenní účast zákazníka na práci týmu a převzetí odpovědnosti za požadavky. To ale v řadě projektů není možné splnit. Pokud chceme i přesto využít přínosů agilního vývoje, je třeba realizovat agilní vývoj v rámci standardního rámce řízení projektů. Ve vztahu k zákazníkovi a dalším zainteresovaným je projekt řízen tradičně jsou sebrány požadavky a je dohodnut kontrakt. V tomto rámci je pak ale projekt vyvíjen agilně v iteracích. Požadavky se dále rozpracovávají na např. user stories, které jsou pak vyvíjeny a dodávány zákazníkovi. 5 NÁSTROJE PRO AGILNÍ VÝVOJ Agilní vývoj nevyžaduje nutně používání nástrojů. Můžete vyvíjet agilně a nepoužívat jiný nástroj než řádkový editor, knihovnu jednotkových testů a pár indexních karet pro záznam požadavků. Ale v posledních letech se objevilo několik nástrojů, které mnohem lépe podporují agilní vývoj. Mezi nimi jsou zejména nástroje zaměřené na podporu nového způsobu řízení projektu, kontinuální integraci a sestavování produktu a automatizované testy. Hlavními producenty těchto nástrojů jsou Rally Software Development, VersionOne (produkt V1) and ThoughtWorks (produkt Mingle). Také IBM se svou rodinou nástrojů Rational nezůstává pozadu. Od roku 2006, kdy Scott Ambler, významný propagátor agilních přístupů, nastoupil do IBM, je vidět v rámci IBM významný důraz na agilní metody, který se projevil mimo jiné vznikem nové vývojové platformy Jazz, která je právě nyní v beta verzi. Také firma Microsoft podporuje agilní metody vývoje. Dodává metodiku Microsoft Solutions Framework (MSF), která je ovlivněna zejména myšlenkami Extrémního programování a zároveň zahrnuje praktiky používané při vývoji softwaru v samotné firmě Microsoft. MSF se dodává.ve dvou verzích: MSF for CMMI Process Improvement, která je více formální, MSF for Agile Software Development Velkou výhodou metodiky MSF je, že je přímo integrována do nástroje Visual Studio Team System, a tak je vynuceno její dodržování. Pokud některá firma preferuje přímo metodiku Scrum, může využít software Conchango (šablona pro metodiku Scrum), který lze volně stáhnout jako doplněk pro MS Visual Studio Team System. 33

6 ZÁVĚR Jedním z hlavních trendů ve vývoji softwaru pro rok 2008 má být agilní vývoj. Myšlenky agilního vývoje od svého vzniku na začátku tisíciletí prošly evolucí. V současné době jsme svědky stále častějšího používání agilních přístupů, ale také ústupu od původního fundamentalistického pojetí agilního vývoje ve prospěch kompromisů s tradičním pojetím. Aby byl agilní přístup použitelný pro větší spektrum projektů, je třeba původní praktiky doplňovat o nové, použitelné pro větší projekty, distribuované projekty, projekty životně důležitých systémů a podobně. Tyto nové praktiky jsou často podpořeny také softwarovými nástroji. PODĚKOVÁNÍ Tento příspěvek vznikl za podpory grantu GA ČR 201/08/0663 Inovace informačních systémů podporující konkurenceschopnost podniků LITERATURA 1. Ambler, S. Agile software development methods and techniques are gaining traction http://www.ddj.com/dept/architect/191800169 2. Beck, K. Extrémní programování, Praha: Grada Publishing 2002, 160 stran, ISBN 80-247-0300-9 3. BUCHALCEVOVÁ, A. Agilní metodiky. Praha 14.11.2002 15.11.2002. In: Objekty 2002. Praha : ČZU, 2003, s. 53 61. ISBN 80-213-0947-4. 4. Buchalcevová, A. Metodiky vývoje a údržby informačních systémů, Grada publishing, 2005, ISBN 80-247-1075-7 5. Buchalcevová, A.: Metodika feature-driven development neopouští modelování a procesy, a přesto přináší výhody agilního vývoje. In: Tvorba softwaru 2005. Ostrava : Tanger, 2005, s. 25 30. ISBN 80-86840-14-X 6. Buchalcevová, A., Leitl, M.: Průzkum používání agilních metodik v ČR. In: Objekty 2006. Praha : PEF ČZU, 2006, s. 125 136. ISBN 80-213-1568-7 7. Fowler, M. The Agile Manifesto: where it came from and where it may go, http://martinfowler.com/articles/agilestory.html 8. Fostering Innovation on the Agile Frontier, Cutter Consortium Report, 2007 9. Kadlec, V. Agilní programování: Metodiky efektivního vývoje softwaru, Computer Press, 2004, ISBN 80-251-0342-0 10. Larsen, D. Agile Alliance Survey: Are We There Yet? http://www.infoq.com/articles/agile-alliance-survey-2006 11. Mullaney, J., Davidson, M.: Software development trends in 2008, SearchSoftwareQuality.com 12. Tur, D., France, R. and Rumpe, B. Limitations of Agile Software Process http://www.agilealliance.org/system/article/file/1096/file.pdf 13. Vaughan, J. :Agile tools for Agile development, Jan 2008, SearchSoftwareQuality.com 34