În Interviuri

Michele Bertoli (Facebook): A fi parte dintr-o comunitate este unul dintre cele mai mari privilegii pe care noi ca developeri îl avem

JSCamp

Michele Bertoli este Front End Engineer la Facebook, iar în septembrie vine ca speaker şi trainer în cadrul JSCamp unde va vorbi despre soluţii alternative în testarea UI. Câteva insight-uri pe această temă aflăm de la el, mai jos:

 

>>Click here for English version

  • Move fast este unul din principiile pe baza căruia funcţionează lucrurile la Facebook. Cum se traduce acest principiu în procesul de testare UI, din cadrul echipei tale?

Dacă ne mişcăm repede putem dezvolta mult mai multe lucruri şi învăţa mai mult în proces. Să te ocupi de UI într-o companie ca Facebook unde lucrurile se întâmplă într-un ritm alert este o provocare aparte. micheleÎncercăm permanent să găsim abordarea cea mai potrivită care ne permite să lansăm produse de cea mai înaltă calitate fără ca acest lucru să afecteze viteza de reacţie.

Tooluri ca Jest, care este administrat de Facebook şi membrii comunităţii ne ajută mult să evităm ca lucrurile să se strice.

 

 

  • Una dintre cele mai mari provocări în UI este legată de ce anume este util să testezi. De acord?

Cred că unul dintre cele mai importante lucruri este să ne dăm seama care sunt testele cele mai simple de făcut care să genereze rezultate de cea mai bună calitate.

În procesul realizării de interfeţe complexe trebuie să ne asigurăm că lucrurile nu se schimbă pe neaşteptate. Ca atare, în cadrul Facebook am dezvoltat şi integrat tool-uri care să ne ajute să identificăm toate semnalele necesare.

 

  • Ce recomandări ai pentru echipele care sunt la început de drum cu partea de testare?

Din păcate nu există o abordare universală care să se potrivească tuturor echipelor. Ce am observat din experienţa mea – cu cât procesul de testare devine mai fluid cu atât developerii sunt înclinaţi să scrie mai multe teste.

Aşadar, sugestia mea este ca echipele să îşi dedice timp în a gasi toolurile potrivite şi a seta procesele necesare, ca să evite frustrări. Apoi, totul vine natural.

 

  • Testare UI automată sau exploratorie?

Orice testare care ajută echipa să fie mai încrezătoare în trimiterea codului spre producţie este binevenită. Cred că o combinaţie între cele două este abordare bună de pus în practică.

Dar dincolo de asta, este important să te concentrezi pe feedbackul obţinut în urma testelor.

De exemplu: de câte ori testele au ajutat în identificarea de cod greşit înainte de a-l trimite în producţie? Câte edge cases au acoperit? Acestea sunt întrebări fundamentale, mult mai importante.

 

  • Ne poti împărtăşi una din ideile pregătite pentru JSCamp unde eşti speaker toamna aceasta?

Scopul meu principal este ca prin ceea ce voi prezenta să determin lumea să devină mai interesată de testare. Dacă vor pleca de la conferinţă cu câteva idei noi legate de cum pot optimiza acest proces şi cum pot face întreaga experienţă mai plăcută, înseamnă că mi-am atins obiectivul.

O să vorbesc atât despre soluţii convenţionale cât şi alternative pentru testele de UI şi o să aduc în discuţie diverse elemente care ajută în transformarea procesului de testare într-o experienţă plăcută.

 

  • Care sunt principiile moderne de testare UI?

Felul în care developerii abordează testarea s-a schimbat de-a lungul timpului.  Observ că în prezent accentul se pune mai mult pe valoarea pe care testele o oferă decât pe partea cantitativă, cât anume acoperă un test.

De asemenea, datorită limbajului static typed developerii sunt înclinaţi să scrie mai puţine teste unit şi mai multe teste de integrare – ceea e este de dorit şi mult mai eficient.

 

  • Ce anume te-a ajutat cel mai mult de-a lungul experienţei tale?

Cel mai valoros lucru a fost şi este pasiunea pe care o pun în orice fac – profesional şi personal. Încerc să stau departe de activităţi plictisitoare sau care îmi consumă timp şi nu sunt productive.

De asemenea sunt depedent de învăţat lucruri noi în permanenţă, fapt care este o sursa bună de energie proaspată.

Un moment important a fost când am realizat că pentru a înainta, pentru a mă dezvolta, trebuie să am mintea deschisă şi să mă dezvăţ de ce învăţasem până atunci – am susţinut chiar şi o prezentare pe subiectul ăsta acum câţiva ani, în cadrul jsDay. Lucru asta mi-a schimbat cariera radical.

