Što i kako
StoryEditor

Što ako padne sustav: Problem nije samo vaš, developeri osjećaju da je i njihov

14. Lipanj 2023.
Piše: Nenad Kovačević, lead developer u Serengetiju

Danas gotovo nema poslovanja koje se ne temelji na tehnologiji i programskim rješenjima. Pri tome ne mislimo samo na proizvode i usluge nego i na to da su temelj cjelokupna poslovanja softveri, razne aplikacije i rješenja koji su, zapravo, alat za obavljanje svakodnevnog posla. Osnovni je primjer e-pošta, ali danas je gotovo svaki segment poslovanja digitaliziran i povezan s nekim softverom i/ili analitikama. Da bismo vam što bolje približili kako izgraditi pouzdan softverski sustav u nepredvidivom okružju, predočit ćemo vam primjer iz bankovnoga sektora i vlastitog iskustva.

Uvjeti za besprijekoran rad

Jezgra bankovnog sustava temelj je svih poslovnih aktivnosti bilo koje bankovne institucije. U njemu je srž poslovanja, od podataka o klijentima do svih transakcija koje se obavljaju. Drugim riječima, to je sustav koji centralizira sve potrebne informacije o klijentima, koji omogućuje rad proizvoda koji su dodatno personalizirani kako bi korisničko iskustvo bilo što bolje i kroz koji prolaze sve financijske i operativne aktivnosti kao što su upravljanje rizicima, financijskom imovinom, mobilna i online plaćanja.

Baš kao i druge usluge koje banke danas nude. Taj osnovni sustav može – i mora – komunicirati s drugim sustavima oko sebe, kao što su bankomati, korisnička služba, mobilne aplikacije krajnjih korisnika, mnogo internih evidencija i alata kojima se koriste klijenti, ali i zaposlenici banke. Zato je jezgra bankovnog sustava srce te financijske institucije i mora brzo rješavati sve upite, bilo unutarnje bilo vanjske.

To nas vodi prema tome da je pouzdana jezgra, odnosno pouzdan softverski sustav, nužna za svaku uspješnu banku. Zbog takve je jezgre banka funkcionalna. Pouzdan sustav zapravo omogućuje pružanje najboljega korisničkog iskustva i zato je cijelo poslovanje pouzdano i učinkovito. Pod pouzdanim sustavom misli se na to da je istodobno učinkovit, financijski isplativ te lako i brzo dostupan. S druge strane, sustav mora biti siguran.

U kontekstu financijskoga sektora, pogotovo kad su uključeni servisi trećih strana poput alata za online i digitalna plaćanja, riječ je o sustavu koji mora funkcionirati besprijekorno, i to 24 sata na dan, svih sedam dana u tjednu. Jednako kao internetske trgovine i razne druge aplikacije koje su postale dio modernog stila života, a koje u pozadini zapravo imaju softversku jezgru. U sklopu skrbi o takvu sustavu ključno je održavati infrastrukturu u punom smislu te riječi kako bi svi njegovi dijelovi radili besprijekorno u svakom trenutku. S druge strane, za održavanje i unaprjeđivanje takva sustava nužno je osigurati odgovarajući kadar.

Stabilni vanjski partneri

Za svakoga tko razvija neki softver ili uvodi novi u poslovanje ključan je izazov napraviti pouzdan softverski sustav zbog izazova koje donose nepredvidivi uvjeti u operativnom dijelu, svakodnevno izloženom novim poremećajima. Prekid usluge vrlo je teško spriječiti iako se većina rizika može procijeniti i prevenirati na vrijeme, no postoje situacije na koje nitko ne može utjecati. Kad to pogledamo iz perspektive razvojnog tima, i to vanjskoga, on je taj koji mora brzo reagirati i u vrlo kratkom roku riješiti problem, odnosno omogućiti rad sustava.

Timovi vanjskih partnera koji se bave održavanjem i unaprjeđivanjem jezgre sustava u pravilu su sastavljeni od ljudi koji su vrlo pouzdani i dugo su u tom poslu. To je nužno ne samo zbog zadovoljstva klijenata nego i cjelokupna poslovanja, i to ponajprije zbog stresa koje takve situacije izazivaju zaposlenicima, ali i novčanih gubitaka kad posao stoji. Zato pružatelji takvih usluga imaju vrlo stabilne timove s bogatim iskustvom razvoja softverskog sustava i bogatim znanjem o specifičnim poslovnim procesima, ali i industriji.

U slučaju incidenta

Budući da se usprkos svemu znanju i pripremama katkad prekine rad osnovnog sustava, važno je znati kako se ponašati u takvoj situaciji. Na temelju iskustva naučili smo nekoliko ključnih stvari koje bi vam mogle koristiti bez obzira na industriju u kojoj poslujete. Prije svega, važno je osvijestiti da pouzdanost ne proizlazi samo iz arhitekture i primjene nego i iz znanja i razumijevanja kako upravljati i reagirati kad se dogode kvarovi, odnosno kad sustav padne.

