Ellen Ullman: The Bug
Bár nem vagyok szoftvertesztelő vagy -fejlesztő, én is gyakran tesztelek szoftvert a magam kevéssé kifinomult módján, meg programozok is néha vagy három sort, ha nagyon muszáj, és a szoftvertesztelők és -fejlesztők a mindenkori legjobb barátaim és legfőbb szövetségeseim.
És egész közelről látom nap mint nap ezt a problémát, hogy mondjuk egy ügyfél a szoftver rejtélyes és nemkívánatos viselkedésére panaszkodik, s akkor a megoldás első lépése az, hogy a tesztelő nekiáll és megpróbálja reprodukálni a hibát, ami nem feltétlenül egyszerű.
Menet közben mindenféle kérdések felmerülnek: lehet, hogy az ügyfél helyzete olyan speciális vagy szerencsétlen, hogy csakis nála jelentkezik a hiba? Lehet, hogy a hiba csak akkor jön elő, ha aznap épp telehold van és pont 24 felhasználó próbálja ugyanabban a pillanatban ugyanazt csinálni, és két százalékkal esett a cég részvényeinek árfolyama aznap a tőzsdén, és a vezérigazgató unokatesójának épp ikrei születtek? Lehet, hogy a bug nem is bug, hanem a cuccnak eleve úgy kell működnie? (De ki mondja meg, minek hogyan kell működnie?)
Ezernyi kérdés, sokszor megnyugtató válaszok nélkül. És sokszor látom és tapasztalom a frusztrációt és küzdelmet, amit egy rejtelmes szoftverhiba okozhat, de őszintén szólva még sose tekintettem a tesztelésre és fejlesztésre úgy, mint valami mélységesen egzisztencialista ténykedésre és értelemkeresésre.
Pedig végül is az – egyesegyedül állunk szemben az ismeretlennel, egy alapvetően ellenséges, értelmezhetetlen és kiismerhetetlen világgal (problémával), és bár tudjuk (azt hisszük, hogy tudjuk), hogy minek hogy kéne lennie, a dolgok valahogy nem úgy vannak, semmi sem egyszerű, és a megoldás (ha találunk egyáltalán bármifélét) sokszor annyi, hogy: a cucc csak fogyó hold esetén működik, csakis 23 egyidejű felhasználóval, és csak akkor, ha a részvények árfolyama emelkedik, és a vezérigazgató unokatesójának lánygyermeke született; vagy rosszabb esetben annyi, hogy: ez így van, mindig is így volt, sosem lesz másként, és az élet egyébként is kegyetlen.
Mindennapi valóságom ezen filozofikus dimenziójára talán sosem figyeltem volna fel e regény nélkül. De milyen jó, hogy elolvastam ezt a könyvet. Egyrészt mert ezentúl mindig egy kicsit másnak (izgalmasabbnak, romantikusabbnak, kalandosabbnak, hősiesebbnek, tragikusabbnak, jelentőségteljesebbnek) fogom látni a szoftvertesztelősdit és -fejlesztősdit. Másrészt meg mert ez egy igen jó regény.
Szóval igen, ahogy sejthető, a regény főszereplői egy fiatal tesztelő, a mindenre kész Roberta, és egy fejlesztő, Ethan, akik egy gonosz bug nyomába erednek, amely hol előbukkan, hol eltűnik, hol már majdnem megvan, hol pedig a messzi távolból incselkedik kalandorainkkal, akik szeretnék elkapni őt. A komisz és megfoghatatlan bug utáni hajsza története lassan epikus méreteket ölt, és a bug már azzal fenyeget, hogy összedönti a főszereplők életét és csődbe taszítja a vállalatot.
Van itt tehát harc az idővel (mert a befektetők gyorsan piacra akarják dobni a terméket, de a bug miatt ezt nem lehet), vannak szexuális és egyéb feszültségek a szereplők között bőven, vannak áskálódó ellenfelek, akik gúnyos mosollyal az arcukon figyelik, ahogy a szerencsétlen Ethan küzd a bugjával, szóval lehetne ebből valami hollywoodi jellegű romantikus-akciótörténet is, de nem az lesz belőle.
Mondom, ez egy igen sötét egzisztencialista regény, ami mellesleg még az ember vs. gép, analóg vs. digitális, az időben létezés vs. az időt csak tökéletlenül megfogni tudás kérdéseibe is belemegy.
A legfélelmetesebb az egészben, hogy teljesen magától értetődő, ahogy a romlásig, a mániáig, a külvilág kizárásáig, a hajnalokig tartó beteges bug-keresésig eljutunk. És Ethan küzdelme nem kevésbé keserves attól, hogy az ellenfele nem a fizikai valóságban, hanem a gép kiismerhetetlen bensejében rejlik, hiszen az is valóság, és több helyet foglal el az életünkben, mint szeretnénk/sejtenénk.
(A fő történet egyébként 1984-ben játszódik – ami biztos szimbolikus is, de engem leginkább az fogott meg, hogy a programozók már 1984-ben is attól szenvedtek, hogy fogalmuk sem volt, az előttük járók, a kódot rájuk hagyó korábbi programozók mi a francot akartak a kódjukkal – én azt hittem, naivan, hogy ez valami egészen mai probléma, de a regényből úgy tűnik, ez mindig is így volt, és mindig minden sor kód örök időktől fogva csak kísérlet arra, hogy értelmezze és felhasználja azt, ami előtte volt.)
És teljesen magától értetődő közben az emberi kapcsolatok pusztulása is, hiszen egy kapcsolat is csak egy életjáték (game of life, ami Ethan legfőbb érdeklődési területe – https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) – meghal vagy tovább él, attól függően, hogy milyenek a viszonyok körülötte. És annak, ami a gép belsejében zajlik, nagyon is valóságos következményei lehetnek, még akkor is, ha a szoftverünk nem repülőgépek meg atomreaktorok biztonságáért felel, hanem csak valami uncsi kis adatbázis-kezelő alkalmazás.