• Nem Talált Eredményt

Szoftverfejlesztés a valós piaci igények tükrében

7. Lecke: Gyors szoftverfejlesztés

7.2.1 Szoftverfejlesztés a valós piaci igények tükrében

A cégek állandóan változó piaci körülmények között működnek és igyekez-nek követni a változásokat. Az információtechnológia a cégek minden tevé-kenységében megjelenik, ezért fontos, hogy minden feladat elvégzéséhez a megfelelő szoftvert választhassák a vállalatok. Mivel a piac nagyon gyorsan változik, a szoftverekkel szemben támasztott követelmények közül talán a leg-fontosabb a gyorsaság, vagyis hogy a szoftver fejlesztője a lehető leggyorsab-ban átadhassa a kész rendszert a megrendelőnek. A megrendelők ennek fejé-ben hajlandók kompromisszumokra, engednek az elvárásaikból, hogy minél hamarabb használhassanak a szoftvert. Másfelől egy jól modellezett, megterve-zett szoftver esetében is természetes, hogy bizonyos elvárások csak a szoftver evolúciója során fogalmazódnak meg a felhasználókban, akkor, amikor kipró-bálhatják a rendszert, megismerhetik annak együttműködését más rendszerek-kel stb. Ezt megelőzően a megrendelő sem tud feltétlenül pontos igénylistát benyújtani a készítendő rendszerrel kapcsolatban.

Ennek megfelelően a korábban leírt modellezési, tervezési, fejlesztési fo-lyamat gyakran nem kivitelezhető. A jó szoftver készítésének feltétele a jó rend-szerterv, azonban ennek kialakítása esetenként túlságosan hosszú időt vesz igénybe. Egy gyorsan változó piaci környezetben előfordulhat, hogy mire

elké-80 Gyors szoftverfejlesztés

szül egy rendszer terve és kezdődhetne annak implementációja, a piaci folya-matok annyira megváltoznak, hogy a munkát ismét a tervezésnél kell kezdeni, vagy a meglévő terveket teljesen át kell alakítani.

A gyors szoftverfejlesztési folyamatokat arra tervezték, hogy segítségükkel valóban gyorsan készíthessünk szoftvereket. Általánosságban elmondható, hogy az ilyen tevékenység során a modellezési, tervezési és implementációs munka párhuzamosan folyik.

A modellezés és a specifikáció csak a legszükségesebb komponensekre, il-letve azok legfontosabb jellemzőire korlátozódik. A rendszert lépésről lépésre tervezik, és a tervezés, illetve fejlesztés minden mozzanatában aktívan részt vesznek a felhasználnók, így azonnali visszajelzést tudnak adni minden, a rend-szerbe újonnan bekerülő komponensről. A fejlesztés során a felhasználói felület implementálása bizonyos rendszerekben gyorsabb, másutt lassabb művelet. A gyors szoftverfejlesztés eszközéül olyan fejlesztői környezetet érdemes válasz-tani, ahol a felhasználói felületek fejlesztését a rendszer beépített eszközei köz-vetlenül támogatják (vizuális programozási nyelvek).

Ennél a technológiánál a felhasználóknak nem kell heteket, hónapokat várnia az első prototípusokra, mivel a tervezési és specifikálási lépések az imp-lementálással párhuzamosan folynak. Így már a fejlesztés legkorábbi szakaszá-ban is működő prototípusokkal találkozhatnak, esetleg a legfontosabb funkciók már a végleges formájukban működhetnek a rendszer legelső változataiban is.

Így a felmerülő igényeket is azonnal jelezhetik a felhasználók, amelyek imple-mentálása a fejlesztés további irányát is kijelölheti, vagy megváltoztathatja.

