O naluca a vremurilor noastre

In cei 15+ ani de cand sunt in IT, unele din cele mai dificile discutii (la bere sau pur si simplu aiurea) au fost purtate in jurul unei naluci a vremurilor noastre: inginerul de sistem. Cunoscut ca sysadm, sysadmin, system engineer sau varul mai indepartat, BOFH, inginerul de sistem este o prezenta rara in majoritatea mediilor de lucru (chiar si cel academic ;). Este greu sa gasesti pe cineva care sa aiba rol de inginer de sistem, mult mai greu sa gasesti pe cineva care chiar sa fi lucrat ca inginer de sistem si extrem de greu sa gasesti pe cineva care fie un inginer de sistem bun sau foarte bun.

La o prima “strigare” as spune ca una din cauze este faptul ca rolul de inginer de sistem nu este reglementat in nici o institutie de invatamant din Romania si ca nu exista un master sau curs in urma caruia cineva sa poata spune ca este inginer de sistem. O cauza a lipsei reglementarii este faptul ca rolul unui inginer de sistem este destul de greu de definit in detaliu, in literatura de specialitate el fiind regasit astfel: “Systems Engineering is an interdisciplinary approach and means to enable the realization of successful systems“. Intr-un alt loc am gasit o definite ceva mai simpla si mai pragmatica: “A systems engineer is a person who fixes specific system problems“.

In opinia mea, ambele au dreptate. Un inginer de sistem trebuie sa “viseze” operatiile uzuale (managementul sistemului de operare, servicii web,  baze de date, servicii de email, etc), sa stapaneasca concepte generale indiferent de modul in care sunt acestea implementate la nivel de sistem de operare (system init, package management, configuration management, mass provisioning, fail over, backup, etc) si sa inteleaga restul tehnologiilor (AAA, networking, CDN, cloud, security, etc) la un nivel care sa ii permita o viziune pertinenta si de ansamblu asupra unui sistem, viziune care sa ii permita sa poata folosi usor toate cunostinele sale pentru a putea gasi rapid solutia la probleme specifice.

Cred ca nivelul unui inginer de sistem este dat de suma cunostintelor sale tehnice raportate la diversitatea problemelor cu care a fost confruntat in raport cu dificultatea mediuliu la care a fost expus.

De exemplu, unei persoane care timp de 10 ani a mentinut servere web care gazduiau site-uri web cu trafic foarte mic ce necesitau doar PHP si MySQL, ii va fi destul de greu sa candideze pe un rol de inginer de sistem la o companie din automotive pentru ca suma cunostinelor sale din domeniul de systems engineering este aproape irelevanta in noul context. De asemenea, un inginer de sistem care timp de doar un 1 an a intretinut (nu construit) sisteme de AAA, servere de mail, site-uri web, clustere, HPC, cloud si a facut si network management va avea dificultati in a proba in adancime tehnologiile mentionate. Dificil si intr-un caz si in altul.

IMHO, formarea ca inginer de sistem ar trebui sa includa cel putin:

  1. acumularea cunostintelor teoretice:
    1. studii tehnice de specialitate in I.T. (FII sau Automatica si Calculatoare)
    2. un master in Inginerie de Sistem, care nu exista in momentul de fata dar care ar trebui sa puna accent pe intelegerea si configurarea tehnologiilor existente la momentul masterului (ar trebui actualizate in fiecare an) intr-un context mai mare. De exemplu:  cum integrezi un OpenLDAP cu sistemele existente de AAA la nivel de networking sau cum construiesti un sistem de monitorizare.
  2. aplicarea cunostintelor teoretice in viata reala:
    1. angajare/voluntariat intr-o institutie de stat, fundatie, asociatie, sau chiar la departamentul IT al institutiei de invatamant pentru cel putin 1-2 ani
    2. internship intr-o companie cu profil comercial pentru 6 luni – 1 an

Scoala trebuie sa construiasca bazele teoretice si sa ofere timpul necesar experimentarii si explorarii, in timp ce lucrul efectiv permite adaptarea cunostintelor teoretice la lumea reala. Este insa suficient ? Eu cred ca mai trebuie ceva, ceva despre care voi povesti in urmatorul articol 😉

Posted in it

Leave a Reply

Your email address will not be published. Required fields are marked *