Intervija ar Aleksandru Surženko,
SIA „IT SQUARE” tehnisko direktoru / datu bāzu inženieri
Kā tu izvēlējies strādāt IT nozarē?
Informācijas tehnoloģiju joma mani ārkārtīgi interesēja jau no 12 gadu vecuma, taču tikai 12. klasē izlēmu, ka studēšu tieši IT. Iestājos Latvijas Universitātē un pēc pirmā kursa sapratu, ka gribu strādāt ar datu bāzēm. Topošajam IT speciālistam ir ļoti svarīgi jau laikus saprast, kas interesē, jo ir ļoti daudz iespēju specializēties (JAVA, .NET, ORACLE u.c.). Interneta vide mani piesaistīja ar salīdzinošo vienkāršību. Te ir ļoti zems ieejas līmenis – nevajag daudz, lai sāktu. Tomēr tālāk parādās aizvien vairāk interesanta. Tu pakāpeniski vari visu izdarīt daudz skaistāk, pareizāk, elegantāk. Ieviest savas idejas.
Ko tieši tu studēji?
Ieguvu datorzinātņu bakalaura grādu LU un pēc tam turpināju studijas – ieguvu maģistra grādu datorzinātnēs. Būtībā universitāte iemāca strādāt ar lielu informācijas daudzumu, dod pamatpriekšstatu par to, kas notiek IT jomā. To, kā notiek reālais darbs ar datu bāzēm, gan jāmācās pašam. Trešā kursa beigās sāku strādāt kā programmētājs, darbs iepatikās, un var teikt, ka, pateicoties darba pieredzei, zināšanu jomā biju soli priekšā universitātei.
Vai arī tagad nepieciešams papildus mācīties?
Jā, protams, taču nav tik svarīgi visu paturēt galvā, drīzāk jāzina, kur meklēt kādu informāciju. Jāzina, kurā virzienā joma dodas un ko no tā visa vari pielietot savā darbā. Arī uzņēmumi, meklējot darbiniekus, rēķinās, ka reti kad gadās atrast uzreiz gatavu speciālistu. Svarīgi, lai darbinieks ir spējīgs ātri un efektīvi mācīties, neatkārtot vienas un tās pašas kļūdas.
Kādi ir tavi galvenie pienākumi kā datu bāzu inženierim?
Es izstrādāju datu bāzes, kuras paredzētas lietošanai interneta vidē, – tie var būt sociālie tīkli, forumi, internetveikali, fotogrāfiju vai mūzikas uzglabāšanas, apstrādes un koplietošanas vietnes, ziņu portāli. Strādāju ar MySQL datu bāzēm. Kad klientu menedžeri un pārdevēji ir piesaistījuši pasūtītāju, vispirms jāizvērtē, cik laika un resursu vajadzēs, lai realizētu klienta vēlmes. Tad jāanalizē pats produkts, kas būs jāizveido. Obligāti jāsaprot, kas būs datu bāzes lietotāji un ar kādiem objektiem viņi darbosies, kādi būs dati, ko ar tiem darīs. Jau laicīgi jāuzmin, kur varētu rasties problēmas, lai tās varētu novērst. Par iespējamajiem sarežģījumiem arī atklāti jāizrunājas ar klientu.
Pēc tam sākas datu bāzes struktūras projektēšana. Citos uzņēmumos to var darīt arī atsevišķs arhitekts vai, piemēram, bankās – visticamāk, atsevišķs analītiķis. Kad struktūra ir izveidota, sāk strādāt programmētāji. Darba gaitā datu bāzes sākotnējā struktūra var arī mainīties, ja atrodam labāku veidu, kā īstenot kādu funkciju. Veidojot datu bāzi, tajā atbilstoši standartiem jāiestrādā arī aizsardzība pret apdraudējumiem. Tā kā aizvien vairāk cilvēku lieto internetu arī mobilajos telefonos, bieži vien jānodrošina, ka datu bāzi varēs lietot gan datorā, gan mobilajās aplikācijās. Tas gan vairāk attiecas uz lietotāja interfeisa jeb lietotāja vides pusi. Es veidoju datu bāzes pamatu, savukārt lietotāja vidi mūsu uzņēmumā veido dizainers un cits programmētājs. Mūsu uzņēmums arī nodrošina datu bāzu administrēšanu, bet to dara datu bāzu administrators, kurš attālināti strādā ar datu bāzēm, kuras atrodas uz klientu serveriem.
Cik ilgs laiks nepieciešams, līdz datu bāze ir gatava un to var sākt lietot?
Var teikt, ka no projekta sākuma līdz pilotmodeļa palaišanai paiet apmēram seši mēneši. Mans darbs ar datu bāzes kodola izveidi aizņem apmēram no divām nedēļām līdz mēnesim. Pārējais laiks tiek veltīts biznesa funkcionalitātes un lietotāja vides izveidei. Lai arī tad it kā esmu savu darba daļu padarījis, kolēģi visu šo laiku konsultējas ar mani par datu bāzes dizainu un struktūru.
Pēc šiem sešiem mēnešiem mēs palaižam darbojošos prototipu, ko var izmantot lietotāji. Mēs skatāmies, kas lietotājiem datu bāzē patīk, ko viņi biežāk lieto, ko nelieto. Tālāko datu bāzes attīstību virzām uz to pusi, kur mūs ved lietotāji. Izstrādājot interneta vides datu bāzes, ir svarīgi ātri izstrādāt pamatideju un skatīties, kā lietotājiem tā patiks. Nevis visu „nopulēt” līdz pēdējam sīkumam un tikai tad dot lietotājam, jo tad ir risks, ka patērēsi laiku un darbu tam, kas lietotājam izrādās nevajadzīgs. Būtībā datu bāzes attīstīšana var būt nebeidzams process, jo orientējamies uz aktuālajām klientu vēlmēm.
Kāda ir tava darba ikdiena?
Mūsu uzņēmums ir filiāle Amerikas uzņēmumam, kurš piesaista klientus, kuru pasūtījumus mēs realizējam. Tāpēc katrs rīts sākas ar amerikāņu atsūtīto darba uzdevumu analīzi – ir pienākuši ziņojumi, ka, piemēram, ir atrastas kļūdas vai kāda no datu bāzes funkcijām darbojas ļoti lēni. Katru rītu plkst. 10.00 mums ir sapulce, kurā apspriežam aktuālos uzdevumus. Tad sākas pats darbs ar datu bāzēm – vai nu laboju kļūdas, vai taisu ko jaunu. Ja atliek laiks, nodarbojos ar datu bāzu apjoma pieauguma izpēti, darbības ātruma analīzi, uzlabojumu meklēšanu.
Strādāju ar vairākiem projektiem vienlaikus. Mūsu klienti ir no Amerikas, un visa komunikācija notiek attālināti – ar Skype konferencēm, e-pastu. Ir projekti, kurus mēs paši izdomājam un izstrādājam no nulles, un ir projekti, kurus mums pasūta klienti, kam ir biznesa ideja vai vispārējs priekšstats par to, ko vajadzētu izveidot, un mēs tad izstrādājam risinājumu. Strādājam arī ar prototipiem – ir izveidots modelis citā vidē (piemēram, WordPress), kā datu bāzei būtu jāizskatās, bet mums tas ir jārealizē mūsu vidē.
Vai ir kāda atšķirība, ja datu bāze tiek veidota interneta videi vai, piemēram, bankai?
Veidojot datu bāzes, svarīgas ir trīs lietas – ātrums, uzticamība (dati tiek saglabāti) un pieejamība. No tām maksimāli realizēt var tikai divas. Ja datu bāze paredzēta internetam – piemēram, sociālajiem tīkliem, – tad ļoti svarīgs ir lietotāju ērtums jeb pieejamība un iespēja datu bāzi ātri un viegli modificēt, papildināt ar jaunām sadaļām, palielināt. Te nav tik svarīgi nodrošināt, lai pilnīgi visi dati saglabātos (piemēram, nenotiks liela nelaime, ja kāds komentārs pie fotogalerijām pazudīs). Tāpēc pamata kodolam ir jābūt nosacīti vienkāršam, bet uzsvars tiek likts uz lietotāja pusi. Savukārt bankās ļoti svarīga ir drošība un visu datu saglabāšana – līdz ar to jau pamata kodols tiek veidots gana sarežģīts, tajā tiek integrēta visa biznesa loģika. Lietotāja puse ir salīdzinoši vienkāršāka.
Kāda ir tava sadarbība ar citiem uzņēmuma darbiniekiem?
Sadarbojos ar IT projektu vadītāju, kurš vada visu datu bāzes izstrādes projektu un kontrolē darba uzdevumu sadali programmētājiem. Programmētājiem sniedzu dažādus paskaidrojumus. Sadarbojos ar testētājiem, kuri pārbauda datu bāzes darbību. Mūsu uzņēmumā Amerikā strādā vesela testētāju brigāde, ar kuru jākomunicē attālināti, bet sadarbojos arī ar testētājiem šeit uz vietas Latvijas birojā.
Kādas prasmes, īpašības nepieciešamas, lai labi veiktu šo darbu?
Pirmajā vietā es liktu atbildības sajūtu – nevar darīt vienkārši tā, kā ir mācīts, un būs labi tā, kā sanāks. Katrā projektā ir jāienes kaut kas savs, un ir svarīgi, lai tev rūpētu, kas sanāks. Šis ir radošs darbs, un pēc projekta nodošanas, kad ar datu bāzi sāk darboties reāli lietotāji, nākas arī panervozēt.
Jāspēj prātā uzprojektēt visu sistēmu un saprast, kā tā darbosies. Sākuma stadijā uz tāfeles zīmēju grafikus, veidoju modeļus. Taču jāpieturas pie vienkāršības principa, lai citi, kas lietos tevis izstrādāto datu bāzi, varētu saprast tās uzbūvi un kodus, varētu to lietot un modificēt.
Nepieciešama arī zinātkāre – nekad nevar apstāties un teikt, ka visu zinu. IT joma ļoti strauji mainās. Jāpārzina, ko var un ko nevar izdarīt serveri un cita tehnika, uz kuras darbosies tevis izstrādātā datu bāze. Piemēram, ja web serveris un datu bāzes serveris atrodas vienuviet, to sadarbības ātrums būs citādāks, nekā tad, ja tie atrodas dažādās vietās. Šīs zināšanas jāapgūst praksē, jo arī tehniskie risinājumi visu laiku attīstās un mainās.
Manā darbā ļoti svarīgas ir komunikācijas prasmes – ne tik daudz prasme izteikties, cik spēja saprast klienta vēlmes, iejusties viņa ādā, paskatīties uz produktu ar klienta acīm. Nevari būt no dzīves atrauts cilvēks, jāprot iejusties klienta situācijā un vajadzībās.
Kādi datu bāzu inženierim ir vislielākie darba izaicinājumi?
Izdarīt tā, lai gala lietotājs nepamanītu, ka viņam strādā 20 GB datu. Lai lietošanas ziņā būtu vienalga, cik lietotāji ar datu bāzi vienlaicīgi darbojas – trīs vai desmit miljoni. Panākt, lai datu bāze dzīvo pati par sevi, netraucē un neprasa pastāvīgu labošanu.
Kas tev šajā darbā sagādā gandarījumu?
Tas, ja izdodas sasniegt mērķi, panākt, ka datu bāze strādā ātri, kaut arī tu zini, ka esi tam veltījis ļoti daudz laika. Gandarī arī tas, ja tava ideja darbojas, lai arī pirms praktiskā izmēģinājuma tā bija strīdīga un riskanta.
Kādas ir izaugsmes iespējas šajā profesijā?
Viens no attīstības virzieniem ir darbs ar neklasiskām datu bāzēm (tā sauktajām NoSQL DB), kurās dati netiek formalizēti, netiek salikti „pa plauktiņiem”. Tā ir interesanta un perspektīva lieta, bet to grūti izmantot reāla projekta kontekstā – pašam jāizdomā, kā to panākt. Var specializēties arī darbā konkrētās vidēs (piemēram, web) vai atsevišķu sistēmu datu bāzēs (piemēram, finanšu). Ja runā par manis paša nākotnes plāniem – gribu attīstīties par sistēmu arhitektu.
Ko tu ieteiktu jauniešiem, kas apsver domu apgūt datu bāzu inženiera arodu?
Ir jābūt interesei par šo lietu. Pret to nevar attiekties kā pret darbu – atnācu, nostrādāju, aizgāju mājās. Ja IT profesionālim ir šāda attieksme, es neiesaku sadarboties ar šādu pasūtījuma izpildītāju.
Jāmācās, jālasa internetā nozares jaunumi. Šādi var iepazīties ar darba specifiku – piemēram, ar kļūdām, kam jāpievērš uzmanība. Tāpat internetā var izmēģināt MySQL, PostgresSQL vai SQL Lite bāzu darbības principus – tās ir pieejamas bez maksas, un var pamēģināt kaut ko uztaisīt, lai saprastu, vai patīk un izdodas.