Intervija ar Sergeju Bajutinu,
SIA „TIETO Latvia” programmētāju/vadošo izstrādātāju
Kā izvēlējies strādāt IT jomā?
Sāku interesēties par programmēšanu jau 7. klasē, tādēļ nozari, ar ko saistīt savas darba gaitas, izvēlējos jau salīdzinoši sen. Man skolā patika fizika, ķīmija, tehniskais virziens kopumā. Sākotnējā interese bija par fiziku, tad par elektroniku un beigās par programmēšanu. Mani iedvesmoja tas, ka atklāju – ja tu gribi veikt dažādus eksperimentus, tad ķīmijā un fizikā tas ir samērā grūti, bet programmēšanā tev ir vajadzīgs tikai dators, ar to ļoti viegli vari daudz ko izdarīt.
Kur apguvi programmētāja profesiju?
Pēc 9. klases izvēlējos mācīties vidusskolā, nevis tehnikumā, lai pēc tās varētu ātrāk iestāties augstskolā. Datorzinātnes studēju RTU Datorzinātņu un IT fakultātē, akadēmiskā bakalaura programmā. Pateicoties savai interesei par programmēšanu jau skolas laikā, studēt man bija viegli. Par lielu plusu uzskatu to, ka studiju ilgums bija tikai trīs gadi un bija pieejamas plašas specializācijas iespējas. Savukārt šogad jau pabeidzu maģistra studijas RTU.
Kā sāki darba gaitas šajā profesijā?
Sāku strādāt par programmētāju jau no augstskolas pirmā kursa. Apvienot studijas un darbu nebija viegli, pirmajā un otrajā kursā strādāju nepilnu slodzi. Sāku kā parasts programmētājs, kurš izstrādā programmatūru pēc noteiktas specifikācijas, testē to un raksta dokumentāciju. Tagad jau esmu vadošais izstrādātājs nelielā komandā. Ar mani kopā strādā vēl viens pavisam jauns programmētājs un sistēmanalītiķis. Mana atbildība ir sistēmu izmaiņas un uzlabojumi – lietas, kuras mēs taisām, skatoties nākotnē.
Kādi ir Tavi galvenie darba pienākumi kā programmēšanas inženerim?
Mēs uzņēmumā izstrādājam maksājumu karšu apstrādes sistēmu Card Suite, un mūsu klienti atrodas vairākās valstīs, pārsvarā tie ir bankas. Mums ir atsevišķa nodaļa, kas ir atbildīga par produktu attīstības plānošanu – viņi nosaka, kādas jaunas lietas mēs taisīsim. Prasības par produktu attīstīšanu (jeb tā sauktos izmaiņu pieprasījumus) var atsūtīt arī mūsu klienti caur produktu vadītājiem un biznesa analītiķiem, kuri analizē, kas tieši klientam ir vajadzīgs. Arī no klientu atbalsta nodaļas var nākt pieprasījumi par veicamajiem uzlabojumiem sistēmā. Projektu vadītāji tad plāno, kurš kādus uzdevumus veiks, lai varētu īstenot pasūtījumu.
Tiklīdz kāds jauns uzdevums nonāk līdz manai komandai, es kā programmēšanas inženieris sāku plānot, kā to labāk paveikt. Rakstu arī specifikāciju, kā produkts beigās izskatīsies un funkcionēs. Pašu uzdevuma izpildi var veikt citi programmētāji. Man jāvērtē izstrādes darbietilpība – cik darba prasīs analīze, cik programmēšana un visas pārējās izstrādes fāzes. Jāveic arī zināmi analītiķa pienākumi – jāizdomā, kā jauno lietu izstrādāt. Jāuzraksta specifikācija un programmēšanas norādījumi programmētājiem, kuri reāli rakstīs programmas kodus. Vēlāk programmēju gan pēc sava, gan sava kolēģa sistēmanalītiķa analīzes apraksta.
Atsevišķos gadījumos veicu arī programmatūras vai tās izmaiņu testēšanu, bet pārsvarā to dara testētāji. Ne pārāk bieži, taču nākas rakstīt arī dokumentāciju, jo jaunajai produkta versijai ar izmaiņu uzskaitījumu ir jāsagatavo apraksts. Tāpat mēdzu konsultēt programmētājus un testētājus, arī klientu atbalsta speciālistus.
Vai līdzīgi strādā arī tad, ja jālabo kāda sistēmā atrasta kļūda?
Ja no klientu atbalsta nodaļas saņemam atrastās kļūdas aprakstu, jāsāk meklēt, kur programmatūrā ir šī kļūda. Jāskatās programmas kodā, jāizmanto žurnālfaili jeb logfaili par programmas darbību (tajos var atrast kļūdu, pētot, ko klients ir darījis, kas noticis utt.). Visa šī informācija jāsalīdzina ar to, kā programmai būtu jāstrādā. Kad kļūdas iemesls atrasts – jāraksta rekomendācijas programmētājiem, kā kļūdu novērst, vai arī ieteikumi klientam, ko darīt, lai viņš savā darbā līdzīgas kļūdas vairs nepieļautu.
Kāda ir Tava darba ikdiena?
No rīta izlasu e-pastus un ieskatos uzdevumu uzskaites sistēmā, kurā minēti mani uzdevumi (tos saplāno IT projektu vadītājs). Daru savus ieplānotos darbus, kuriem klāt nāk arī dažādas neplānotas lietas. Piemēram – var atnākt pakonsultēties kāds no cita projekta komandas, testētāji var uzdot jautājumus, produktu vadītāji var konsultēties par veicamajiem darbiem (vai mums vajag attīstīt kādu lietu un cik daudz laika tas prasīs vai tml.). Arī pa e-pastu var tikt atsūtīti lūgumi pēc palīdzības, kad nepieciešams ātri palīdzēt klientam. Šie papildu darbi ļoti sarežģī ieplānoto darbu paveikšanu, bet ar to ir jāmāk tikt galā.
Kādas prasmes, īpašības ir nepieciešamas, lai labi veiktu šo darbu?
Jābūt pietiekamām tehniskajām zināšanām. Jābūt pacietīgam, nevar visu laiku jautāt citiem padomu. Jāspēj pašam sēdēt, prātot un tikt galā ar problēmu. Jābūt arī konsekventam, jo tu nevari atrast sīkas kļūdas, ja nevirzies uz priekšu pēc noteiktas soļu shēmas. Jābūt uzmanīgam pret detaļām. No otras puses, jābūt arī radošam, lai atrastu vietu uzlabojumiem un iespējas to realizēšanai. Programmētājam it kā komunikācijas prasmes nav vajadzīgas – ja pats visu proti izdarīt, vari arī ne ar vienu nerunāt. Taču, ja jākonsultējas, jāspēj sadarboties grupā. Galvenais – nevajag kautrēties prasīt palīdzību, jo tad viss ātrāk ies uz priekšu, nevis bremzēsies.
Kādi ir vislielākie izaicinājumi šajā darbā?
Tas, ka ļoti daudzi pie tevis var nākt pēc konsultācijām. Kā programmētājam ir grūti arī tad, ja veicamais uzdevums nav pietiekami labi formulēts. Grūti ir realizēt projektu, ja citi speciālisti slikti dara savu darbu. Tāpat viena no blakuslietām, kas šajā profesijā var nepatikt, ir nepieciešamība sēdēt pie monitora visu dienu.
Kas šajā darbā sagādā gandarījumu?
Padarītā darba rezultāti. Tas, ka sistēma strādā un esam izgudrojuši risinājumu, kas kalpos daudzus gadus.
Kādas ir izaugsmes iespējas šajā profesijā?
Iespēju ir ļoti daudz. Attīstoties tehniskajā virzienā, vari kļūt par sistēmanalītiķi. Sistēmanalītiķis savukārt var kļūt par izstrādātāju, kas atbildīgs par produktu un sistēmu attīstību, pēc tam var mēģināt attīstīties par sistēmu arhitektu vai tehnisko ekspertu. Var arī pārorientēties uz ieviešanas projektiem un uzstādīt klientam mūsu izstrādātās programmas, apmācīt cilvēkus ar tām strādāt. Var iesaistīties pārdošanas procesā vai kļūt par klienta biznesa analītiķi, kurš kopā ar klientu mēģina noformulēt klienta vajadzības, jo klients pats to ne vienmēr var izdarīt. Var kļūt arī par produkta vadītāju, kas nosaka kopējo programmatūras produkta attīstības virzienu no biznesa puses. Vai – vēl viens variants – var virzīties uz vadošā darba pusi un kļūt par projektu vai komandas vadītāju.
Ko Tu ieteiktu jauniešiem, kuri gribētu apgūt programmēšanas inženiera profesiju?
Jo agrāk jūs izvēlēsieties šo jomu, jo labāk. Noteikti skolas laikā jau mēģiniet nodarboties ar programmēšanu, iegūstiet iemaņas, jo pēc tam būs vieglāk. Svarīgi ir mācīties un PABEIGT studijas augstskolā. Diemžēl Latvijā nereti ir dzirdēts uzskats, ka IT jomā izglītība nav galvenais un galvenais ir tas, ko tu proti darīt. Tas nav tiesa, jo augstskola ieliek sistēmiskus pamatus un attīsta sistēmisku domāšanu, paplašina redzesloku un iepazīstina ar pasaules labāko praksi. Ir jāvelta laiks mācībām, un pēdējos kursos vajadzētu sākt meklēt darbu. IT jomā pieprasījums pēc speciālistiem aug, un ir arī iemesli, kāpēc tas turpinās augt. Tehnoloģijas turpina attīstīties.