Attila Balazs realizează seria de interviuri "Working Virtually" pentru Today Software Magazine. Acestea au în vizor dificultățile și oportunitățile lucrului într-o echipă distribuită. Primul invitat este Vlad Mihalcea.
Attila Balazs: Ne zici, te rog, câteva cuvinte despre tine?
Vlad Mihalcea: Numele meu este Vlad Mihalcea. Am o firmă Hypersistance dar în același timp lucrez și pentru Red Hat ca developer advocate pentru proiectul Hibernate în care am mai multe roluri.
A.B. Care este structura echipei? Sunteți toți remote?
V.M: Totul este distribuit. Nu există niciun birou. Toată lumea lucrează de la el de acasă pentru că suntem peste tot în lume. Avem o colegă în Seattle, avem un coleg în Texas, unul e în Carolina de Nord, avem în Franța, avem în Italia, Marea Britanie și bineînțeles, România. Singurul dezavantaj este că e dificil să găsești o perioadă în care să fim toți disponibili.
Vlad Mihalcea și Attila Balazs
A.B. Voi reveni asupra acestui subiect pentru că este interesant. Prima dată voiam să întreb dacă este primul tău loc de muncă remote sau ai mai lucrat în echipe distribuite?
V.M: Acesta este primul loc de muncă remote. Înainte de a lucra pentru Red Hat și Hibernate lucram numai pentru firme din Cluj. Am lucrat la birou, mergeam la serviciu, eram toți la același loc și acesta este prima dată când lucrez așa.
A.B. Care crezi că sunt avantajele și dezavantajele pozițiilor remote?
V.M: Cel mai mare avantaj este independența, faptul că poți să-ți faci orarul în așa fel cum dorești. Acest lucru când ești tânăr poate nu contează așa de mult, dar în momentul în care ai copii, începi să simiți că acest lucru are din ce în ce mai multă valoare. Vrei să fii mult mai flexibil din punctul acesta de vedere.
Al doilea lucru important este partea financiară. Nemaifiind angajat ci fiind colaborator sari din tiparele nivelului salarial care se vehiculează în Cluj și atunci poți negocia direct.
Și un alt lucru care mi se pare important este că dacă vrei să te specializezi pe un domeniu, trebuie să găsești angajatorul care lucrează în nișa respectivă. În cazul meu, este partea de date. Orice legate de date: baze de date relaționale, nerelaționale, caching, etc. . Dacă lucrezi la o firmă tradițională, vei lucra pe un proiect în care dezvolți o soluție cap-coadă în care vei fi implicat în multe alte subdomenii : front-end, back-end, devops, ….
Există și anumite dezavantaje: nefiind în același loc cu colegii, e mai greu de comunicat. Cu anumiți colegi care sunt în Europa comunicăm relativ ușor, dar team-leaderul nostru este în America și atunci cu el pot să vorbesc o oră-două pe zi. Dacă ar fi să dezvolți un produs care are un backlog și un proces bine structurat, s-ar pierde mult timp din cauza acesta. Avantajul nostru este că lucrăm pe open-source și atunci nu suntem așa de presați. Nu avem un deadline fix - avem un motto "it's ready when it's ready".
Un alt dezavantaj este că unora li se pare foarte greu să lucreze de acasă. Discutam cu un prieten care zicea că dacă merge la serviciu cu toată lumea, are un sentiment de apartenență la un grup, "toți lucrăm împreună". Eu nu am problema asta. Pot lucra de la mine din bucătărie și-mi găsesc motivația.
A.B. Deci tu lucrezi de acasă?
V.M: Eu lucrez de acasă. Acolo e și soția, acolo sunt și copii. E o provocare.
A.B. Ai o cameră specială pentru lucru?
V.M: Nu am nimica amenajat. Lucrez din bucătărie. Pe masa din bucătărie am laptopul și atâta. Nici măcar monitoare externe nu am. Am doar un laptop și acolo se produce toată magia.
A.B. Ce unelte de colaborare folosiți?
V.M: Baza reprezintă emailul. Cel mai important la email și la HipChat este că lucrează ca o coadă la care adaugi mesaje și din care le preiei. Destul de rar facem întâlniri fizice - doar odată pe an. La fel și cu video-conferințe - rar le folosim. Așa lucrăm noi.
Sunt alte echipe care lucrează pe Hibernate OGM care se întâlnesc virtual o dată la două săptămâni. Dar aceasta este în funcție de dinamica fiecărei echipe.
A.B. Folosiți un anume proces gen Scrum?
V.M: Folosim JIRA și alte tooluri oferite de Atlassian. Acestea rezolvă partea de issue-uri și release-uri. Nu avem un proces standardizat. Avem un team-leader care specifică prioritățile, dar fiecare trebuie să știe să se gospodărească și să lucreze pe ceea ce este important. Trebuie să fii responsabil, să știi că anumite issue-uri sunt mai prioritare decât altele. Prioritățile fiecăruia diferă și împreună încercăm să acoperim cât mai multe aspecte ale comunității și ale dezvoltării.
A.B. Cine crezi că este potrivit pentru astfel de locuri de muncă?
V.M: Trebuie să știi să te organizezi și să nu depinzi de un proces oferit de firmă. Când lucrezi într-o firmă, nu-ți dai seama de toate lucrurile care vin de-a gata. Trebuie să fii bine organizat.
În al doilea rând, neavând contact așa de strâns cu colegii, nu te poți baza pe ei pentru rezolvarea problemelor. Trebuie să știi să rezolvi aproape toate problemele folosind Google, Stack Overflow, etc. .
A treia caracteristică ar fi să nu te deranjeze lipsa de contact social. Dar există și alternativa, cum ar fi spațiile de co-working unde poți să contracarezi problema lipsei contactului social.
A.B. Și cum poți găsi un astfel de job?
V.M: Eu n-am aplicat la jobul acesta. Am început cu un blog, cu care voiam să fac un master-class de Hibernate, ceea ce a durat aproape un an. Publicam un articol pe săptămână. Iar după o anumită vreme au remarcat și cei de la Hibernate acest lucru și m-au întrebat dacă nu vreau să fac ceva ce fac pentru bani. Ei m-au găsit pe mine. A fost un caz particular.
A.B. Pe lângă toate lucrurile pe care le faci, ai scris și o carte. Ai putea să ne zici câteva cuvinte despre ea?
V.M: Cartea se numește "High-Performance Java Persistence" și nu se referă doar la Java Persistency API (JPA). Conține informații despre baza de date, drivere JDBC, Hibernate, jOOQ, etc. . În carte găsești toate detaliile începând cu baza de date, cum funcționează tranzacțiile, concurrency control, JDBC, particularități pentru Oracle, SQL Server, PostgreSQL, MySQL, JPA, ce oferă în plus / care sunt limitările și cum folosim și jOOQ. Îmbinând toate acestea poți să ai un stack cu care poți aborda aproape orice situație când vrei să interacționezi cu baze de date.
Legat de procesul de scriere: nu m-am apucat să scriu o carte. Totul a pornit cu master-class-ul de Hibernate care a durat un an: am scris un articol pe săptămână și pe parcurs mi-am dat seama că există interes și o piață. Și atunci la sfârșitul anului am luat decizia să scriu o carte. Eu n-am apelat la o editură, ci am făcut totul de unul singur. A fost 100% self-published. Am purtat mai multe pălării - de la scriitor, editor, traducător, marketing - orice e nevoie.
Cartea are trei părți: prima parte cam de 120 de pagini e despre bază de date și JDBC. Încearcă să descrie fundamentele și arată și limitările JDBC. A doua parte vorbește despre JPA și Hibernate care este necesar dacă vrei să optimizezi performanța. Partea aceasta e cea mai lungă. Și ultima parte este despre jOOQ și completează cartea.
A.B. Ce ar mai fi trebuit să întreb?
V.M: Cred că în mare am acoperit tot cea ce ține de acest subiect. Un lucru care mai trebuie menționat este că trebuie să-ți găsești contabil. Există și firme de contabilitate cu care poți colabora. Trebuie să-ți plătești taxele. ANAF îți oferă acuma și platforma online - poți să faci toate lucrurile acestea direct de la tine acasă. Nu faci doar dezvoltare, trebuie să te ocupi și de părțile acestea de care în mod normal - când ești la o firmă - există oameni plătiți pentru aceasta. Trebuie să te gândești că ești o mică întreprindere și trebuie să te ocupi de fiecare aspect.
Mulțumesc pentru interviu!
de Lucian Torje
de George Bara