Vladimir Djurdjič: Večni beta
Razvojni cikli programske opreme so v zadnjih letih doživeli korenite spremembe, vse več izdelovalcev tako pogosto razvija in spreminja programe, da so ti tako rekoč v večni razvojni (beta) fazi. Pogosto zaradi tega trpi kakovost programske opreme, praviloma na strošek in nezadovoljstvo uporabnikov.
Živimo v družbi, za katero je pogosto zanimivo le najnovejše, najboljše, najhitrejše, skratka nekaj, kar nas hipoma navduši in lahko čez noč druge, sicer povsem uporabne izdelke spremeni v staro ropotijo. Dobrodošli v potrošniški družbi, v kateri računalniški izdelki, predvsem programi, niso nobena izjema. Še več - na svetu ni izdelka, ki bi se hitreje in bolj dinamično spreminjal kot prav programska oprema. Zaradi enostavnih dostavnih kanalov (interneta) se spremembe v programih lahko dogajajo dobesedno nenehno in prav srhljivo je, kakšne posledice ima lahko vse to, če gre nekaj ob tem narobe.
Dejstvo je, da so izdelovalci programske opreme v nenehnem prizadevanju za dosego čim večjega kroga uporabnikov in s tem čim večjega zaslužka že zdavnaj začeli zlorabljati še do nedavna ustaljene in preizkušene metode uvajanja novih izdelkov, ki niso značilne zgolj za računalništvo, temveč za celotno industrijsko (množično) proizvodnjo izdelkov. Danes pogosto naletimo na izdelke in rešitve, za katere že težko rečemo, ali so razvojna (beta) ali dokončna različica. Dokončna do kdaj?
V bistvu imamo opravka s polizdelki, za katere nihče ne more povsem jamčiti, da bodo vselej delovali tako, kot je mišljeno. To pa na pleča uporabnika prevali breme, ki je večje od tega, kar nas večina prenese. Od uporabnika, denimo, zahteva, da nenehno spremlja stanje in različice svojih programov, sicer se lahko zgodi, da mu nekega dne stvar neha delovati ali pa bodo spretni hekerji ranljivost izkoristili za vdor v naš lasten sistem.
Pa ni bilo vselej tako. Resnici na ljubo je bila kakovost programske opreme vselej v ospredju življenjskega cikla programov, le da so bili ti cikli bistveno daljši. Pred desetimi ali petnajstimi leti je lahko minilo tudi več let, preden je izdelovalec objavil novo različico izdelkov. Sestavni del tega razvojnega cikla so bile tako imenovane interne razvojne različice, imenovane tudi alfa različice, ki so omogočile razvijalcem preizkušanje izdelkov znotraj samega razvojnega podjetja. Navadno je šlo za polizdelke, ki so bili le napol delujoči, zato so ostali (tako kot danes) večinoma skriti javnosti.
Ko je program dovolj dozorel, da bi ga lahko dali preizkusiti širšemu krogu uporabnikov, so njegov status spremenili v tako imenovano beta različico in jo navadno ponudili omejenemu krogu ljudi, da bi lahko dodatno preverili ustreznost in pravilnost programa. Beta različice so bile praviloma nedostopne širši javnosti in o njih se je bolj malo vedelo. Nekateri izdelovalci so zaradi skrbnega varovanja podatkov o razvoju lahko celo občasno povsem presenetili javnost in pred kupce postavili izdelek, o katerih ni nihče nič vedel.
Danes je povsem drugače. Razvojni cikel je tako hiter, da razvijalci pogosto povsem pomešajo in (nepravilno) združijo alfa in beta cikel razvoja, polizdelke pa objavijo kar splošni javnosti, saj s tem računajo vsaj na dvoje: da bodo s tem pritegnili pozornost in da bo morda kdo iz javnosti odkril napako namesto njih. To pa je pravzaprav razvijalčevo, ne uporabnikovo delo. Kot nadomestilo uporabljajo možnost, da uporabnik program uporablja brezplačno, dokler je v razvojni fazi. Na prvi pogled sta obe strani zadovoljni.
Toda razvojne različice izdelkov so lahko pogosto zelo nezanesljive. Marsikatere so premalo preverjene, preden pridejo v javnosti, in ob naložitvi v računalnik pogosto onemogočijo delovanje drugih programov ali v skrajnih primerih celo celotnega računalnika. Razvijalci v tej fazi tudi posvečajo razmeroma malo pozornosti varnosti, tako da je verjetnost zlorabe razpok v sistemu varnosti še posebej velika. Seveda pa se uporabniki prostovoljno odločajo za namestitev, zato je odgovornost izdelovalca zelo omejena, če jo sploh ima.
Žal je tako, da se v praksi postopek preverjanja opreme pogosto uporablja v povsem drugačne, marketinške namene. Prvak med vsemi je bil doslej Microsoft, ki o razvojnih različicah piše že celo sporočila za javnost in jih daje na preizkus domala vsakomur, ki to hoče (in včasih tudi noče). Češ, "poglej nas, saj smo skoraj končali novo različico programa. Ostanite z nami, kmalu bo nared." Microsoft je šel še korak dlje, saj si je poleg izraza beta (1,2,3) omislil tudi izraz predobjava (pre-release, PR). Beta različice naj bi tako dodajale v fazi razvoja še nove funkcionalnosti, PR različice pa naj bi nabor novosti zamrznile in se osredotočile na odpravo napak.
Toda tudi taka definicija v praksi ne velja. Prepogosto se zgodi (z Microsoftom na čelu), da je pravkar objavljena dokončna različica polna napak, ki so odkrite že nekaj dni ali celo ur po objavi. Včasih tudi take, ki niso zgolj drobne luknjice, temveč prave vesoljske črne luknje v delovanju programov. Da bi stvari dodatno zapletli, se nato izdelovalci odločajo za izdelavo tako imenovanih servisnih popravkov (service packs, SP), ki pogosto odpravljajo napake (a tudi ustvarjajo nove), poleg tega pa pogosto dodajajo tudi nove funkcionalnosti. Vmes so lahko še vmesne različice popravkov in celo beta različice samih servisnih paketov. Kaj je torej zdaj končna različica in kaj beta?
Če si natočimo čistega vina, danes praktično ni več vsebinsko dokončnih različic programske opreme, ki bi si časovno in kakovostno zaslužile ta opis. Namesto tega imamo opravka z nenehno spreminjajočo se programsko opremo in le naša spretnost nas lahko obvaruje pred tem, da ne zapademo v velike težave. Lep zgled za to je programska oprema, ki jo razvija Google in ima tako rekoč domala vselej status nekakšnih razvojnih različic, ki so sicer stabilne, a daleč od popolnosti. Zdi se, da se bo z razvojem programske opreme kot spletnih storitev to samo še nadaljevalo.
Žal to prinaša že pred posameznika, kaj šele pred upravitelje omrežij s sto ali tisoč računalniki, še naprej vse večjo zapletenost. Programske rešitve za celovit nadzor na tem področju pa so danes, milo rečeno, še primitivne. Mislim pa, da je neka zgornja meja tolerance, čez katero ne bo šlo več in pri kateri bodo morali izdelovalci pri svojih objavah dokazovati kakovost, če bodo želeli ohraniti verodostojnost. Če ne drugega tedaj, ko bodo ljudje končno dojeli, da računalniki in v njih delujoča programska oprema vplivajo na njihovo življenje vsaj toliko kakor dobro ali pomanjkljivo pregledano letalo. Posledic najbrž ni treba razlagati.
Srčno upam, da nas čaka lepša in bolj predvidljiva prihodnost, kot je bilo videti ob prebiranju zgornjih vrstic. Dotlej pa se bomo morali sprijazniti s tem, da imamo opravka z večnimi beta izdelki, za katere tudi sam izdelovalec jamči zelo malo in pri katerih domala nihče ne razume vseh posledic in vplivov, ki jih ima program na delovanje celotnega računalnika.
Žal je tako, da se v praksi postopek preverjanja programske opreme pogosto uporablja v povsem drugačne, marketinške namene.