Še kakšno desetletje nazaj so imele spletne aplikacije zelo omejen rok trajanja. Enostavno razvoj ni dohajal tempa, s katerim se je razvijal internet. Vzdrževanje spletnih strani je bilo bolj podobno gašenju požarov kot načrtnemu razvoju, dokler aplikacije ni povozil čas ali pa se je povsem zapletla same vase.
Danes je drugače. Splet je prerasel puberteto, tehnologije se konsolidirajo, standardizirajo, izkristalizirale so se najboljše prakse. Nove, modularno zasnovane tehnološke platforme omogočajo razmeroma nebolečo uvedbo nadgradenj in dodelav. Celo takšnih, ki jih v času načrtovanja ni bilo mogoče predvideti. Seveda, če je aplikacija v osnovi pravilno načrtovana.
Ko je situacija zrela za prenovo spletne strani, se v mnogih podjetjih ukvarjajo predvsem s stroški razvoja, redko je govora o kasnejšem tehničnem vzdrževanju in optimizaciji.
Kar niti ni težava, če govorimo o spletni strani restavracije ali frizerskega salona. Vzdrževanje kompleksne spletne aplikacije pa lahko že v nekaj letih preseže začetno investicijo. Medtem ko sam razvoj traja nekaj mesecev, bomo s stroški vzdrževanja živeli morda naslednjih 10 let ali več!
Vzdrževanje spletne strani - ga sploh potrebujemo?
Spletne aplikacije so v bistvu spletne strani, ki izvajajo določene funkcije. So kot mini tovarne. Imajo vhodne surovine (podatke) in izdelujejo proizvode (storitve in informacije).
Recimo, da želimo povečati proizvodnjo. Stroj, ki očitno predstavlja ozko grlo, zamenjamo z novejšim, zmogljivejšim. Vse lepo in prav, a kaj, ko nato ugotovimo, da ta stroj ni kompatibilen z neko drugo napravo. Posodobitev enega stroja tako potegne za sabo niz dodatnih posodobitev in prilagoditev.
Podobno je s spletnimi aplikacijami. Sestavljene so iz vrste soodvisnih procesov, mini aplikacij in komponent. Vse niti niso pod našim nadzorom. Če se na primer Google odloči za nadgradnjo svojega brskalnika, ni nujno, da se bo naša aplikacija v Google Chromu še vedno vedla tako kot je treba. Vsaka takšna posodobitev lahko povzroči težave ali celo nedelovanje aplikacije.
Tipičen primer so spletne strani, zgrajene na popularni platformi Wordpress (WP). Sestavljene so iz osnove predloge (teme) in dodatnih funkcij (modulov, plug-inov) različnih ponudnikov, s katerimi spletno stran prilagodimo potrebam naročnika. Pri WP zgledno skrbijo za varnost osnovne platforme, zato so varnostne posodobitve zelo pogoste.
Vsaka varnostna nadgradnja lahko povzroči kaskado dogodkov. Kar naenkrat se nek modul ne razume več s posodobljeno temo. Vpeljevanje vedno novih varnostnih različic zato zahteva stalno testiranje in posodabljanje tudi tistih komponent, ki niso del osnovne varnostne posodobitve.
Wordpress je mogoče najbolj očiten primer, vendar logika stalnega prilagajanja v večji ali manjši meri velja tudi za ostale platforme. In tehnološke spremembe so šele začetek.
Kaj najbolj vpliva na obseg vzdrževanja?
Strošek vzdrževanja spletne strani se v veliki meri nanaša na število delovnih ur. Čeprav so vzdrževalna dela zelo različna, kot bomo videli v nadaljevanju, pa kumulativno na obseg vzdrževanja vplivajo zlasti trije dejavniki:
- obseg spletne strani
- struktura (kompleksnost),
- obiskanost (promet);
Podobno kot sta fičko in mercedes oba avtomobila, čeprav še zdaleč ne enaka, tudi preprosta spletna stran nima prav veliko skupnega z vzdrževanjem kompleksne intranetne rešitve ali pa spletne trgovine. Sicer tudi prva zahteva neko minimalno vzdrževanje, ki pa ne po zahtevnosti ne po količini ni primerljivo z vzdrževanjem drugih dveh. Posledično še nikomur ni uspelo sestaviti splošno veljavnega cenika vzdrževalnih storitev. Po meri razvite rešitve so že po definiciji vsaka primer zase, zato lahko vzdrževalne stroške svoje bodoče rešitve zgolj okvirno ocenimo glede na zgornje kriterije, da si ustvarimo približno sliko.
Obseg
Obseg aplikacije neposredno vpliva na količino vsebine, ki jo moramo pripraviti in nato osveževati. Več spletnih vsebin pomeni več dela z optimizacijo uporabniške izkušnje in uredništvom, posledično pa tudi s tehničnim vzdrževanjem.
Pri obsežnejših, večjezičnih spletnih portalih je zato smiselno analizirati potrebe urednikov in izbrati uredniški (CMS) sistem, ki jim bo kar najbolj poenostavil delo. Upravljate več spletnih mest? Poslujete v več jezikih? Spletno orodje, ki omogoča centralno upravljanje (brez nepotrebnega podvajanja vsebin), lahko uredniku prihrani tudi več ur nepotrebnega dela na dan.
Struktura
Zlasti za bolj kompleksne rešitve velja, da se vzdrževanje začne že v fazi načrtovanja. Premišljeno (modularno) zasnovana arhitektura lahko namreč bistveno poceni kasnejše vzdrževanje in poenostavi nadaljnji razvoj.
Žal na tej točki veliko naročnikov pade na izpitu. Odločijo se za najcenejšega ponudnika, ki si praviloma ne beli glave s tem, kako bo kasneje potekalo vzdrževanje (od tod tudi nizka cena). Pravzaprav mu ustreza, če bo za vzdrževanje porabil več (plačanih) ur kot bi bilo potrebno.
Obiskanost in aktivnost
Koliko obiska pričakujete? Kaj bodo uporabniki počeli v aplikaciji? Od obiska, zlasti od števila hkratnih zahtevkov in količine zapisov v bazo je odvisno, kje bo gostovala aplikacija in kako bo organizirano shranjevanje podatkov.
Ti parametri pridejo najbolj do izraza pri spletnih trgovinah. Pričakujete kampanjski obisk v obliki izrazitih prometnih konic? Pravočasno se pripravite na razne “črne petke” in zagotovite pripravljenost sistemsko-razvojne ekipe.
Kaj storitev vzdrževanja zajema?
Vzdrževanje aplikacije lahko razdelimo na tehnično (ki lastniku prinaša miren spanec) in vsebinsko (ki mu pomaga razvijati posel). Tehnično vzdrževanje se deli na 1) vzdrževanje aplikacije in 2) vzdrževanje infrastrukture (strežnikov in aplikativnega okolja). V kolikor infrastrukturo najemate, govorimo o gostovanju (hosting). Cena vzdrževanja je torej sestavljena iz treh storitev, za katere lahko skrbijo ločeni ponudniki.
Kako optimizirati vzdrževanje.
1. Načrtujte vnaprej
Vzdrževalni stroški bodo nižji in bolj predvidljivi, če bomo aktivnosti vnaprej načrtovali (prediktivno vzdrževanje). Bolj ko so stvari načrtovane, lažje je organizirati in porazdeliti delo, nižji (ali vsaj bolj pričakovani in enakomerno porazdeljeni) so stroški. Odpravljanje posledic (reaktivno vzdrževanje) se tako skrči le na primere, ki jih ni mogoče predvideti vnaprej.
Varčevanje pri stroških na način, da zanemarjamo redna vzdrževalna dela in izpuščamo varnostne posodobitve, se hitro izkaže za izjemno drago. Spomnimo se lanskega napada virusa WannaCry, ki je ohromil podjetja in javne službe povsod po svetu. Analize so pokazale, da so vdor omogočile varnostno neposodobljene verzije operacijskega sistema Windows. Posledice poznamo vsi.
2. Poskrbite za dobro koordinacijo
Dobra koordinacija med deležniki lahko prepreči marsikatero uro nepotrebnega čakanja in razčiščevanja nesporazumov. Pri načrtovanju aktivnosti poskrbite, da so vsi potrebni akterji pravočasno obveščeni in da so na razpolago.
E-pošta pri izvajanju vzdrževalnih nalog ni ravno priporočljivo komunikacijsko sredstvo. Bolj učinkovita so ticketing orodja kakršna sta Jira ali Redmine, ki vsem vpletenim omogočata transparentno spremljanje dogajanja, hitro klasifikacijo nalog in delegiranje zadolžitev. To so učinkovita sodobna komunikacijska pomagala, ki pa ne nadomestijo občasnega srečanja in med naročnikom in izvajalcem.
3. Omejite posledice kritičnih dogodkov
Kritičnim situacijam se ne boste povsem izognili. Vdori in hackerski napadi se dogajajo tudi v boljših družinah (Yahoo, Sony PlayStation).
S pripravo akcijskega načrta za ravnanje v kritičnih situacijah (disaster plan), v katerem je natančno določen postopek ob takšnih dogodkih, boste preprečili dodatno zmedo v že tako napetih situacijah. Če za ključno aplikacijo skrbi zunanji ponudnik, opredelite glavne akterje, njihove zadolžitve in odzivne čase v pogodbi o zagotavljanju vzdrževalnih storitev ali s tujko SLA (Service Level Agreement).
Za zaključek: nalijte si čistega vina
Vzdrževanje nikakor ni samo implementacija nadgradenj in fiksanje bugov. Je bistveno več kot to.
Kje bo težišče v vašem konkretnem primeru, je odvisno od tega, kaj od aplikacije pričakujete. Delujete v občutljivi panogi, kjer je na prvem mestu varnost podatkov? Potrebujete morda fleksibilno rešitev, zmožno hitrih prilagoditev? Se bo vsebina intenzivno menjala, tudi večkrat na dan?
Šele ko si boste odgovorili na ta vprašanja, si boste lahko ustvarili celotno sliko in ocenili stroške vzdrževanja bodoče spletne rešitve. Seveda gre laže, če imate s takšnimi ocenami že kaj izkušenj. Če ne, pokličite v Creatim, nalili vam bomo čistega vina. Preden pa pridemo do vina, se bomo najprej ob kavi v miru pogovorili o tem, kaj potrebujete, da bo vaša rešitev kar najbolj služila svojemu namenu.
In kakšne so vaše izkušnje z vzdrževanjem? Imate kakšen praktičen nasvet, dogodek, iz katerega ste se kaj naučili? Veseli bomo, če boste vaše izkušnje in mnenje delili z nami.