Salutare, Răzvan! Pentru început spune-ne câte ceva despre tine și despre Code for Romania.

Sunt front-end developer de 10 ani și am lucrat în România în diverse agenții de digital. Cel mai mult am lucrat într-o agenție globală ce are birou și în România. Aici am avut ocazia să lucrez pe brand-uri la care doar visam, am luat premii, am reparat bug-uri, am făcut proiecte mari și am lucrat alături de oameni foarte talentați. Acum locuiesc în Olanda, lucrez tot într-o agenție.

Code for Romania este un ONG creat la începutul anului de un grup de prieteni. Ne propunem să formăm o comunitate de oameni de IT care să dezvolte “civic apps”.

Proiectul a pornit de la o nevoie de informații specifice sau pentru că în România nu există o mișcare amplă de tip “civic app”? Ne poți vorbi puțin și despre “civic apps”, pentru cine nu este familiar cu termenul?

Code for America are în 6 ani aproximativ 600 de repository-uri în GitHub, mici și mari; cei de la Code for Finland sunt angajați la Guvern și lucrează direct cu instituțiile; în Barcelona s-au influențat politici ale primăriei legate de infrastructura orașului datorită unor “civic apps”. Putem spune că nu există o mișcare amplă de “civic apps” în România sau, cel puțin, nu una care să cuprindă toate ariile necesare dezvoltării unor “civic apps” eficiente.

Un “civic app” bun activează publicul larg pentru o dezvoltarea sănătoasă a societății. Până să ajungem la concepte precum “e-voting” sau altele putem face pași către mai multă implicare prin “civic apps”. Vrem ca oamenii să interacționeze mai simplu cu instituțiile și să aibă acces la informații rapid și pe înțelesul lor.

De ce ai ales să te implici într-un astfel de proiect?

Căutam de ceva vreme o cauză sau un proiect în care să mă implic în afara jobului, ceva cu o miză socială relevantă. Dorința a fost și mai mare după evenimentele triste din țară de anul trecut #coruptiaucide. S-a concretizat odată ce i-am scris lui Bogdan Ivănel, fost coleg de liceu, care începuse împreună cu mai mulți prieteni să pună bazele Code for Romania. Timing-ul a fost perfect.

Ce efect au avut/ați văzut pentru proiectele deja implementate?

Este prea devreme să vorbim despre efectele proiectelor terminate. Doar Vot Diaspora este live. Este un simplu tutorial despre cum te puteai înregistra la vot în diaspora, 40 de pagini de “legaleză” traduse în 5 pași ușor de înțeles. Restul proiectelor sunt în diferite stadii de dezvoltare și abordează subiecte și seturi de date mult mai complexe.

Ce am observat însă, mai ales acum după lansare, este un entuziasm mare al oamenilor față de ideea organizației. Nu ne așteptam să avem atâta susținere.

Cum se lucrează pe un proiect? Ne poți descrie modul de lucru? Am văzut că aveți cont pe GitHub. Veți lucra cu pull requests, tickets, etc.?

Pentru fiecare proiect există un project owner și un tech lead. Ei participă activ la conceptul proiectului și definirea user experience-ului.

Tot ce ține de cod se întâmplă pe GitHub. La început consider că ar fi mai greu cu pull-request-uri pentru că implică mai mult timp din partea programatorilor și vrem ca interacțiunea să fie mai mult decât un șir de comment-uri între necunoscuți. Vrem în primul rând sa creăm o comunitate în jurul organizației.

Folosim Slack foarte mult. Proiectul se prezintă cu un simplu @channel pe canalul #develop. Dacă rezonezi cu ideea, pur și simplu te implici și începi să dezbați arhitectura și nevoile tehnice ale proiectului. Unele proiecte pot avea sub-proiecte care presupun doar digitalizarea unei surse de informații înainte ca aceasta să ajungă într-un app.

Avem și un canal #devops pentru că ne plac build-urile automatizate în Amazon Web Services și Azure.

Odată stabilite user experience-ul, arhitectura și echipa începem dezvoltarea. Avem întâlniri regulate și planificăm în funcție de timpul fiecăruia. Ne dorim să se lucreze cât mai natural și toți colegii să se simtă implicați. Ținem foarte mult la asta, considerăm că fără o creștere organică nu o să reușim să scalăm comunitatea pe cât de mult ne dorim.

Cum veți asigura comunicarea între developeri pe proiect?

Toată comunicarea se întâmplă în principal pe Slack, dar și Google Hangouts sau Skype; ne place mai mult Hangouts. Ne place și mai mult când ieșim săptămânal la bere în București sau ocazional în diaspora. Am pornit din Olanda, avem colegi în Oslo, Zurich, Londra și Praga, avem și un newsletter regulat către comunitate.

Cum se lucrează pe partea de design?

Sunt proiecte pe care nu vreau să le lucrăm fără style-guide și designer dedicat, natura app-urilor face însă ca multe interfețe să poată fi începute direct în browser, dintr-un Moqups. Am lucrat mai mult la nivel de “visual feedback” cu câțiva designeri, fără Sketch sau Photoshop la pixel. Lucrând cu un user experience bine pus la punct un front-end poate să construiască interfețe simple și funcționale. Designer-ul intervine prin feedback regulat, ajută cu anumite elemente vizuale, cosmetizări și detalii care completează experiența.

Orice produs Code for Romania va fi responsive, fără excepții.

Cum se vor alege tehnologiile pentru un proiect? Poți da un exemplu de “stack” pentru un proiect Code for Romania.

Tehnologiile folosite pe un proiect sunt alese de oamenii care doresc să colaboreze pe proiectul respectiv. Centru Civic folosește TypeScript, Angular 2, Node și Sass. Alte proiecte sunt în Python și .NET. Nu vrem să ne limităm la un anumit stack, vrem să avem un cod maintainable cu o deschidere precaută față de framework-uri și tehnologii exotice.

Să presupunem că sunt un developer cu un oarecare interes pentru proiectul vostru. Care sunt pașii următori după ce vă contactez?

Este simplu, după ce ne scrii, vei fi contactat de noi și vom stabili o întâlnire cu unul dintre tech leads. Dacă îți exprimi interesul pentru un proiect anume considerăm asta o prioritate. Decizia finală depinde însă de stadiul proiectului și de skill-urile tale.

Cu siguranță sunt developeri care sunt de părere că skillurile lor nu sunt avansate și abandonează impulsul de a vă scrie. Cum i-ai încuraja să vă contacteze? Ce beneficii au dacă se alătură proiectelor voastre?

Nu trebuie să fie, mi-ar placea să fie entuziasm susținut și, în primul rând, dorință de implicare.

În comunitatea Code for Romania vor găsi developeri cu experiență de la care sigur au ce învăța doar lucrând cu ei pe un proiect.

Evident, vor exista challenge-uri, dar cu toții știm că prin challenge-uri și studiu putem progresa ca profesioniști. Cred că este ceva pozitiv pentru orice om să vrea să fie mai bun în fiecare zi și putin mai entuziast în general, mai ales în România contemporană.

Ție când îți dau invite pe Slack?