statnice:vyvoj:otazka25
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| statnice:vyvoj:otazka25 [06.05.2008 14:45] – vytvořeno xvalo07 | statnice:vyvoj:otazka25 [30.05.2008 21:19] (current) – formátování xvalo07 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Agilní metodiky vývoje SW | + | ====== 25. Agilní metodiky vývoje SW ====== |
| Charakterizujte agilní metodiky vývoje SW, na jakých principech jsou založeny. Jmenujte některé agilní metodiky. Jaké jsou jejich přednosti a nedostatky? | Charakterizujte agilní metodiky vývoje SW, na jakých principech jsou založeny. Jmenujte některé agilní metodiky. Jaké jsou jejich přednosti a nedostatky? | ||
| - | Úloha | + | ===== Úloha |
| + | **Předpoklady: | ||
| Jste vedoucím projektu vývoje IS/ICT objektově-orientovaným způsobem. | Jste vedoucím projektu vývoje IS/ICT objektově-orientovaným způsobem. | ||
| - | Zadání: | + | |
| - | Jaká kritéria použijete pro volbu metodiky? | + | **Zadání:** |
| - | Jaké budou kritické faktory úspěchu projektu při použití dané metodiky? | + | |
| + | | ||
| + | |||
| + | ===== Teorie ===== | ||
| + | Tradiční rigorózní metodiky vývoje softwaru přestávají v prostředí neustálých změn vyhovovat a začínají se prosazovat agilní metodiky. Každá z agilních metodik je svým způsobem specifická, | ||
| + | |||
| + | Agilní metodiky se v poslední době stále používají na projektech v zahraničí. Nejde jen o plné nasazení určité agilní metodiky, ale také o kombinace jednotlivých agilních metodik a nebo aplikaci agilních přístupů v rámci tradičních metodik. Na základě oficiálních „veřejných“ metodik vznikají individuální varianty. | ||
| + | |||
| + | Situace v Česku je ale poněkud jiná. Agilním metodikám jsou věnovány přípěvky na odborných konferencích a také odborná česká literatura se snaží této oblasti věnovat viz například [3], [5]. Přesto se v české praxi zatím agilní metodiky nebo firemní standardy odvozené od agilních metodik nedočkaly většího rozšíření. Tento článek podává informaci o průzkumu zaměřeném na využívání agilních metodik v českých firmách, který byl realizován v roce 2006 v rámci zpracování diplomové práce ing. Marka Leitla [6]. | ||
| + | |||
| + | Změny technologií a ekonomického prostředí, | ||
| + | |||
| + | ===== Manifest ===== | ||
| + | Agilní metodiky jsou samotnými autory označovány jako metodiky, které umožňují vytvořit řešení velmi rychle a optimálně a toto řešení dovolují pružně přizpůsobovat. Jedná se o několik metodik, z nich nejpopulárnější je takzvané extrémní programování (XP). Agilní přístup (AP) byl s velkým nadšením přijat v komunitě programátorů pracujících s OOP. Představitelé těchto přístupů z celého světa v roce 2001 vydali společný dokument „Agile Manifesto“ a vytvořili alianci pro „agilní vývoj softwaru“. [AP 2001, Beck 2003, Beck 2002] | ||
| + | |||
| + | Tento [[http:// | ||
| + | |||
| + | > Odhalili jsme lepší způsob vývoje softwaru, sami jej používáme a chceme pomoci i ostatním, aby jej používali. 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 a | ||
| + | > - reakci na změnu před plněním plánu. | ||
| + | |||
| + | Mezi základní rysy agilních metodik patří: | ||
| + | - důraz na průběžnou komunikaci mezi vývojovým týmem a zákazníkem | ||
| + | - důraz na tvorbu kvalitního kódu a funkcí, které mají přímou obchodní hodnotu pro zákazníka | ||
| + | - týmovou spolupráci a samoorganizaci týmů | ||
| + | - co nejčastější předávání hotové práce | ||
| + | - vítání změn jako příležitosti být lepší | ||
| + | - důraz na výslednou hodnotu pro zákazníka před dokumenty a papírováním | ||
| + | |||
| + | ===== Metodiky ===== | ||
| + | Pod hlavičku agilních metodik můžeme zařadit následující metodiky a přístupy: | ||
| + | ==== Extrémní programování ==== | ||
| + | [[wp> | ||
| + | |||
| + | Přitom různé metodiky kladou na tyto rysy různý důraz. Například, | ||
| + | ==== Scrum ==== | ||
| + | |||
| + | [[wp> | ||
| + | ==== DSDM ==== | ||
| + | |||
| + | [[wp> | ||
| + | ==== Crystal metodiky ==== | ||
| + | |||
| + | ==== Feature Driven Development ==== | ||
| + | |||
| + | [[wp> | ||
| + | |||
| + | ==== Adaptive Software Development ( ASD) ==== | ||
| + | |||
| + | ==== Lean Development ==== | ||
| + | |||
| + | ==== Agilní modelování (Agile Modeling) ==== | ||
| + | |||
| + | ===== Přednosti agilních metodik ===== | ||
| + | Agilní přístup má velké přednosti v malých týmech, které mohou pravidelně komunikovat se zákazníkem/ | ||
| + | * technickou podporu týmu (vývojové prostředí, | ||
| + | * koordinovaný a průběžný kontakt se zadavatelem/ | ||
| + | |||
| + | Autoři agilních metodik jsou většinou pro věc nadšení, ale také velmi vzdělaní lidé. Někteří z nich odborně publikují i v oblasti formálních technik a jiných metod řízení projektů, což dokladuji například i citace Amblera a Becka v tomto textu. | ||
| + | ===== Kritika ===== | ||
| + | Agilní přístupy nelze použít u velmi velkých projektů, kde se naráží nejvíce na nedostatek průběžného kontaktu se zadavateli a na potřebu projekt plánovat. | ||
| + | |||
| + | Příčina vzniku agilních metodik je samotnými autory popisována jako selhání rigorózních metodik. Příčinu jejich selhání vysvětlují v nepotřebné dokumentaci, | ||
| + | |||
| + | S tímto tvrzením však nelze souhlasit. Pokud se podíváme na jiné oblasti inženýrských aktivit (stavebnictví, | ||
| + | |||
| + | Základní myšlenka potřebnosti „rigorózních“ metodik nemůže být špatná. I v softwarovém inženýrství je potřeba projekty plánovat, řídit, analyzovat zadání atp. Na druhou stranu je pravda, že v mnoha případech „rigorózní“ přístup nevede k lepšímu, rychlejšímu a levnějšímu výsledku, než při nasazení AP. | ||
| + | |||
| + | Rigorózní metodiky pro vývoj s pomocí OOP mají za sebou dlouhý vývoj. Většinou vznikly postupnou změnou z klasických strukturovaných metodik. Dnes používané metodiky mají svůj původ ve výzkumu a zkušenostech s tvorbou softwaru pomocí OOP v 90. letech. Zde jsou příčiny, proč nesplňují očekávání a selhávají. Zároveň se zde skrývá vysvětlení, | ||
| + | |||
| + | První spočívá ve změně stylu programování, | ||
| + | |||
| + | Další problém spočívá ve schopnosti rigorózních metodik správně, účinně a rychle zachytit, analyzovat a zobrazit zadání od uživatelů. K modelování se dnes téměř výhradně používá UML. V kapitole 4.2.2 byla diskutována jeho nedostatečná podpora úvodních fází modelování. AP je totiž také odpovědí na to, že UML nepodporuje dobře úvodní analýzu. Proto AP radí raději žádnou analýzu zadání nedělat a místo toho řešit projekt po částech a pravidelně spolupracovat s uživatelem. Bohužel vinou nedostatků rigorózních metodik je dnes AP prakticky úspěšné i v oblastech, kde by uživatelé byli schopni a dokonce by preferovali na začátku projektu formulovat požadavky – nebo jejich podstatnou část. Ale protože je v UML obtížné je srozumitelně modelovat, tak se raději nemodeluje vůbec a přistupuje se k AP, přičemž uživatelé musí průběžně komunikovat během vývoje. Toto je problém větších projektů, například specifických aplikací pro business, systémů pro řízení technologií (v telekomunikačním průmyslu nebo distribuce energií), atd. Ve všech těchto oblastech je třeba projekty plánovat a zadání je z podstatné části známé předem. | ||
| + | |||
| + | ========================================================= | ||
| + | |||
| + | Podrobný popis agilních metodik s důrazem na extrémní programování je obsahem samostatné kapitoly sekce tohoto textu. | ||
| + | Příčina sporu | ||
| + | |||
| + | |||
| + | |||
| + | ======================================== | ||
| + | |||
| + | Agilní metodiky vývoje se začaly objevovat na konci devadesátých let minulého století v mnoha rozličných formách jako reakce na to, že většina softwarových projektů nekončila včas, v rámci rozpočtu, případně nedodala zákazníkovi to, co očekával. To bylo způsobeno mnoha faktory a každá metodika se je snažila vyřešit jinak. | ||
| + | |||
| + | Agilní metodiky - novinka pro třetí tisíciletí | ||
| + | |||
| + | Na začátku 21. století se objevil nový fenomén na poli metodik vývoje softwaru – agilní metodiky. Za výchozí dokument těchto metodik můžeme považovat “Manifest pro agilní softwarový vývoj” od Kenta Becka či Alistaira Cockburna. Podle nich můžeme agilní metodiky definovat jako metodiky snažící se o lepší vývoj softwaru. | ||
| + | |||
| + | Dosahují toho především upřednostňováním jednotlivců a komunikace v týmu místo procesů a nástrojů. Dávají přednost funkčnímu softwaru před komplexními specifikacemi. Preferují spolupráci se zákazníky před dlouhými dohady nad smlouvami a upřednostňují rychlou odezvu na změny před slepým plněním plánů. Agilní metodiky považují stávající metodiky jako např. Unified Process za příliš “těžkotonážní”. Naproti tomu samy sebe označují jako “lehkotonážní”. Uvedená terminologie je založena zejména na skutečnosti, | ||
| + | |||
| + | Agilní metodiky si kladou za cíl “polidštit” vývoj softwaru. Chtějí se více soustředit na dosažení primárního cíle a méně se zabývat formalismem. Mezi agilní metodiky SCRUM, Crystal Light či extrémní programování (XP). Popularita agilních metodik, zejména extrémního programování, | ||
| + | Další metodikou je SCRUM, česky mlýn v ragby. V textu je opět vysvětlena charakteristika metodiky, zvláště pak odlišnosti od XP. Poté se autor věnuje Lean Developementu, | ||
| + | |||
| + | Čtvrtou metodikou je Feature Driven Development, | ||
| + | |||
| + | ===== Praxe ===== | ||
| + | FIXME | ||
statnice/vyvoj/otazka25.1210077956.txt.gz · Last modified: 06.05.2008 00:00 (external edit)
