Agilní vs. tradiční metodika vývoje softwaru
V softwarovém průmyslu se dnes používá řada různých metodologií vývoje softwaru. Metoda vývoje vodopádu je jednou z prvních metod vývoje softwaru. V-Model, RUP a několik dalších lineárních, iteračních a kombinovaných lineárně iteračních metod, které přišly po metodologii vodopádu, měly za cíl odstranit mnoho problémů s vodopádovou metodou. Všechny tyto dřívější metodiky se nazývají tradiční metodologie vývoje softwaru. Agilní model je novější model vývoje softwaru představený za účelem řešení nedostatků nalezených v tradičních modelech. Hlavním zaměřením Agile je co nejrychlejší začlenění testování a velmi brzké uvolnění pracovní verze produktu, a to rozdělením systému na velmi malé a zvládnutelné dílčí části.
Co je tradiční metodika vývoje softwaru?
Softwarové metodologie jako Waterfall method, V-Model a RUP se nazývají tradiční metodologie vývoje softwaru. Metodologie vodopádu je jedním z prvních modelů vývoje softwaru. Jak název napovídá, jedná se o sekvenční proces, ve kterém pokrok prochází několika fázemi (analýza požadavků, návrh, vývoj, testování a implementace) shora dolů, analogicky k vodopádu. V-Model je považován za rozšíření modelu vývoje softwaru Waterfall. V-Model používá stejné vztahy mezi fázemi definované v modelu vodopádu. Ale namísto lineárního sestupu (jako model Waterfall) V-Model sestoupí diagonálně dolů a poté se přesune zpět nahoru (po fázi kódování), čímž vytvoří tvar písmene V. RUP (Rational Unified Process) je adaptabilní procesní rámec (nikoli jeden konkrétní proces), který může vývojová organizace upravit podle svých potřeb. Trochu podobný vodopádu má pevně dané fáze jako počátek, vypracování, stavba a přechod. Ale na rozdíl od vodopádu je RUP iterativní proces.
Co je Agile?
Agile je velmi nedávná metodika vývoje softwaru (nebo přesněji skupina metodologií) založená na agilním manifestu. Toto bylo vyvinuto k vyřešení některých nedostatků v tradičních metodologiích vývoje softwaru. Agilní metody jsou založeny na vysoké prioritě účasti zákazníka na počátku vývojového cyklu. Doporučuje začlenit testování zákazníkem včas a co nejčastěji. Testování se provádí v každém okamžiku, kdy je k dispozici stabilní verze. Základ Agile je založen na zahájení testování od začátku projektu a pokračování v průběhu až do konce projektu. Scrum a Extreme programování jsou dvě nejoblíbenější varianty agilních metod.
Klíčovou hodnotou Agile je „kvalita je odpovědností týmu“, což zdůrazňuje, že za kvalitu softwaru odpovídá celý tým (nejen testovací tým). Dalším důležitým aspektem Agile je rozdělení softwaru na menší spravovatelné části a jejich velmi rychlé dodání zákazníkovi. Dodání funkčního produktu je nanejvýš důležité. Poté tým pokračuje ve vylepšování softwaru a v jeho průběžném poskytování při každém hlavním kroku. Toho je dosaženo velmi krátkými cykly uvolňování (ve Scrumu nazývanými sprinty) a získáváním zpětné vazby pro zlepšení na konci každého cyklu. Přispěvatelé bez větších interakcí týmu, jako jsou vývojáři a testeři v dřívějších metodách, nyní spolupracují v rámci agilního modelu.
Jaký je rozdíl mezi agilní a tradiční metodikou vývoje softwaru?
Agilní metoda je sice založena na iterativním vývoji, protože některé z tradičních přístupů, agilní a tradiční metodologie mají klíčové rozdíly. Tradiční přístupy využívají plánování jako svůj kontrolní mechanismus, zatímco agilní modely využívají zpětnou vazbu od uživatelů jako hlavní kontrolní mechanismus. Agilní lze nazvat přístup zaměřený na lidi než tradiční metody. Agilní model přináší pracovní verzi produktu velmi brzy ve srovnání s tradičními metodikami, takže zákazník může brzy realizovat některé z výhod. Doba testovacího cyklu Agile je ve srovnání s tradičními metodami relativně krátká, protože testování probíhá souběžně s vývojem. Většina tradičních modelů je velmi tuhá a relativně méně flexibilní než model Agile. Kvůli všem těmto výhodám je v současnosti Agile preferována před tradičními metodikami.