Extindem seria noastră de articole despre Tech Experts cu o nouă temă—Tech Teams. În aceste interviuri ne propunem să aflăm care sunt provocările din spatele celor mai complexe proiecte dezvoltate de către echipele de experți din msg România.
◦◦◦
Astăzi povestim cu divizia de front-end development din spatele unui produs de Performance and Profitability Management (PaPM) al companiei Nexontis, client msg Group. Printre utilizatorii finali ai acestui produs se numără giganți Enterprise precum Google, Dell, AIG, Bosch, Volkswagen, și multe altele. Urmaș al unui alt produs—„Financial Services-PERformance Management” (FS-PER), creat în 2015 și dezvoltat, inițial, cu scopul de a analiza performanțe economice în domeniul Asigurărilor și cel Financiar-Bancar—PaPM este, în esență, un motor de calcul de costuri pentru diverse procese din anumite industrii precum Aviației, Electronice, industria Chimică, etc.
La începutul anului 2018, a fost asamblată echipa din spatele proiectului, focusată pe rescrierea unor funcționalități de modelare și afișare a datelor sub diverse forme de comunicare vizuală. Implementarea inițială a fost facută în SAP Floorplan Manager, iar acum echipa reproduce interfața produsului în React. Pe lângă dezvoltarea de noi funcționalități, echipa asigură și controlul calității produsului și mentenanța lui.
msg: Care sunt tehnologiile principale pe care le folosiți în dezvoltarea acestui produs?
Călin: Pentru partea de Front-End folosim tehnologii React, respectiv TypeScript. Lucrăm, în mare parte a timpului, cu o serie de librării JavaScript pe care le configurăm să reprezinte vizual datele primite din Back-End. Folosim Highcharts.js, o librărie care oferă mai multe opțiuni de a reprezenta datele în diferite moduri, prin diferite tipuri de diagrame cum ar fi: Bar/Column, Pie, Sankey, Heatmap, etc. Alte librării des folosite pe proiect sunt Go.js pentru modelarea datelor, Bryntum Gantt, CKEditor și altele. Pe partea de Back-End folosim SAP cu servicii Gateway, deocamdată, dar anul acesta am început lucrul la rescrierea backend-ului PaPM în Node.js.
Örs: Eu și cu Alex am parcurs un training intern de Front-End în React și Redux, apoi am început proiectarea și implementarea unui program intern folosind aceste tehnologii.
Alex: Am avut parte de aproape două luni de training pe React, deoarece nu știam prea multe pe partea de Front-End. Apoi, împreună cu Örs am început să lucrăm la o aplicație internă, scrisă tot în React. Pe lângă asta, am avut împreună cu toată echipa un training de câteva zile, pentru partea de Business Logic a sistemului PaPM.
msg: Care este configurația echipei
Tech Team: Din punct de vedere geografic, echipa este distribuită în mai multe locații—Walldorf (Germania), Cluj-Napoca (România), Wrocław (Polonia), Manila (Filipine), Belgrade (Serbia).
În Walldorf se află sediul Nexontis, unde operează managementul firmei și o echipă mixtă, formată din patru software developers și câțiva content developers. În Wrocław se află o echipă de 10 software developers și un UX designer care fac parte dintr-o companie care implementează produsul. În Filipine se află 2 testeri QA, iar în Serbia câțiva content developers, iar ambele echipe fac parte din msg Group.
În Cluj suntem 3 colegi care lucrăm pe Front-End: Örs Danalizi-Eross, Alex Ciubuc și Călin Cara. Există și o echipă de Back-End, tot în Cluj, unde lucrează 8 colegi, cu care, însă, nu ne prea intersectăm în procesul de development.
msg: Care ar fi avantajele, respectiv dezavantajele aduse de munca remote într-o echipă multiculturală care lucrează de la distanță?
Călin: Printre avantaje aș menționa faptul că ai ocazia să înțelegi cum gândesc și lucrează oameni din diverse culturi, să exersezi limba engleză, și, dacă ai noroc, reușești să vizitezi echipele din alte țări. Până acum am fost doar în Germania și Polonia, dar sperăm să ajungem și în Filipine :). Un dezavantaj major ar fi faptul că nu ne vedem atât de des cu membrii echipei pe cât aș fi vrut.
Örs: Pros: pot spune că suntem „united in diversity”. Sunt multe diferențe culturale între noi, totuși cred că ne înțelegem și colaborăm foarte bine, numitorul nostru comun este că toți suntem oameni toleranți și deschiși. Cons: avem puține ocazii să ne întâlnim.
Alex: Munca remote ne ajută, clar, să ne dezvoltăm abilitățile de comunicare și cunoștințele de limbi străine. Și mie îmi lipsește interacțiunea socială cu colegii.
msg: Dacă ar fi să specificați top 3 puncte forte ale acestui proiect, care ar fi acelea?
Călin: În primă fază, business requirement-urile pot fi discutate direct cu managementul Nexontis, factor care asigură un parcurs mai scurt și mai eficient de la problemă, la soluție. Pe partea tehnică, echipa este foarte experimentată, învățăm multe lucruri unii de la alții legat de diverse tehnologii—React, JavaScript, TypeScript și DevOps în general. Nu în ultimul rând, există posibilitatea de a avea un impact semnificativ asupra produsului, sugestiile sau propunerile de îmbunătățire fiind întotdeauna binevenite și încurajate.
Örs: Dacă ar fi să aleg doar trei puncte, aș alege următoarele: tehnologii interesante și implementate la standarde înalte de calitate, experiența generoasă a echipei și deschiderea ei spre colaborare, precum și faptul că vorbim despre un domeniu de activitate plin de provocări.
Alex: E un proiect mare, ceea ce îți oferă șansa să explorezi o bună parte dintre tehnologiile implementate, ceea ce înseamnă că nu te vei plictisi curând. Aș mai adăuga și diversitatea din echipă, fapt care ne oferă posibilitatea de a ne îmbogăți cultural prin intermediul comunicării în altă limbă decât limba română, precum și prin intermediul delegațiilor de afaceri. Și nu în ultimul rând, un factor major îl reprezintă și posibilitatea de a discuta direct cu managementul Nexontis pentru cerințe, task-uri, provocări de orice fel.
msg: Care sunt dificultățile pe care le întâmpinați cel mai des?
Călin: Folosim intens Highcharts.js, și în situațiile în care librăria nu oferă o funcționalitate de care avem nevoie, trebuie să recurgem la tot felul de hack-uri/ workaround-uri creative.
Örs: De obicei mă lovesc de multe dificultăți tehnice, dintre cele mai diverse, pentru că încerc să mă ocup de task-uri legate de diferitele părți ale aplicației. Eu consider că e o oportunitate de învățare.
Alex: Cel mai des întâmpin probleme în rezolvarea bug-urilor. Proiectul e mare, deci sunt multe aspecte pe care trebuie să le știu în detaliu pentru a rezolva unele probleme. Ultima dificultate de care m-am lovit a fost un bug în CKEditor, pentru care a fost nevoie să fac primul meu patch pe un package.
msg: Care ar fi cele mai mari reușite ale echipei?
Tech Team: Un punct forte al echipei din Cluj ar fi adaptarea rapidă la mediul și cerințele tehnice ale proiectului, precum și integrarea fluentă în echipa multiculturală deja existentă.
msg: Care sunt abilitățile pe care ați reușit să vi le dezvoltați pe parcursul activității voastre în cadrul acestui proiect?
Călin: Intrarea pe proiect a fost puțin haotică pentru mine. Am avut nevoie de 2 săptămâni să mă acomodez cu proiectul, până am început să înțeleg cum funcționează diferitele părți ale aplicației. Am descoperit că React învățat de pe Udemy ≠ React într-un proiect Enterprise. Pe lângă alte aspecte tehnice, precum îmbunătățirea cunoștințelor de JavaScript, TypeScript și React, mă bucur că am învățat să lucrez mai bine cu Git.
Örs: Am reușit să aplic cunoștințele mele de React într-un proiect real, am învățat mult despre TypeScript și am început să înțeleg cum se construiește o aplicație complexă folosind tehnologii web de actualitate.
Alex: Am învățat câteva tehnologii cu care nu am avut deloc sau am avut prea puțină interacțiune înainte de a lucra pe acest proiect. Mi-am îmbunătățit clar cunoștințele de React și Javascript, respectiv Typescript.
msg: Pe parcursul anilor în care ați lucrat împreună, echipa și-a format un mod de a face lucrurile. Dacă echipa ar avea un motto, cum ar suna??
Tech Team: „I took a lot of damage”—cu referire la faptul că din când în când te lovești de vreun task mai greu care îți dă knock-out sau „Taking one for the team”—când norocul nu e de partea cuiva. Gândim și lucrăm ca o echipă, iar asta ne face mai motivați în fața oricărei provocări.