Am stat de vorbă cu el în cadrul proiectului Oamenii din spatele codului și am aflat mai multe despre munca sa în cadrul companiei și despre provocările pe care le are un developer în fiecare zi.

”De la începutul angajării mele la Adobe, am lucrat în cadrul acestui proiect. Sunt un promotor “agresiv” a ceea ce înseamnă mentalitatea DevOps. Adică cea în care fiecare membru al echipei scrie, testează, optimizează, livrează în producție și este disponibil în caz că apar probleme”, ne povestește Alex.

Cel mai fericit este în momentul în care își vede munca ”în producție” și mai ales, când este folosită în mod direct de o masă mare de utilizatori. ”De asemenea, vreau să știu că munca mea are impact în sectorul tehnic în care activez (pozitiv, dacă se poate). Aș putea spune că dezvoltarea software fără feedback continuu de la utilizatori mă plictisește, iar cuvântul “rearhitecturare” mă îngrozește”, afirmă Alex.

Cum se alege o soluție tehnică în Adobe și ce trebuie să faci pentru a-ți impune o idee? Alex este de părere că, într-o companie în care costul unei soluții alese nu este o barieră, greutatea se pune pe scalabilitate și pe ceea ce se numește “high-availability”.

”O idee în cadrul Adobe o “impui” printr-un prototip (Proof of concept) coerent, printr-un plan de rezervă (în caz că soluția se dovedește neviabilă în faza alpha) și prin asigurarea echipei că răspunzi la orice oră la telefon în caz de forță majoră. De asemenea, orice soluție adoptată trebuie să fie ușor de “decuplat” din sistemele de producție în mod automat, iar tu trebuie să implementezi soluția de decuplare. În cazul unor produse care își permit doar câteva minute pe lună de nefuncționare, așteptarea intervenției umane pentru remedierea unei probleme este în sine o violare a contractului pe care-l avem cu clienții, deci automatizarea este esențială”, explică Alex.

De asemenea, într-un proiect care are un uptime 99.99%, în condițiile a milioane de request-uri și utilizatori simultani, secretul reușitei nu este chiar atât de greu de intuit. ”Automatizarea interațiunii cu sistemele de producție, reducerea la minimum a interventei umane în caz de eroare prin auto-detecție și rebalansare automată a aplicației, menținerea unor sisteme “brutale” de monitorizare care te forțează să adresezi problema sesizată. Și bineînțeles, o investiție foarte serioasă în resurse de infrastructură și de testare”, mai spune el.

Iar în ceea ce privește infrastructura, Alex Popa spune că în cazul Adobe, accentul se pune pe zona de cloud, iar motivele care stau la baza acestei decizii sunt destul de simple: reducere de costuri, simplificare logistică la nivelul companiei și deloc de neglijat - unele companii s-au specializat pe partea de Dată Center Operations (Amazon, Google, Rackspace) și au mii de oameni dedicați pentru administrarea dată centerelor.

La final, l-am provocat pe Alex la un exercițiu de imaginație: dacă ar fi CTO (Chief Technical Officer) pentru o zi, care ar fi prima decizie pe care ar lua-o ca să-și ajute colegii?

”O deschidere mai mare spre open-source. Ne definim ca o companie de produs și nu una de tehnologie, iar “publicarea” unor soluții interne ce pot fi îmbunătățite de comunitate este de multe ori îngreunată de politicile interne. Niciodată nu a fost blocată, doar îngreunată. Iar atunci când este îngreunată, inginerii au tendința să renunțe”.