Timpul investit în ajutarea colegilor developeri pentru a-şi îmbunătăţi abilităţile este o activitate pe care o am destul de des şi mă ajută să cresc. Desigur studiul şi practica permanentă sunt esenţiale pentru munca mea de zi cu zi.

 

  • Cum îţi încarci rezervorul cu inspiraţie?

Descoperirea de noi surse de inspiraţie şi învăţare face parte din programul meu zilnic. Petrec mult timp pe Twitter – merită fiecare moment, şi totodată discut pe Slack cu developeri din comunităţi ce au legătură cu partea de Front-end şi JavaScript.

Cred că a fi parte dintr-o comunitate este unul dintre cele mai mari privilegii pe care noi ca developeri îl avem. Ar trebui să facem eforturi susţinute pentru a deschide mai mult acest mediu şi a aduce câţi mai mulţi pasionaţi în interiorul comunităţii.

***

.Click here for english version

Michele Bertoli (Facebook): Being part of a community is one of the greatest privileges that we have as developers

Michele Bertoli is a Front End Engineer at Facebook and this September he’ll be part of JSCamp as a speaker, where he’ll talk about new tools and solutions available that transform the way we approach UI testing. Read along some insights on this matter, from Michele:

 

  • “Move fast” is a concept part of how things work at Facebook. How does this concept translate into the process of UI testing inside the team? Can you tell us briefly about this?

micheleMoving fast enables us to build more things and learn faster. Creating UIs in a fast-paced company is a unique challenge and we work hard to find the right approach to ship high-quality products without losing speed.

Tools like Jest, which is maintained by Facebook and members of the community, help us avoid „breaking things”. :)

 

  • We think that the greatest challenge with user interface tests is not necessarily in how to execute them, but what to test. Is that right?

In the process of building complex UIs we want to make sure things don’t change unexpectedly. Therefore, we have developed and adopted tools that help us identify and provide the right signals.

The key is figuring out what are the most lightweight tests that generate the highest quality results.

 

  • What strategy would you recommend to teams that start implementing testing solutions into long-running projects?

Unfortunately, a universal approach that fits all the teams and projects doesn’t exist, but a pattern I’ve experienced in my career is that the more testing becomes a delightful experience, the more developers tend to write tests – which is a win/win.

Therefore, my suggestion is to put in the time to find the right tools and processes, and everything else will come naturally.

 

  • Should user interface (UI) testing be automated or exploratory? When is each type of testing appropriate?

Any test that makes the team more confident in shipping code to production and moving fast is right.

In computer science, it’s always a trade-off and I believe a mix of both automated and exploratory testing is the way to go.

However, it is important to focus on the feedback tests provide.

For example: how many times did your tests prevent you from pushing broken code to production? How many edge cases have you covered? These are the fundamental questions tests must help answer.

 

  • This September you’ll be part of JSCamp Romania, where you’ll share your know-how about UI testing. Can you pinpoint some of the main ideas you’ll talk about?

My primary goal with the talk is getting people excited about testing. If they’ll leave the conference with some new ideas on how to improve their testing experience, it means my presentation worked.

I will explore conventional and alternative solutions to test UIs and components, which all aim to make testing an enjoyable experience.

 

  • What are the modern UI testing principles?

The way developers are approaching testing is changing over time. I see how focusing on the value tests provide rather than, for example, code coverage is the trend.

Also, thanks to static typing (e.g. Flow) developers tend to write less unit tests and more integration ones, which is optimal and more efficient.

 

  • Can you mention some important hard skills & soft skills that helped you throughout your career, so far?

The most valuable thing that helped out with my career (and my life) is passion. I put love in everything I do and tend to avoid activities I consider boring or consume my time unproductively.

I’m also addicted to learning new stuff, which represents a continuous source of renewed energy.

An important moment is when I realised that, in order to move forward, I had to be open and „Unlearn everything” (I gave a talk on this topic a few years ago at the jsDay). That changed my career forever.

Investing time helping other developers to improve their skills is also an activity I tend to do quite often, and makes me grow. Finally, keep on studying and practising (e.g. katas) is essential for my day-to-day job (and helps with job interviews as well).

 

  • What’s your daily inspiration & knowledge feed?

Getting inspired and learning new things represents a significant part of my daily routine. I spend a lot of time on Twitter (it’s totally worth it), and talking with developers in Frontend and JavaScript related communities on Slack.

I believe being part of a community is one of the greatest privileges that we have as developers, and we should all work to help more people to join, and make our environment more inclusive.