Az agilis módszerre épülő szoftverfejlesztési szerződés
Napjaink globalizált, folyamatosan változó világában a túlélés kulcsa mindig a gyors reagálás, az új kihívások okozta nehézségek hatékony megoldása. Aktuális példája ennek a 2020 tavasza óta jelenlévő koronavírus-járvány, amit csak azok a vállalatok élhettek túl, amelyek elegendő tartalékkal rendelkeztek, illetve kellő időben alkalmazkodtak e rendkívüli körülményekhez, akár a munkavégzés átszervezésével, akár a termelési folyamatok újragondolásával.
Ilyen környezetben csak azok a vállalatok maradhatnak fenn, amelyek képesek a dinamikus fejlődésre, az új kihívásokkal való szembenézésre. Mindez pedig csak úgy érhető el, hogy ha az alkalmazott munkamódszerek is könnyedén idomulnak a lehetőségekhez és a mindenkori piaci- és társadalmi igényekhez.
Alapvetően ezek a szempontok hívták életre a XXI. században egyre szélesebb körben terjedő „agilis” munkamódszert. De mit is jelent ez az agilis szócska és mitől olyan hatásos ez a munkamódszer?
1. Az agilis szó latin eredetű, jelentése a Magyar Nyelv Értelmező Szótára szerint mozgékony, ügybuzgó, tevékeny, serény. A köznyelvben agilisnak mondják azt a munkatársat, aki tettre kész, gyors észjárású.
A módszertan terjedését elsősorban az indokolja, hogy tökéletes válasz a mai korra jellemző bizonytalanságra és komplexitásra. Általánosságban gyorsabb a termékfejlesztés, így gyorsabban található válasz a piaci változásokra és magasabb termelékenység érhető el, mint a hagyományos módszerekkel.
2. Az informatika, a különféle szoftverek, információkezelő eszközök fontos részesei mindennapi életünknek, így az üzleti műveleteknek is. A modern kor embere ún. evolúciós hátrányba kerül ezek ismerete, használata nélkül. Éppen ezért érdemes az agilis munkaszervezés és gondolkodásmód kialakítását a szoftverfejlesztésnél elkezdeni. Egy piaci szereplő megítélésénél kardinális szempont az elektronikus nyilvántartások, a fogyasztók által használt különféle informatikai rendszerek megbízható, bugmentes működése, a változások folyamatos követése, a folyamatosan megújuló gazdasági és társadalmi igényeknek megfelelő új szoftverek gyors kifejlesztése.
3. Az IT fejlesztések körében érdemes elhatárolnunk egymástól a hagyományos (lineáris vagy vízesés modell) és az agilis szoftverfejlesztést, amiből rögtön ki fognak tűnni az agilis és a hagyományos módszerek közötti alapvető különbségek.
A lineáris vagy vízesés modell végig egy előre kijelölt irányon halad előre, a követelmények teljes specifikációján, majd a rendszer tervezésén, elkészítésén és tesztelésén alapul, ezért nem alkalmazható gyors és hatékony szoftverfejlesztésre. A követelmények változásával szükségessé válik a rendszerterv, illetve az implementáció átdolgozása és újratesztelése. Ennek következménye, hogy a fejlesztési műveletek gyakran hosszabb időt igényelnek, és a végleges szoftver is csak az eredetileg tervezettnél sokkal később kerül az ügyfélhez. Sokszor bár a végül szoftver elkészül, de addigra a körülmények megváltozása miatt gyakorlatilag használhatatlanná válik, s elölről kell kezdeni a munkát. Ennek következtében, különösen a vállalati rendszerek esetében, a fejlesztési folyamatok a gyors szoftverfejlesztésre és átadásra összpontosítanak. (Dr. Ulbert, Zsolt: Szoftverfejlesztési folyamatok és szoftver minőségbiztosítás. Pannon Egyetem, 2014.)
Ezzen szemben az agilis szoftverfejlesztés célja a megrendelő és a fejlesztő hosszútávú, általában határozatlan időre szóló együttműködése, melynek keretében a megrendelő aktív irányítója a fejlesztő szoftverfejlesztési tevékenységének, s folyamatosan kijelöli azokat a fejlesztési célokat, melyek mentén a fejlesztőnek teljesítenie kell a megrendeléseit.
Szoftverfejlesztési szerződéssel kapcsolatos jogi kérdése van? dobos@doboslegal.eu / +36303088151
4. Az agilis munkamenet időegysége a „sprint”, melyek az esetenként előre meghatározott fejlesztési irányelvek szerinti, rövid, maximum néhány hetes, rendszerint egymásra épülő fejlesztési ciklusok. A megrendelő az egyes sprintekhez tartozó kreatív tervezési, konzultációs, szoftverfejlesztési és dokumentációs feladatok elvégzését jogosult megrendelni a fejlesztőtől. Minden sprint kezdetén a fejlesztő szakmai vezetője, a „product owner” és az adott sprinten dolgozó backend, illetve frontend fejlesztők, azaz a „squad” meghatározzák a sprint célját, és az eléréséhez szükséges feladatokat. Ekkor listába szedve priorizálják a sprint legfelső elemeit feladatokat, ötleteket, tevékenységeket („backlog”). A backlog megrendelés célját elérő megvalósításáért a product owner felelős.
5. Az egyes sprintek teljesítésével a megrendelt szoftver fokról-fokra, lépésről lépesre készülhet el a megrendelő igényei szerint. A szerződő felek minden egyes megrendelt sprint megkezdése előtt nyitó megbeszélést („sprint planning”) tartanak, ahol a fejlesztő bemutatja, hogy a következő etap fejlesztései pontosan mit foglalnak magukba. A sprinteket záró megbeszélés („sprint review”) zárja, ahol a felek áttekintik az elmúlt sprint fejlesztéseit és szükség szerint döntenek a következő sprinttel kapcsolatos operatív kérdésekben. Természetesen amennyiben a sprintek megszakítás nélkül követik egymást, úgy az aktuális sprintet záró és a soron következő sprintet nyitó ceremónia időben egybeeshet.
6. Fontos megjegyezni, hogy a sprint időkerete rendszerint nem változhat. Ha a squad kicsúszik a határidőből, akkor a feladatot nem sikerült megoldani, és vagy vissza kell vonni, vagy a következő sprint tárgyává tenni. Ezen a ponton nagy előnye az agilis munkamenetnek, hogy az esetlegesen szükséges hibajavítások könnyedén beütemezhetők a fejlesztési folyamatba, hiszen a fejlesztő korábbi sprintekkel kapcsolatos hibákat, hiányosságokat rendszerint a bejelentést követő, még el nem kezdett sprintek során ki tudja javítani.
7. Értelemszerűen a fejlesztői díj is a teljesített sprintenként esedékes. Ez nem csak a fejlesztőnek jelent egyenletes, jól tervezhető bevételi forrást, de a megrendelő is jól tudja beosztani a kiadásait, illetve garanciát is nyújt arra, hogy a fejlesztő alapos munkát végezzen, hiszen ha az adott sprint eredményeként létrejött szoftver hibáinak kijavítása túl sok időt ölelne fel, addig kevesebb kapacitása maradhat a további sprintek teljesítésére, így a további bevételszerzésre.
8. Az agilis módszer tehát éppen ellentéte a hagyományos terv-vezérelt módszertanoknak. Ez persze nem jelenti azt, hogy az agilis munkamenet tervezetlen lenne, viszont a megrendelő aktív szerepe és a szoftverfejlesztés állomásainak sprintenként történő beütemezése sokkal rugalmasabbá, a gyakran változó követelményekhez könnyen alkalmazkodóvá teszi a fejlesztés folyamatát. Ha egy projektben hirtelen megváltoznak az igények, akkor egy adaptívan működő squad képes alkalmazkodni a változásokhoz.
A fentieket összegezve láthatjuk, hogy az agilis szoftverfejlesztési szerződés a vállalkozási szerződés speciális fajtájaként értékelhető atipikus szerződés, azaz a Ptk. által nevesített szerződések között nem szerepel, azonban a vállalkozási szerződésre vonatkozó törvényi rendelkezések mögöttesen érvényesülnek.
Az agilis szoftverfejlesztés tehát eredménykötelem, viszont nem egyetlen nagy eredmény elérését célozza meg, hanem szakaszosan, sok kicsi eredmény, azaz az egyes sprintekben megrendelt szoftverelemek megvalósítását teszi a fejlesztő kötelezettségévé. Így jöhet létre végül egy nagy egész, ami az idők változásait követve hosszú távon is szolgálhatja a megrendelő céljait, biztos alapokra helyezve a minden nap használatos informatikai rendszereit.
Szoftverfejlesztési szerződéssel, agilis munkamenettel vagy IT joggal kapcsolatos kérdése van? Szívesen állunk rendelkezésére!
dr. Dobos István ügyvéd / dr. Pongrácz Dávid ügyvéd
e-mail: dobos@doboslegal.eu
+36 30 308 8151