A gyors szoftverfejlesztés ezen módja hordoz magában bizonyos kockáza-tokat is. A fentebb leírtak nemcsak lehetőséget biztosítanak a felhasználók számára az azonnali kipróbálásra, de ez mint követelmény is megfogalmazódik velük szemben. Nem biztos, hogy a majdani felhasználók birtokában vannak azoknak a kompetenciáknak, amelyek szükségesek ahhoz, hogy egy fejlesztés alatt álló rendszert véleményezni tudjanak. Nem biztos, hogy van a fejlesztési folyamatban olyan résztvevő (akár a megrendelő, akár a fejlesztő oldalán), aki vállalni tudná az újabb és újabb részegységek betanítását és lehet, hogy ez a felhasználók számára egyébként is csak többletfeladatokat jelentene, amelyet nem szívesen vállalnak.

Egy vállalat általában szigorú szabályok betartása mellett működik, a fo-lyamatokat rendszerint pontosan és alaposan dokumentálni kell. Egy fejlesztés alatt álló szoftverkomponens által szolgáltatott kimeneteknek illeszkednie kell a jelenleg működő rendszer szabványaihoz, ami lassíthatja a munkát. Ha – akár csak ideiglenesen – nem illeszkednek a meglévő szabványokhoz, az a vállalatot

Gyors szoftverfejlesztés 81

állíthatja nehéz döntés elé. A dokumentációk pontos és szabványos elkészítése szintén követelmény lehet, ugyanakkor nagyon időigényes tevékenység.

A gyors szoftverfejlesztés anyagi és szerződésbeli kérdéseket is felvet. A hagyományos szoftvertechnológia során a szerződések megkötése a specifiká-ción alapszik. Amikor elkészül egy rendszer specifikációja, a felek szerződést kötnek az elvégzendő feladatokra, a komponensek kifejlesztésére és a vállalt határidőkre. Ha a specifikáció a fejlesztéssel párhuzamosan zajlik, akkor mind-két fél számára nehézséget jelenthet a kedvező szerződési feltételek kialakítása.

A megrendelő nem akarja a vételárat kizárólag az alapján elfogadni, hogy a fejlesztő milyen határidőre vállalja a munkát. A fejlesztő pedig nem akar fix összegű megrendelést kötni egy olyan projektre, amelyben bizonyos kompo-nensek iránti igény csak a fejlesztés egy későbbi szakaszában fog jelentkezni.

A hagyományos technológia alkalmazása során egy fejlesztés alatt álló rendszer validációja és verifikációja már a specifikáció alatt megkezdődhet. Ha a specifikáció átfedi az implementációt, akkor ez a majdani kész rendszer ellenőr-zését, tesztelését is befolyásolja. Ugyanez a probléma adódik a későbbi módosí-tás, karbantartás során is. Mivel a kész rendszer nem feltétlenül egy jól átgon-dolt tervezési munka után készül el, bizonyos funkciók megvalósítása nem az optimális módon történhet. Ezen lehet azzal segíteni, ha az újabb és újabb komponenseket állandóan tökéletesítjük, például refaktorálással, amelyről a 11. leckében esik szó.

Belátható, hogy vannak olyan rendszerek, amelyek fejlesztéséhez nem al-kalmazható a gyors szoftvertechnológia. Ha nagy rendszert kell fejleszteni, ame-lyen egymástól térben és időben távol lévő csoportok dolgoznak, a rendszer dokumentációja szigorú szabályokat követ és a szerződések a specifikáción ala-pulnak, akkor csak a hagyományos szoftverfejlesztési eljárások jöhetnek szóba.

Ugyanakkor azt is meg kell jegyeznünk, hogy az ilyen nagy méretű projektek rendszerint nem annyira érzékenyek a piac napi változásaira, hogy az időténye-ző mindennél fontosabb lenne a fejlesztésben.

A gyors szoftverfejlesztés szempontjából a legfontosabb tényező az idő: a megrendelő minél hamarabb szeretné használatba venni az új szoftvert. Ez azonban nem jelentheti azt, hogy megelégszik egy közepes vagy rossz minősé-gű, instabil, megbízhatatlan szoftverrel, legfeljebb azt, hogy a fejlesztés gyorsa-ságának növelése érdekében hajlandó bizonyos kompromisszumokat kötni a funkcionalitás kárára.

A valódi megoldások rendszerint valahol a két szélsőség között helyezked-nek el.

82 Gyors szoftverfejlesztés