Új szoftver fejlesztés metódus: XP (extreme programming)
Cégünk a kisebb fejlesztő csapatot igénylő projekteknél elkötelezte magát az úgynevezett Extreme Programming, röviden XP mellett. A módszer lényege - mely elsősorban az utóbbi 5 évben terjedt el az USA-ból kiindulva és kisebb fejlesztő csapatok számára dolgozták ki -, a következőkben foglalható össze:
Az XP egy olyan rugalmas programozási technika, amely kisebb ismĂ©tlĹ‘dĹ‘ lĂ©pĂ©sekben (iteráciĂłkban), gyakori visszacsatolások Ă©s a vevĹ‘vel valĂł intenzĂv kommunikáciĂł rĂ©vĂ©n cĂ©lzottan tesz eleget a megrendelĹ‘ igĂ©nyeinek. Az XP azon a megfigyelĂ©sen alapul, hogy egy software megváltoztatásának a költsĂ©gei egyszerű eljárásmĂłdokkal jelentĹ‘sen csökkenthetĹ‘k.
A metĂłdust Kent Beck, Ward Cunningham Ă©s Ron Jeffries alakĂtotta ki, egy a Chrysler számára vĂ©gzett programozási feladat, az Ăşgynevezett C3 Projekt során, mely 1995 Ă©s 2000 között folyt. (A programot a bĂ©rszámfejtĂ©s terĂĽletĂ©n használták.)
Az XP négy ún. központi értéket fogalmaz meg. Ezek e következők: kommunikáció, feedback (azaz visszacsatolás), merészség és egyszerűség.
Az XP programozás központi értékei kicsit bővebben kifejtve a következőket takarják:
Kommunikáció és feedback
A fejlesztĹ‘csapat folyamatos kommunikáciĂłt folytat, hogy az informáciĂłkat folyamatosan kicserĂ©ljĂ©k. Minden Ă©rdekelt közt állandĂł informáciĂłcsere zajlik, nemcsak a fejlesztĹ‘csapat tagjai közt, hanem a fejlesztĹ‘csapat az ĂĽgyfĂ©l között is. A mĂłdszer alapján gyakran a megrendelĹ‘ rĂ©szĂ©rĹ‘l is csatlakozik egy szakember a fejlesztĹ‘csapathoz, hogy teljes egĂ©szĂ©ben figyelemmel tudja kĂsĂ©rni a fejlesztĂ©s folyamatát, Ă©s jelezhesse az esetleges igĂ©nyeit. Olyan szemĂ©lyek is szĂłhoz juthatnak, akik nem az Ă©ppen folyamatban lĂ©vĹ‘ feladat szakĂ©rtĹ‘i, ezáltal megjelenik egy további feedback, Ă©s mindenki elkötelezettnek Ă©rzi magát a tĂ©ma Ă©s a csapat mellett. A kommunikáciĂł is olyan mĂłdon folyik, hogy mindenki vĂ©lemĂ©nyĂ©t messzemenĹ‘en figyelembe veszik Ă©s akceptálják.
Merészség
A csapatban meg kell lennie a bátorságnak ahhoz, hogy mindenki nyĂltan elmondja a vĂ©lemĂ©nyĂ©t. A program fejlesztĂ©se kisebb egysĂ©gekben, Ăşn. iteráciĂłkban törtĂ©nik. A megrendelĹ‘ minden iteráciĂł vĂ©gĂ©n egy működĹ‘kĂ©pes programot kap. Amennyiben valamelyik iteráciĂł vĂ©gĂ©n nem teljesĂĽltek a megrendelĹ‘ követelmĂ©nyei, azt nyĂltan ki kell mondani. Olyan atmoszfĂ©rának kell uralkodnia, amely a fejlesztĂ©si folyamatok során általában jelentkezĹ‘ zavarokat minimalizálja (pl. konkurenciaharc a teamen belĂĽl, mely a termĂ©k kárára megy).
Egyszerűség
Mindig a legegyszerűbb megoldást kell választani egy adott probléma megoldására. Minden iterációban a teljes team az éppen megoldandó feladatra koncentrál. A megoldásokat technikailag a legegyszerűbben kell kivitelezni.
Az XP programozás a gyakorlatban
Sokaknak talán furcsa, hogy az XP Programming kerĂĽli a programozási munka megkezdĂ©se elĹ‘tt a minden rĂ©szletekbe belemenĹ‘ fix áras Ă©s fix határidejű szerzĹ‘dĂ©st. Az XP programozás számára a megrendelĹ‘ bevonása, a folyamatos feedback, vagyis egy működkĂ©pes program lĂ©trehozása, mely mindenben megfelel a vevĹ‘ kĂvánságának ennĂ©l sokkal fontosabb. A feladat olyan mĂ©rtĂ©kig Ă©s olyan rĂ©szletessĂ©ggel kerĂĽl megfogalmazásra, hogy az alapján a fejlesztĹ‘csapat fel tudja vázolni a fejlesztĂ©s menetĂ©t, Ă©s el tudja kezdeni a munkát. A továbbiakban a fejlesztĹ‘csapat Ă©s a megrendelĹ‘ közötti folyamatos a kommunikáciĂł rĂ©vĂ©n az egyes iteráciĂłk vĂ©gĂ©n kerĂĽl meghatározásra az, hogy hogyan menjen tovább a fejlesztĂ©s. A mĂłdszer garantálja a szoftver magas minĹ‘sĂ©gĂ©t, ebben kĂĽlönbözik más fejlesztĂ©si mĂłdszerektĹ‘l, melyekben a programnak egy meghatározott idĹ‘re, meghatározott terjedelemben kĂ©szen kell lennie, Ă©s ennek gyakran a termĂ©k minĹ‘sĂ©ge látja kárát. Be kell látni, hogy egy jĂł minĹ‘sĂ©gű, jĂłl működĹ‘ szoftver megfelelĹ‘ dizájnnal a legolcsĂłbb hosszĂş távon, hiszen kevesebb benne a bug, Ă©s az igĂ©nyek változásával ezt a legkönnyebb átalakĂtani, továbbfejleszteni. Az XP rĂ©sze a folyamatos tesztelĂ©s beĂ©pĂtĂ©se a munkafolyamatba, emellett a mĂłdszer alapján a csapat erĹ‘teljesen Ă©pĂt a team-tagok más munkák során már megszerzett problĂ©ma megoldási tapasztalataira. A tesztek a funkcionalitással egyĂĽtt kerĂĽlnek fejlesztĂ©sre. Mivel az elsĹ‘ megoldás egy fejlesztĂ©s során nem feltĂ©tlen a legoptimálisabb megoldás a folyamatos feedback biztosĂtja, hogy az ebbĹ‘l nyert legĂşjabb tapasztalatok a megoldást folyamatosan javĂtják. A folyamatos visszakĂ©rdezĂ©s hatĂ©konysága annál nagyobb, minĂ©l kĂĽlönbözĹ‘bb kĂ©pessĂ©gekkel Ă©s karakterrel rendelkezĹ‘ emberekbĹ‘l állĂł teamet sikerĂĽlt összeállĂtani. A vĂ©lemĂ©nyek sokszĂnűsĂ©gĂ©t támogatni kell, ezĂ©rt fontos a csapaton belĂĽl egy konfliktusmanagement. A software működĹ‘kĂ©pessĂ©ge a fejlesztĂ©s során vĂ©gig garantált, ebben segĂtenek a rövidebb iteráciĂłk folyamatos feedbackkel, ennek ellenĂ©re ezzel a mĂłdszerrel is számolni kell esetleges hibákkal. A folyamatos teszteknek köszönhetĹ‘en azonban minden hiba hamarabb kiderĂĽl, Ă©s könnyebben megszĂĽntethetĹ‘, mint a hagyományos mĂłdszerekkel.
Az XP az egyes, együttesen a legnagyobb haszon elérését célzó ún. Best Practices összessége. Ezek önmagukban már nem újkeletűek, sőt némelyiket már régóta használják, de ez a módszer alkotott az összességükből kerek egészet.
Az XP nem abszolutizálható, de kisebb teamet igénylő fejlesztéseknél ezt tartjuk célravezetőnek.
A nagyobb, komplex projektek számára más megoldásokat kell találni, mert ezeknĂ©l a team-tagok közötti közvetlen kapcsolat már megvalĂłsĂthatatlan - ilyen pĂ©ldául a RUP (Rational Unified Process).
vissza

|