Agilis kontra hagyományos szoftverfejlesztési módszertan
A szoftveriparban manapság számos különböző szoftverfejlesztési módszert alkalmaznak. A Waterfall fejlesztési módszer az egyik legkorábbi szoftverfejlesztési módszer. A V-Model, a RUP és néhány egyéb lineáris, iteratív és kombinált lineáris-iteratív módszer, amely a vízesés módszertan után jött létre, a vízesés módszer számos problémáját kívánta eltörölni. Mindezeket a korábbi módszereket hagyományos szoftverfejlesztési módszereknek nevezik. Az agilis modell egy újabb szoftverfejlesztési modell, amelyet a hagyományos modellek hiányosságainak orvoslására vezettek be. Az Agile fő célja a tesztelés lehető legkorábbi beépítése és a termék működő verziójának nagyon korai kiadása a rendszer nagyon kicsi és kezelhető részekre bontásával.
Mi a hagyományos szoftverfejlesztési módszertan?
Az olyan szoftvermódszereket, mint a Waterfall módszer, a V-Model és a RUP, hagyományos szoftverfejlesztési módszereknek nevezzük. A Waterfall módszertana az egyik legkorábbi szoftverfejlesztési modell. Ahogy a neve is sugallja, ez egy szekvenciális folyamat, amelyben a haladás több fázison (követelményelemzés, tervezés, fejlesztés, tesztelés és megvalósítás) halad keresztül fentről lefelé, hasonlóan a vízeséshez. A V-Model a Waterfall szoftverfejlesztési modell kiterjesztésének tekinthető. A V-Model ugyanazokat a kapcsolatokat használja a vízesés modellben meghatározott fázisok között. De ahelyett, hogy lineárisan ereszkedne le (mint a Waterfall modellnél), a V-Model átlósan lefelé lép, majd visszafelé mozog (a kódolási fázis után), így kialakítva a V betű alakját. A RUP (Rational Unified Process) egy adaptálható folyamatkeret (nem egyetlen konkrét folyamat), amelyet a fejlesztő szervezet igényeinek megfelelően testre szabhat. Kissé hasonló a vízeséshez, rögzített fázisai vannak, mint a kezdet, a kidolgozás, az építés és az átmenet. De a vízeséssel ellentétben a RUP egy iteratív folyamat.
Mi az agilis?
Az Agile egy nagyon új szoftverfejlesztési módszertan (vagy pontosabban módszertanok csoportja), amely az agilis kiáltványon alapul. Ezt azért fejlesztették ki, hogy megoldja a hagyományos szoftverfejlesztési módszerek néhány hiányosságát. Az agilis módszerek azon alapulnak, hogy a fejlesztési ciklus korai szakaszában kiemelten kezelik az ügyfelek részvételét. Azt javasolja, hogy a lehető leggyakrabban és korán beépítsék az ügyfél által végzett tesztelést. A tesztelés minden ponton megtörténik, amikor egy stabil verzió elérhetővé válik. Az Agile alapja azon alapul, hogy a tesztelést a projekt elejétől kezdik, és a projekt végéig folytatják. A Scrum és az Extreme programozás az Agilis módszerek két legnépszerűbb változata.
Az Agile legfontosabb értéke „a minőség a csapat felelőssége”, ami hangsúlyozza, hogy a szoftver minősége az egész csapat felelőssége (nem csak a tesztelő csapat). Az Agile másik fontos szempontja, hogy a szoftvert kisebb kezelhető részekre bontja, és nagyon gyorsan eljuttatja az ügyfelekhez. A működő termék szállítása rendkívül fontos. Ezt követően a csapat folytatja a szoftver fejlesztését, és minden nagyobb lépésnél folyamatosan szállít. Ezt úgy érik el, hogy nagyon rövid kioldási ciklusok vannak (ezeket a Scrumban sprinteknek nevezik), és minden ciklus végén visszajelzést kapnak a fejlesztésről. Azok a közreműködők, akiknek nincs különösebb interakciója a csapattal, mint például a korábbi módszerek fejlesztői és tesztelői, most együtt dolgoznak az Agilis modellben.
Mi a különbség az agilis és a hagyományos szoftverfejlesztési módszertan között?
Noha az agilis módszer az iteratív fejlesztésen alapul, mint néhány hagyományos megközelítés, az Agilis és a Hagyományos módszertanok alapvető különbségeket mutatnak. A hagyományos megközelítések a tervezést használják vezérlő mechanizmusként, míg az Agilis modellek a felhasználók visszajelzését használják fő vezérlőmechanizmusként. Az agilis emberközpontú megközelítésnek nevezhető, mint a hagyományos módszerek. Az agilis modell a hagyományos módszerekhez képest nagyon korán biztosítja a termék működőképes változatát, így a vásárló már korán felismerheti az előnyök egy részét. Az Agile tesztelési ciklusideje viszonylag rövid a hagyományos módszerekhez képest, mivel a tesztelés a fejlesztéssel párhuzamosan történik. A legtöbb hagyományos modell nagyon merev és viszonylag kevésbé rugalmas, mint az Agile modell. Mindezen előnyök miatt jelenleg az Agile-t előnyben részesítik a hagyományos módszerekkel szemben.