Važno je znati i kako postaviti granice oko osnovnoga (bankovnog) sustava tako da se može nositi s incidentom. Jedan od ključnih koraka u brzom rješavanju incidenta jest praćenje i prijava problema. Uvriježeni su engleski termini help desk i ticketing. Riječ je o sustavu koji će omogućiti temeljito praćenje svakog zahtjeva i pravodobno izvještavati o statusu, bilo da se radi o softverskom bilo o hardverskom dijelu sustava. Ako za to imate dobar alat, već ste na dobrom putu da održavanje postavite na pravi način. Dostupni su razni alati za help desk, no u odabiru je najvažnije voditi računa o tome da se izabrani dobro uklapaju u vaše procese i procedure.

Na primjer, davanje zahtjeva za novu funkcionalnost u sklopu forme ticketinga vrlo je praktičan način praćenja zahtjeva. Tako na jednome mjestu možete pratiti sve zahtjeve i imati pregledan uvid u njihove statuse. Kako bi to bilo što bolje, uveli smo praksu da pri podnošenju zahtjeva, odnosno ticketa, klijent opiše o čemu je riječ, navodeći pritom što više detalja. To je nužno za dobru analizu i razumijevanje uzroka problema. Zatim, nakon što tim preuzme zadatak, cijelo vrijeme ažuriramo status, odnosno napredak zadatka, a kad se problem otkloni, vrlo jednostavno možemo svima poslati notifikaciju da je incident riješen.

Osim operativnog i komunikacijskog dijela, važno je cijelo vrijeme unaprjeđivati pouzdanost sustava; naravno, zato da incidente minimiziramo tako da ih gotovo ne bude. Iz perspektive timova koji rade na održavanju sustava koji je velik i tako kompleksan, važno je analizirati svaki problem i učiti iz njih.

Unaprjeđenje pouzdanosti

Na temelju toga treba aktivno raditi na tome da više ne bude incidenata. Zato smo u radu jako fokusirani na kvalitetu svoje usluge, tako nastojimo produljiti neprekidan rad sustava. Iznimno smo posvećeni proučavanju svih aspekata problema kad se pojavi, temeljito proučavamo njegove uzroke, i to na način koji smo sami razvili tijekom godina, a koji nam se pokazao temeljitim. Važno je učiti iz pogrešaka. Bolje bi bilo učiti iz tuđih, ali, u svakom slučaju, najvažnije je težiti sprečavanju problema.

Pravodobno i jasno

Nepredvidivi su kvarovi, odnosno problemi, neizbježni, posebno u računalnim sustavima. Sjetite se samo Murphyjeva zakona: problem će se pojaviti kad vama (odnosno klijentu) to najmanje treba. Tu dolazimo do druge važne stvari: komunikacije. I to pravodobne i transparentne komunikacije sa svim sudionicima. Jednako je važna međusobna komunikacija članova kao i komunikacija s klijentom. Iznimno je važno uspostaviti komunikaciju između klijenta i tima, i to tako da klijent bude zadovoljan njome, da uživa u njoj bez obzira na to je li riječ o svakodnevnom poslu ili rješavanju problema.

Takav razvojni tim razumije osjećaj hitnosti i širu poslovnu sliku. On zapravo mora jako dobro razumjeti klijentova očekivanja. Svi članovi tima također moraju biti dobro povezani i usklađeni. Zato su u sastavljanju tima jednako važni tehničko znanje, osobnost i socijalne vještine. Te vještine posebno dolaze do izražaja kad su uključeni drugi odjeli.

Tada je važno kvalitetno razmjenjivati informacije kako bi sve teklo glatko i na vrijeme. Konkretno, moj tim incidente shvaća vrlo ozbiljno. Imamo vrlo dobro strukturirane metode komunikacije i nadzora koje primjenjujemo tijekom rješavanja incidenta i u svakodnevnom poslu. Koristimo se svim tim metodama kako bismo obavijestili korisnike o statusu prekida usluge i podijelili sva najnovija ažuriranja o incidentu. Dakle, klijenti se moraju osjećati kao da je ‘njihov‘ problem ‘vaš‘ problem.

Komunikacija i suradnja s klijentima pomogle su nam u izgradnji međusobna povjerenja za trajne odnose i uspješno poslovanje. Osim toga, posvećeni smo korištenju provjerenih praksi koje osiguravaju visoku kvalitetu usluge razvoja i održavanja softvera. Time osiguravamo da svaki korak, kao i cijeli proces, bude optimiran, efikasan i pouzdan. Moram li izdvojiti dvije najvažnije stvari za izgradnju pouzdana poslovnog softverskog sustava, odnosno one koje najviše utječu na stabilnost sustava u nepredvidivim uvjetima, bile bi to komunikacija i provjerene prakse. 

28. travanj 2024 13:50