Biztos
a májusi hőségnek tudható be, hogy picit “bugosra” sikeredett az utolsó szám
(ezennel kérek elnézést Halász Gábor tisztelt kollégánktól, hogy nevét három
betűre lerövidítve kiadtam kezemből, és ez a szarvashiba még az
utolsó rostán se akadt fent). Az egész május egyébként ilyen volt. Bugot bugra
halmoztunk, nemcsak a cég keretein belül, hanem úgy általában. Nekiálltam, hogy
kibővítem a böngésző programot, egy pár új feature-t adok hozzá,
aztán a vége az lett, hogy még a régi feature-ök se működtek jól. Nemhogy
jól… egyáltalán nem. Szerencsére volt (és mindig van) egy biztonsági másolat.
A
programozók világában megszokott dolog a bug. Eredete egy molylepkére
vezethető vissza, mely befészkelte magát egy egyetem számítógépébe (még az
ötvenes években), aztán emiatt elfüstölt pár alkatrész. Ne felejtsük el, hogy
akkoriban a mikroszámítógép még tenyérnyi makroalkatrészekkel volt szerelve,
emiatt volt lehetséges a befészkelés. Aztán a lelkes technikus megtalálta a
molylepkét családostól, és miután a szerencsétlen bogárcsaládot kitelepítették,
valahogy megragadt az informatikában, hogy “bugos” a számítógép. Bogaras.
A
szoftverfejlesztésbe általába nincs betervezve a hibajavítás, értsd ezalatt a
debugolást (bogártalanítás), ezért a programozók mindig azt hiszik, hogy
hibamentes kódot írnak (vagyis azt kellene írniuk). A terméket kiadják, a
felhasználó talál benne 123 hibát. A terméket kivonják forgalomból, a
programozógárda odaül a forráskód mellé, és kijavítja a 123 hibát. A
hibajavítás következtében 456 új hiba kerül a programba, de mindezt nem veszik
észre addig, amíg a végfelhasználók fel nem fedezik. Az “alulfizetett” projekt
menedzser beadja a felmondását, majd elutazik Tahitira. Most már senki sem
tudja, hogy mit és hol talál a projektben. A programozógárda kap Tahitiról egy
képeslapot, a volt projekt menedzsertől. Egy emberként beadják a
felmondást. A cég vezetősége leszerződtet egy új programozógárdát,
akik hosszas tanakodás után úgy döntenek, hogy a költségek szempontjából inkább
kifizetődő újraírni a terméket, mint kijavítani a meglévő
bugokat. Az új programozógárda újraírja a terméket, és azt hiszi, hibamentes
programot adott ki...
Ez egy
ilyen végtelen ciklus, mint az önnön farkába harapó kígyó, a programozó kiadja
kódot, és nem is gondol olyan lehetőségekre, hogy a felhasználó betükkel
fogja beírni az életkorát, hiszen ő bízik abban, hogy a világ úgy
gondolkodik, ahogyan ő maga. Logikusan, szigorú algoritmusok szerint
vezérelve. Nem, a hibalehetőségre mindig gondolni kell, a leglehetetlenebb
helyeken, a legvalószínűtlenebb idő- és programpontokban.
Ősi
tanácsot adok most: könnyebb a hibát megelőzni, mint kijavítani. Hiszen a
megelőzés még nem kerül pénzbe, illetve nem is presztízskérdés. Máshogy
néznek ránk az üzlettársak, amikor “hibamentes” terméket adunk kezükbe, mint
később, amikor átadjuk a programunk első patch-elt változatát.
Próbáljuk elkerülni a nagy hibákat.
Deák Ferenc