Manapság az ipar, a gazdaság, de mondhatni az egész társadalom egyre nagyobb mennyiségben igényel jó minőségű szoftvertermékeket és szolgáltatásokat, s ezen elvárások nagy hatással vannak az infokommunikációs szektorra. Olyan fejlesztési módszertanokat kellett - és kell - kidolgozni, amelyek révén fenntarthatóvá válnak a fejlesztési folyamatok. A szoftverfejlesztés milyensége nagymértékben múlik azon, hogyan kezeli a változást. Olyan megközelítést célszerű alkalmazni, amely rugalmasan igazodik az állandó változáshoz. Meghatározó ugyanis az állandó, gyors változás. Folyamatosan változik a hardver, a szoftver, az azokkal valamilyen kapcsolatban lévő emberek - megrendelők, felhasználók és fejlesztők -, s természetesen az üzleti környezet, amelyet a szoftvermegoldások kiszolgálnak, amelyek működésüket hatékonyabbá teszik.
A vázolt elvárások mind célratörőbb kielégítése érdekében alkalmazzák egyre szélesebb, nagyvállalati körben is a megoldásközpontú, agilis megközelítést. A szoftverfejlesztés nem tekinthető egyszerű gyártásnak, ezért a fejlesztési folyamat során mindig új, egyedi termék készül, amelyet célravezető olyan módszerrel kidolgozni, amelynél a folyamatos kommunikáció, a megrendelő változó igényei és az ezekre adott válaszok köré szerveződik a munka.
Kommunikáció, kommunikáció, kommunikáció
Melyek az agilis megközelítés fő értékei? A kérdésre Lengyel László, a BME Automatizálási és Alkalmazott Informatikai Tanszékének docense, a Felsőoktatási és Ipari Együttműködési Központ igazgatója válaszol.
- Agilis szoftverfejlesztés című tantárgyunkban, az elméletet és a gyakorlati tapasztalatokat egyesítve, öt fő értékre hívjuk fel hallgatóink figyelmét. Első helyen említem a kommunikációt. A szoftverfejlesztésben ugyanis szinte minden probléma megoldása visszavezethető a kommunikációra. A rendszeres és valamennyi érintettet bevonó kommunikációval elérhető, hogy minden fejlesztő ugyanúgy lássa a rendszert, ahogy a majdani felhasználók is látják majd. A következő szempont az egyszerűség. Mindig azt kell vizsgálni, mi lenne a lehető legegyszerűbb, működő megoldás. Itt a hangsúly egyszerre van az egyszerűségen és a működőképességen. Az agilis ugyanis arra fogad, hogy a később esetleg szükséges változtatás, illetve kiegészítés nem kerül annyiba, mint eleve flexibilisebb és konfigurálhatóbb rendszert készíteni, amelyet várhatóan szintén változtatni kell majd. Szintén fontos követelmény a visszacsatolás. Az optimizmus szakmai ártalom a fejlesztőknél, a rendszeres visszajelzések segítenek nekünk a föld közelében maradni. Az agilis módszertan elengedhetetlen velejárója a bátorság, valamint az egymás és a feladat iránti tisztelet is.
Lengyel László igazgató, Felsőoktatási és Ipari Együttműködési Központ
Alapkövetelmény az egyszerűség
Az agilis módszertan értelmében a szoftverfejlesztést inkább támogatják az egyének és az interakciók, mint a folyamatok és az eszközök. A jól dokumentált szoftvernél fontosabb a működő rendszer. A siker érdekében ajánlott bevonni a fejlesztés folyamatába a felhasználókat, ehhez képest a szerződések tárgyalásának kisebb a jelentősége. Végül, de nem utolsósorban a változásokra adott gyors reagálás előnyt élvez a tervek szigorú követésénél.
Kiemelten fontos az agilis fejlesztés során, hogy a megrendelő már a kezdetektől fogva, folyamatosan értékes szoftvert kapjon a fejlesztőcsapattól. Nem kőbe vésett, előre lefektetett funkciók kidolgozása történik. A változtatási igényeket még a fejlesztés legkésőbbi szakaszában is el kell fogadni, be kell építeni a rendszerbe. A megrendelőnek ez jelent versenyelőnyt a piacon: azonnali reagálás az igényekre, valamint a változtatások gyors szállítása. Ezt támogatják az agilis eszközök, amelyek révén fenntarthatóvá válik a fejlesztés. Tudatosan néhány hetenként adják ki a működő szoftver aktuális változatát; ez lehetővé teszi a megrendelői tesztelést és az azonnali visszajelzést. Ez a - szintén a kommunikáción alapuló - gyakorlat a valódi értékteremtés meghatározó eleme.
A siker alapfeltétele, hogy a projektek motivált egyénekre épüljenek, akik minden támogatást és bizalmat megkapnak. Az információáramlás leghatékonyabb és leghatásosabb módja a személyes beszélgetés. Ez csapaton belül és azon kívül egyaránt érvényes.
- Az agilis módszertant alkalmazva a megrendelők, a fejlesztők és a végfelhasználók állandó sebességet tudnak tartani, gyakorlatilag végtelen ideig, ezt nevezzük fenntartható fejlesztésnek. Első hallásra talán furcsa, de az el nem végzett munka maximalizálása, más szóval az aktuális feladathoz hozzá nem járuló munka/kódsorok el nem végzése alapkövetelmény. Az a megoldás tekinthető tökéletesnek, amelyikből már nincs mit elvenni. Tény, hogy a legjobb architektúrát, követelményt és dizájnt az önszerveződő csoportok tudják kitermelni. Arról sem szabad megfeledkeznünk, hogy a hatékonyabb munka érdekében a csapatoknak időnként finomhangolniuk kell működésüket, viselkedésüket - hívja fel a figyelmet Lengyel László.
A szakértő szerint három hónapnál távolabbra nem érdemes részletes terveket kidolgozni. Lényeges, hogy az tervezzen és becsüljön, aki a fejlesztésben aktívan részt vesz. Az egyeztetésekről, vitákról mindig készüljön konkrét és felelősöket megjelölő cselekvési lépésterv.
- Prioritások nélkül az egész agilis eljárás nem ér semmit. Amikor a hozzáadott érték már nem haladja meg a befektetett energiát, abba kell hagyni a projektet. Ennek egyik előfeltétele, hogy a megrendelő tisztában legyen azzal, mennyit ér számára a szoftver egy-egy funkcionalitása - teszi hozzá Lengyel László.
Időben feltárni a problémákat
Az agilis megoldás kifejezetten hatékony zöldmezős fejlesztésre, tehát új termék vagy szolgáltatás kidolgozására. Meglévő rendszerek bővítésénél, különösen örökölt, elavult (legacy) rendszerek átdolgozásánál nehezebb alkalmazni. Rögzített funkcionalitás, valamint az ehhez társuló rögzített árkonstrukciók esetén kevésbé használhatók ki azon előnyei, miszerint minden iteráció értékes szoftvert eredményez, illetve a fejlesztés az aktuális igények szerint bármikor abbahagyható vagy más irányba fordítható.
Az agilis módszertan alkalmazásakor a munka haladásának mértéke mindig a működő szoftver. Ha nem működik a teljes funkció, hanem csak egy olyan komponens (például adatbázis, háttérlogika) készült el, amelyet a végfelhasználó nem tud kipróbálni és értékelni, akkor a visszajelzéseket nem tudja megadni, és a haladás sem transzparens. A legtöbbször ez az oka a projekt csúszásának, hiszen ilyenkor a problémák csak jóval később kerülnek felszínre.
- Az agilis eszközök nem csodafegyverek, de az intenzív kommunikáció, a rendszeres demók és visszajelzések a lehető leghamarabb felszínre hozzák a problémákat, amelyek a fejlesztés korai fázisában természetesen kisebbek és könnyebben is kezelhetők - hangsúlyozza az egyetemi docens, majd hozzáteszi: - Természetesen az agilis eljárásra csak fokozatosan lehet átállni. Minden módszertan eszközöket/technikákat használ, ezekből vesz át a fejlesztő csapat induláskor hármat-négyet (termék backlog, priorizálás, demó minden héten, rendszeres visszacsatolás, csapatban végzett becslés stb.). Ahogy az idő halad előre, mindig olyan további agilis eszközöket vesz hozzá a nagy kosárból, amelyek növelik a hatékonyságot, a javítják a minőséget, erősítik a csapatkohéziót.
Kevesebb kódolás
Magától értetődő, hogy az agilitás komoly változásokat hoz a fejlesztők számára. A projektmunka sokkal több kommunikációt, egyeztetést és arányaiban kevesebb kódolást jelent: egyre több a kész komponens, és időről időre jobban működik a feleslegesen el nem végzett munka maximalizálása. Egyre biztosabb, hogy a fejlesztések eredménye megmarad, és azt használni fogják. A fejlesztők munkája azzal is bővül, hogy részt vesznek a fontosabb funkciók meghatározásában.
Az agilis módszertan velejárója az önszerveződő csapat, amely maga alakítja ki, hogy ki foglalkozik inkább az adatbázissal, az üzleti logikával, a felületekkel vagy a teszteléssel. Emellett vannak a csapatot segítő szerepkörök. Ilyen például a scrum master: feladata a munkavégzést gátló minden akadály elhárítása. Egy másik segítő szerepkör a product owner: ő felel azért, hogy tudja, értse és a fejlesztő csapattal közölje az üzleti oldal szempontjait és igényeit.
Az agilis eljárás jövőjét firtató kérdésre Lengyel László így válaszol: - Az agilis projektek egyre nagyobbak. Egy-egy csapat helyett tíz, vagy akár harminc-negyven csapat is dolgozik majd együtt. Munkájuk összehangolása, egy irányba szervezése újabb feladatokat jelent.