Gebėjimas perprasti kliento verslą, įvaldyti naujausias technologijas ir mokėti dirbti komandoje yra būtina sąlyga kone kiekvienos technologijų profesijos atstovui. Vis dėlto ne visada vien tik būtini įgūdžiai padeda įsitvirtinti IT sektoriuje.
Kokių savybių ir kompetencijų derinio reikia šiandienos IT specialistui? Kada nėra būtinybės gerai mokėti programuoti? Ir kurių specialistų poreikis ateityje gali pralenkti net programuotojus? Įžvalgomis apie IT profesiją dalijasi JAV programavimo paslaugų įmonės „Devbridge“ DevOps praktikų vadovas Marius Guobys.
Kokių kompetencijų ir savybių reikia žmogui, kuris nori pradėti dirbti IT sektoriuje?
Vienos konkrečios kompetencijos negalėčiau išskirti. Visų pirma, kaip ir kiekvienoje srityje, yra būtinas noras ir motyvacija. Jeigu į darbą ateini tik „prastumti“ laiką, atsigerti kavytės, pažaisti su „Playstation“, tai neatneš nei asmeninės naudos, nei sukurs pridėtinę vertą kompanijai, kuriai įsipareigoji. Labai svarbi savybė yra noras ir gebėjimas tobulėti, o jeigu dar ir esi savarankiška asmenybė, tai be problemų ne tik „prasimuši“ IT rinkoje, bet ir įgysi reikiamas kompetencijas, atrasi savo karjeros kelią. Imlumas naujovėms taip pat yra itin vertinama savybė – technologijos keičiasi, rinka prisitaiko, todėl būtina neatsilikti nuo didelio tempo. IT sektoriuje praverčia ir kritinis mąstymas. Dirbdami su pasauliniais finansų, paslaugų ir gamybos sektorių klientais Šiaurės Amerikoje ir Vakarų Europoje, neretai su kolegomis lietuviais sulaukiame komplimentų už savo aštrią nuomonę, net ir tiesmukumą bei atvirumą.
Daugelis IT sritį tiesiogiai tapatina su programavimu. Tačiau jei žmogus nenori programuoti, ar jis gali sėkmingai įsitvirtinti IT rinkoje ir dirbti įdomų darbą?
Jeigu nori sėkmingai dirbti IT, tai dar tikrai nėra būtina sąlyga gerai mokėti programuoti. Žinoma, tai suteikia konkurencinį pranašumą. Tačiau kartais užtenka ir bendrųjų programavimo principų suvokimo, būti parašius vieną ar kitą skriptą ( t.y abstraktus kodo gabaliukas, kuris perkelia duomenis iš vienos vietos į kitą) ir jau galima pradėti savo karjeros kelią IT sektoriuje. DevOps yra viena iš tokių sričių. Ne be reikalo žodis „DevOps“ (angl. „Development and Operations“) – populiariai išvertus reiškia programavimą bei administravimą. Be jokių abejonių, norint darbuotis DevOps srityje, stiprūs programavimo žinių pagrindai gelbsti, bet tai tikrai nėra svarbiausia kompetencija.
Ką kasdieniniame darbe veikia DevOps specialistas?
Čia nerasi monotoniškų veiklų arba pasikartojančių užduočių. Vieną dieną gali tekti dirbti su debesijos sprendimu ir spręsti didelio vartotojų kiekio sukeliamus iššūkius, po mėnesio jau žiūrėk ir naujas projektas, naujos technologijos, kurias turi ne tik pats išbandyti, bet ir pasiūlyti komandai. Nors terminas „DevOps“ IT sektoriuje atsirado kone prieš dešimtmetį, tai vis dar yra gana naujas reiškinys IT rinkoje. Daugelis įmonių dar tik pradeda savo kelią ir bando taikyti DevOps metodikas. Dėl šios priežasties vis labiau auga DevOps specialistų poreikis. Tai nėra vienos siauros krypties specialistas, turintis tik vieną kompetenciją. Šiuolaikiniai DevOps profesionalai dirba kartu su programuotojų ir testuotojų komandomis ir svariai prisideda prie produktų kūrimo.
Kaip tai atrodo realybėje?
Pavyzdžiui, programuotojai sukūrė tobulą produktą, parašė visas reikiamas kodo eilutes, o testuotojai viską ištestavo, užtikrindami nepriekaištingą kokybę. Tad esame pasiruošę uždirbti milijonus eurų, bet liko neišspręstas klausimas: kaip šis produktas pasieks vartotojus? Juk neužtenka daug tobulų ir kokybiškų kodo eilučių. Čia mums ir padeda DevOps specialistai. Jie sukuria produktui reikalingą infrastruktūrą – t.y. serverius, duomenų bazes, tinklus, talpyklas ir t.t. DevOps specialistas yra atsakingas už šios infrastruktūros dizainą bei įgyvendinimą, taip pat parenka tinkamiausias technologijas, įrankius. Pamatinė DevOps profesionalų misija yra kiek įmanoma daugiau procesų automatizuoti, todėl šie specialistai taiko specialius įrankius šiam tikslui pasiekti. Pavyzdžiui, jeigu naudojami yra debesijos sprendimai – tada stengiamės visą reikalingą infrastruktūros sukūrimą ir priežiūrą automatizuoti. Tačiau nepakanka tik sukurti ir puoselėti infrastruktūrą, kuri kaip ir parašytas kodas bus tobula. Reikia taip pat ir sukurti procesą, kuris tą mūsų tobulą kodą patalpins į jau sukurtą infrastruktūrą bei padės pritaikyti visus reikiamus pakeitimus, jei tokių reikia. DevOps specialistai sukuria automatizuotus procesus, užtikrinančius, kad minimas kodas be jokių trikdžių iškeliautų į sukurtas aplinkas.
O kaip tai atrodo iš vartotojo perspektyvos?
Paprastas pavyzdys, jūs gaunate pranešimą į mobilųjį telefoną, kad jūsų mėgstamai programėlei yra reikalingas atnaujinimas. Kaip tas atnaujinimas pasieks jūsų telefoną – štai čia ir gali būti viena iš DevOps specialisto užduočių. Kitas pavyzdys – talpinate mėgstamame socialiniame tinkle nuotraukas, video ir t.t. Ar kada nors pagalvojote, kodėl ten visada yra vietos? Štai čia ir gali būti gero DevOps specialisto atsakomybė, jis bus puikiai suplanavęs visą reikiamą infrastruktūrą bei ją įgyvendinęs. DevOps specialisto kompetencijų lauko negalime patalpinti į griežtus rėmus – jo atsakomybės sritys yra ganėtinai plačios apimties, o čia paminėjau tik labai mažą dalį to, su kuo susiduria šios profesijos atstovai.
Minėjote, kad mokėti programuoti šios profesijos atstovams nėra būtina. Tad kokių kompetencijų ir gebėjimų jiems reikia?
Paprastai DevOps specialistai turi programavimo pagrindus, bet jie nėra programuotojai. DevOps profesionalai geba skaityti ir suprasti parašytą kodą keliomis skirtingomis programavimo kalbomis. Tačiau paprastus kodo gabalus, kurie padeda automatizacijos procese, šie specialistai turi gebėti sukurti patys. Itin svarbu, kad DevOps specialistai turėtų geras pamatines infrastruktūros žinias, t.y. kaip veikia tinklai, serveriai, duomenų talpyklos, debesijos sprendimai ir t.t. Taip pat šie specialistai turi išmanyti ir suprasti bendruosius programavimo, testavimo principus bei naujausias technologijas.
Akivaizdu, kad darbo skelbimuose sparčiai auga ne vien tik aukščiausio lygio programuotojų, bet ir DevOps pozicijų skaičius. Ar gali būti, kad ateityje būtent šių specialistų poreikis išaugs ir aplenks programuotojus?
Daugelis kompanijų vis dar yra savo DevOps atradimų kelyje ir nėra pasiekusios to lygio, kurio nori. Yra didelis poreikis taikyti automatizacijos, debesijos sprendimus, transformuoti darbą komandose ir IT įmonių darbo kultūrą. Daugelis organizacijų perkelia savo procesus, įrankius, infrastruktūrą ir nori visa tai automatizuoti. Tačiau specialistų pasiūla yra ganėtinai menka, nes universitetai jų dar tiesiog neruošia, todėl įmonėms, kaip ir mums paties, tenka auginti specialistus patiems. Žinoma, tai yra labai sudėtinga padaryti. Jeigu pažvelgtume į tai, kaip DevOps specialistas gali automatizuoti vieną ar kitą procesą – yra bent kelios dešimtys būdų, o jis juk turi sugebėti parinkti optimalų sprendimą. Technologijos itin sparčiai keičiasi ir žengia į priekį, todėl šioje ar bet kurioje IT srityje būtina spėti kartu.