Tõenäoliselt oleme kõik mingil hetkel kokku puutunud ühe või teise tarkvaraprobleemiga. Olgu selleks siis aeglane tarkvara, mis jääb kerima, 20. kuupäeval kokku jooksnud e-MTA või jalutama läinud ettevõttesisesed finantsandmed.
SimplBooks raamatupidamistarkvara tootejuht ja juhatuse liige Jaanus Reismaa räägib väga olulisest, aga tihtipeale mööda vaadatud teemast – tarkvara turvalisus, töökindlus ja ka kiirus. Need omadused on enamikele iseenesest mõistetavad, aga probleemide korral kerkivad kiiresti tulipunasena kõigi tähelepanu alla.
Tarkvara töökindlus: kõik algab arhitektuurist
Tarkvaraarenduse ettevõtteid on erinevaid ning aeg-ajalt võib olla kiusatus lükata tarkvara tehniline korrashoid ja erinevate süsteemide versiooniuuendused edasi. Seda lihtsal põhjusel, et kasutaja ei pruugi otseselt märgata ja aru saada, kui hästi hoitakse tarkvara köögipoolt (koodi) korras. Kasutajad ei telli arendajalt tehnilise koodi uuendusi ning seetõttu võidakse n-ö nähtamatu arendus edasi lükata selleks, et saaks välja tulla mõne uue (nähtava) mooduliga.
Tarkvara töökindlus sõltub rohkematest teguritest, kui esmapilgul paistab. Pilvetarkvara puhul, nagu SimplBooks, mängivad rolli mitte ainult tarkvara kood ja serverid, vaid ka välised liidestused, internetiühendus ja kasutaja enda seadmed.
Pilvetarkvara jooksutamiseks kasutatavate serverite ja väliste liidestuste töökindlust saab tarkvara pakkuja kas otseselt või kaudselt teatud piirini mõjutada. SimplBooksis keskendume kõige enam aga esimesele punktile ehk siis SimplBooks tarkvara enda töökindlusele. Peamised punktid seejuures on:
- läbimõeldud arhitektuur
- tarkvaraarenduse protseduurid
- testimine, testimine, testimine…
Läbimõeldud arhitektuur
Arhitektuur on väga laialivalguv mõiste. Mõtleme siinkohal ennekõike andmete arhitektuuri ja kuidas ja millistesse teenustesse/serveritesse need paigutatud on. Kui andmete arhitektuur on hästi läbi mõeldud ja korras, siis ülejäänud tarkvara on märksa lihtsam hiljem parandada, korrigeerida või täiendada. Kehvasti planeeritud andmete korrastamine või täiendamine on nagu liikuva rongi parandamine. Eriti hull on seis, kui pead liikuval rongil veermikku parandama või täiendama.
Kindlad protseduurid
Tarkvaraarenduse protseduurid on tegelikult pea sama oluline kui arhitektuur. Tarkvara täiendamine ja vigade parandamine on SimplBooksis juba kümmekond aastat käinud kindlate protseduuride järgi, mis on lähedal ISO standarditele. See tähendab kindlaid paika pandud reegleid ning seda kindlas järjekorras. Protseduurid annavad lisakindluse, et kui programmi muudatused laivi jõuavad, siis me ei ole tee peal midagi olulist unustanud.
Oleme neid protseduure aja jooksul pidevalt täiustanud ja kohandanud ning see on andnud kindluse, et meie süsteem töötab. Tõenäoliselt on arendusega seotud protseduurid SimplBooksis kui organisatsioonis kõige enam ja kõige põhjalikumalt kirjeldatud, kuna me näeme klientide pealt, kui oluline töökindlus nende jaoks on.
Reeglid, millal uuendusi ei tehta. Hea on paika panna reeglid, millal uuendusi ei tasu teha. Need on üldjuhul päevad, kus ei saa lubada riski, et midagi valesti läheb. Näiteks kuupäevad 10 ja 20 (TSD ja KMD tähtajad), samuti reeded ja nädalavahetused.
Tarkvarauuendusi ei tehta 10. ja 20. kuupäeval!
Testimine… kõige olulisem üldse!
Kui me midagi muudame tarkvaras või täiendame, siis testime seda. Ja siis testime natuke veel. Püüame kõnealuse muudatuse või paranduse katta ka automaattestidega. Enne laivi laskmist testime veel. Laivis testime veel enne seda, kui muudatus kõigini jõuab.
Kas ma juba mainisin, et me testime veelkord igaks juhuks? No me testime igatahes veel, sest testimise samm sisaldub meie põhilistest arendusprotseduurides. Kas saame midagi veel paremini teha? Jah, saame rohkem automaatteste kirjutada.
Automaatsete testide kasutamine tarkvara arenduses tähendab, et spetsiaalsed tööriistad või skriptid kontrollivad automaatselt, kas tarkvara funktsioonid töötavad ootuspäraselt. Selle asemel, et arendajad või testijad teeksid kõik kontrolltoimingud käsitsi, saavad automaatsed testid kiiresti ja järjepidevalt kontrollida suurt hulka funktsioone, vähendades vigade ohtu ja kiirendades arendusprotsessi.
Automaattestid aitavad vähendada tarkvaravigu laivis kuni 85%, muutes arendusprotsessi efektiivsemaks ja lõpptulemuse töökindlamaks.
Kiirus: tähtsaim kasutajakogemuse komponent
Nagu eelnevalt juba mainitud, siis kõik algab arhitektuuriga ja lõpeb testimisega. Samas on pilvepõhiste tarkvarade puhul oluliseks faktoriks veel interneti kiirus üldiselt, mis ei ole meie kontrolli all. Kõige enam mõjutab kiirust siiski andmete arhitektuur ja nende peal toimivad algoritmid. Kui need on kehvad, siis võib ka kõige vingemast serverist (riistvarast) väheseks jääda. Võib-olla mitte ühe kliendiga, aga SimplBooksil on neid kümmekond tuhat.
Kuidas me teame, kas tarkvara on piisavalt kiire? Me testime korduvalt, mõõdame lehelaadimise kiirust ja oleme kiiruse osas väga tundlikud. Tänu sellele oleme jõudnud SimplBooks raamatupidamistarkvaras keskmise lehe laadimise kiiruseni 0,22 sekundit.
Raamatupidamistarkvara kiirus on raamatupidajale äärmiselt oluline tegur kasutajakogemuse ja töö tegemise efektiivsuse seisukohast. Näiteks juba 0,5 sekundit pikem viivitus iga laadimisega võib tähendada raamatupidaja jaoks päeva peale olulist ajakadu. Lisaks tehnilisele poolele võib mõjutada lehe laadimise kiirust andmete maht, kui on vaja laadida andmeid näiteks 100 laoartikli kohta või 10 000 laoartikli kohta. Kuid ka sellistes olukordades on andmete laadimise viis ja kiirus optimeeritavad.
Turvalisus: tundlike andmete kaitse?
Tarkvara turvalisus on tänapäeva maailmas olulisem kui kunagi varem. Eriti kui tegemist on tundlike andmetega – olgu siis nendeks kas isikuandmed või ettevõtte finantsid. Õnneks on selle kohta olemas palju erinevaid standardeid ja parimate tavade juhiseid nagu nt OWASP (Open Web Application Security Project). Ehk siis jalgratast ei pea leiutama.
Lõppkokkuvõttes taandub turvalisuse tagamine taaskord üldise töökindluse tagamise juurde meie jaoks. Turvalisuse tagamise puhul tulevad lihtsalt lisaks mängu veel sertifikaadid, krüpteeritud liiklus erinevate osapoolte vahel ning nt SimplBooksist väljaspoolt kaasatud n-ö turvaaukude tuvastamisele suunatud testimine.
Turvalisust tervikuna vaadates on neid asju, mida me teeme ja mida me veel saaksime paremini teha, väga palju. Ja me teemegi seda pidevalt, sest turvalisust mõjutavad hästi palju välised tegurid ja pidevalt muutuv digimaailm.