Agilní a tradiční metodologie vývoje softwaru
V softwarovém průmyslu se dnes používá celá řada různých metodik 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ů metody vodopádu. 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 zavedený k řešení nedostatků zjištěných v tradičních modelech. Hlavním zaměřením Agile je začlenění testování co nejdříve a uvolnění pracovní verze produktu velmi brzy, rozdělením systému na velmi malé a zvládnutelné dílčí části.
Co je to tradiční metodika vývoje softwaru?
Softwarové metodologie jako Waterfall metoda, V-Model a RUP se nazývají tradiční metodologie vývoje softwaru. Metodika Waterfall je jedním z prvních modelů vývoje softwaru. Jak již název napovídá, jedná se o sekvenční proces, ve kterém pokrok protéká několika fázemi (analýza požadavků, návrh, vývoj, testování a implementace) shora dolů, analogicky vodopádu. V-Model je považován za rozšíření modelu vývoje softwaru Waterfall. Model V používá stejné vztahy mezi fázemi definovanými v modelu Waterfall. Ale namísto lineárního klesání (jako je model vodopádu) V-model sestupuje diagonálně dolů a poté se pohybuje zpět (po fázi kódování), přičemž vytváří tvar písmene V. RUP (Rational Unified Process) je přizpůsobitelný procesní rámec (nikoli jediný konkrétní proces), který může vývojová organizace přizpůsobit podle svých potřeb. Mírně podobný vodopádu, má pevné fáze jako počátek, zpracování, konstrukce a přechod. Ale na rozdíl od vodopádu je RUP iterační proces.
Co je agilní?
Agile je velmi nedávná metodologie vývoje softwaru (nebo přesněji skupina metodik) založená na agilním manifestu. To bylo vyvinuto k vyřešení některých nedostatků v tradičních metodikách vývoje softwaru. Agilní metody jsou založeny na tom, že účast zákazníků je na začátku vývojového cyklu dána vysokou prioritou. Doporučuje zahrnout testování zákazníkem včas a často, jak je to možné. Testování se provádí v každém okamžiku, kdy bude k dispozici stabilní verze. Základ Agile je založen na zahájení testování od začátku projektu a pokračování po celou dobu až do konce projektu. Programování Scrum a Extreme jsou dvě z nejpopulárnějších variant agilních metod.
Klíčovou hodnotou Agile je „kvalita je zodpovědností týmu“, což zdůrazňuje, že za kvalitu softwaru odpovídá celý tým (nejen zkušební tým). Jedním z dalších důležitých aspektů Agile je rozebírání softwaru na menší spravovatelné části a jejich rychlé dodání zákazníkům. Dodání funkčního produktu je nanejvýš důležité. Poté tým pokračuje v zdokonalování softwaru a neustále ho dodává v každém důležitém kroku. Toho je dosaženo velmi krátkými uvolňovacími cykly (nazývanými sprinty v Scrumu) a získáním zpětné vazby pro zlepšení na konci každého cyklu. Přispěvatelé bez přílišný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í metodologií vývoje softwaru?
Ačkoli Agile metoda je založena na iteračním vývoji jako některé z tradičních přístupů, Agile a tradiční metodologie mají klíčové rozdíly. Tradiční přístupy používají plánování jako svůj kontrolní mechanismus, zatímco Agilní modely používají zpětnou vazbu od uživatelů jako hlavní kontrolní mechanismus. Agilní lze nazvat přístupem zaměřeným na lidi, než tradiční metody. Agilní model přináší funkční verzi produktu velmi brzy ve srovnání s tradičními metodikami, aby si zákazník mohl včas uvědomit některé výhody. Doba testovacího cyklu Agile je ve srovnání s tradičními metodami relativně krátká, protože testování probíhá paralelně s vývojem. Většina tradičních modelů je velmi tuhá a relativně méně flexibilní než model Agile. Díky všem těmto výhodám je Agile v současné době upřednostňována před tradičními metodikami.