L'importanza della quality engineering è tornata alla ribalta mentre interi settori si spostano verso operazioni da remoto cercando di mantenere la qualità dei loro processi e prodotti.
Il COVID è stato un punto di svolta per il mondo intero. Quando i governi hanno imposto misure di distanziamento sociale e quarantena, le aziende hanno dovuto reinventarsi per quanto riguarda i metodi di lavoro.
Come Tester, SDET, QA Engineer, o qualsiasi altro ruolo responsabile della qualità nella tua azienda, probabilmente la tua quotidianità è stata sconvolta.
Quality Engineering efficace in un contesto remoto
Prima della pandemia, lavoravo già completamente da remoto in Auth0 (un'azienda distribuita a livello globale), e ho lavorato da remoto anche in altre aziende.
In questo articolo condividerò i miei consigli, trucchi e processi per gestire il lavoro da remoto e le pratiche di Quality Assurance. Con le tendenze della quality engineering in rapida evoluzione, soprattutto negli ambienti remoti, è essenziale rimanere aggiornati su strumenti e strategie che possono supportare questo cambiamento.
Il consiglio più generale che posso darti è di essere pronto per la comunicazione asincrona: spesso dovrai aspettare per interagire, e dovrai imparare a gestire questa cosa.
Nel mettere in pratica modalità di lavoro a distanza, è importante riconoscere la differenza tra quality engineering e quality assurance. Mentre la Quality Assurance tende a concentrarsi sulla rilevazione dei difetti a posteriori, la Quality Engineering è un approccio più olistico e preventivo, assicurando che la qualità sia integrata in ogni fase dello sviluppo.
Strategie e consigli per i QA Engineer da remoto
1. Avvertenza: Non è davvero "business as usual"
Durante la pandemia, i lavoratori da remoto spesso hanno avuto stress e pressioni aggiuntive (bambini a casa, condizioni di lavoro non adeguate, lutti o malattie in famiglia, ecc.). Che tu sia manager, lead, senior o junior, è fondamentale comprendere che quello che sta succedendo al momento non rappresenta la normalità. Il COVID è stato un caso limite (si spera!), e come tale ha richiesto un'adattamento extra da parte di tutti.
Come manager, mostra ai tuoi collaboratori diretti che sei lì per aiutarli. Come tech lead o principal, guida il team ma mostra anche la tua umanità, e che possono sentirsi sicuri nel mostrare vulnerabilità. E per tutti gli altri, non sentitevi sotto pressione nel dover performare come al solito – è comprensibile che il ritmo rallenti.
Le aziende dovrebbero riconoscere che la velocità dei propri team diminuirà e che non è il lavoro da remoto la causa. Si tratta di circostanze uniche. Il lavoro a distanza permette comunque all'azienda di funzionare, anche se non a pieno regime.
2. Le Code Review sono uno dei migliori gateway per la qualità
Anche se hai sempre avuto un ruolo più manuale nel controllo qualità nella tua azienda, le code review dovrebbero già essere a tua conoscenza. Spesso sono una parte importante del ciclo di vita dello sviluppo software e rappresentano un punto di contatto dove le persone sono costrette a comunicare tra loro per migliorare la qualità del codice e prevenire errori.
In una situazione remota, sono particolarmente importanti perché costituiscono un rituale naturale spesso già in atto e quindi semplici da applicare. Se utilizzate correttamente, ti aiuteranno a gestire quei problemi di comunicazione asincrona di cui ho parlato prima. Sfruttare i giusti software di quality engineering può migliorare notevolmente i processi di code review, semplificando la comunicazione e riducendo gli errori prima che si verifichino.
I miei migliori consigli per le code review:
- Incoraggia le persone a fare un'autorevisione prima: l'autorevisione è una pratica in cui la persona che propone la modifica al codice rivede anche il proprio codice e lascia commenti utili prima di chiedere una revisione pubblica. Questo riduce il tempo perso dai futuri revisori e può persino aiutare chi fa l'autorevisione a trovare piccoli errori sciocchi in anticipo;
- Revisioni del codice in coppia o in sessioni di gruppo: particolarmente utile nei casi in cui la pull request interessa codice sensibile o rappresenta un cambiamento molto ampio (come un refactoring). La persona che propone la modifica può avviare una videochiamata, condividere il proprio schermo e spiegare la pull request al team o a un collega. Questo aiuta davvero tutti a essere rapidamente sulla stessa lunghezza d'onda e può davvero migliorare la qualità del codice.
- Coinvolgi gli sviluppatori nella revisione del codice di automazione: È importante che gli sviluppatori partecipino alla revisione del codice di automazione/test. Questo mantiene aggiornata la loro comprensione di come viene testata l'applicazione e aiuta a garantire lo stesso livello di qualità del codice per tutto il software;
- Assicurati che SDET/Tester revisionino il codice applicativo: questa è davvero cruciale. Gli ingegneri di qualità dovrebbero partecipare alle code review. Puoi fare questo anche se non sei molto tecnico (è un ottimo modo per capire cosa devi imparare!). Non solo puoi fornire feedback preziosi, ma acquisirai anche conoscenze su ciò che sta cambiando nell'applicazione (che potresti perderti a causa del nuovo contesto asincrono). Queste conoscenze ti aiuteranno a prendere migliori decisioni di test per il team.
Se non hai già un processo rigoroso di revisione del codice, questo è il momento perfetto per proporre di migliorarlo. È uno strumento fondamentale, soprattutto in un periodo in cui la comunicazione sincrona può essere più difficile.
Non aver paura di sfruttare strumenti per la revisione del codice per aiutarti a organizzare e collaborare.
3. Sfrutta la potenza del Pair Programming
Non entrerò nei dettagli del Pair Programming o del Mob Programming, perché richiederebbe un articolo a parte, e online si trova già moltissimo materiale sull’argomento.
Volevo però sottolineare che questa è una risorsa molto preziosa, soprattutto in momenti come questi. Che tu stia lavorando con un altro SDET sul codice di test, oppure in coppia con uno sviluppatore sul codice applicativo, ritengo sia una pratica eccellente per rafforzare lo spirito di squadra, favorire la condivisione delle conoscenze e incrementare la qualità del codice e dell’applicazione.
Ecco alcune delle domande più frequenti sul Pair Programming, accompagnate dalle risposte:
Che cos'è il Pair Programming?
Come indica il nome, il Pair Programming è un’attività nella quale due persone collaborano sulla stessa porzione di codice. Si può fare anche in più di due, in tal caso si parla generalmente di Mob Programming.
Come funziona il Pair Programming?
Di solito, nel Pair Programming, troviamo un driver (chi scrive il codice) e un navigatore (o osservatore). Questo funziona bene con gli strumenti di videoconferenza: una persona condivide lo schermo e scrive codice, mentre l’altra fa suggerimenti, commenti, o aiuta a individuare/prevenire bug.
Quali strumenti usi per il Pair Programming?
Se ti piace collaborare, VS Code (ad esempio) ha sviluppato ottime funzionalità di collaborazione (Visual Studio Live Share), che permettono a più persone di lavorare su un progetto condiviso. Funziona molto meglio di quanto si possa pensare: è uno strumento molto potente che dà il meglio di sé se chi lo utilizza ha già familiarità o stili di lavoro simili.
Si può fare Pair Programming con persone non tecniche?
Sì, ed è anche un’ottima opportunità per sviluppare competenze di mentorship oltre a diffondere le conoscenze tecniche all’interno del team.
Hai sviluppatori particolarmente interessati all’insegnamento, o con esperienza in workshop o tutorial? Potrebbero lavorare in coppia con te per guidarti all’interno della codebase e aiutarti a fare esperienza pratica se non hai ancora molta dimestichezza tecnica.
E per quanto riguarda il testing?
Per il testing, prova qualcosa che chiamerò "Reverse Pair Programming". Invece di lavorare insieme sul codice, qui si tratta di Pair/Mob Testing. Lavora in coppia con gli sviluppatori per mostrare loro come testi l’applicazione, oppure viceversa! È un modo davvero utile per affrontare problemi complessi. Leggi alcune idee al riguardo in quest'altro ottimo articolo di Maaret Pyhäjärvi.
4. Organizza sessioni di test da remoto per collaborare in team: Bug Bash, Game Day, ecc.
Le Sessioni di Test (a volte chiamate Bug Bash, Game Day, ecc.) sono un'attività collaborativa, solitamente gestita da un team.
Possono servire a testare una specifica nuova funzionalità oppure possono essere svolte regolarmente per testare l'applicazione. Gli strumenti QE giusti possono davvero fare la differenza durante queste sessioni collaborative, offrendo informazioni in tempo reale e semplificando ambienti di test complessi.
L’idea è di riunire persone del team e anche esterne, provenienti da diverse discipline (sviluppo, testing, prodotto, design, stakeholder di business, ecc.) per testare l'applicazione. A volte, come sviluppatori o tester, possiamo avere un’idea troppo tecnica e parziale di come dovrebbe essere l’applicazione, quindi avere altri stakeholder che la esaminano può fornire feedback molto preziosi.

Ho pensato fosse importante sottolinearlo perché reputo sia un’attività molto utile in questo periodo. Riunisce i team e incentiva la comunicazione e collaborazione tra diversi dipartimenti, portando eventualmente alla luce bug o specifiche non corrette che altrimenti potrebbero passare inosservate.
Naturalmente, organizzare queste sessioni da remoto può essere una sfida, quindi ecco qualche consiglio (utile anche in generale).
Consigli per Gestire Sessioni di Test da Remoto:
- Dovresti essere in grado di eseguire queste sessioni tramite uno strumento di videoconferenza. Assicurati di avere anche una chat dedicata (se usi Slack, potresti creare un canale Slack separato per l’occasione);
- Se sono necessari dispositivi particolari (ad esempio telefoni cellulari, dispositivi da salotto, ecc.), accertati in anticipo di sapere che dispositivi hanno i partecipanti. Se stai testando un’app iOS e inviti qualcuno che non possiede un iPhone, sarà solo una perdita di tempo per tutti;
- Assicurati che una o più persone siano responsabili di ogni sessione. Dovranno aiutare nell'organizzazione preventiva, preparare la documentazione o qualsiasi setup necessario per i partecipanti e facilitare la sessione;
- Prepara istruzioni di installazione chiare per i partecipanti e falle circolare prima della sessione. Il tempo della sessione va speso a testare, non a installare;
- Prepara anche istruzioni chiare su come segnalare i problemi, anche se è semplicemente “scrivilo nel canale” (anziché tentare di segnalare tutto a voce nella call contemporaneamente);
- Prepara un piano per la sessione. In casi come questi, può essere utile avere un copione o almeno una traccia su cosa controllare;
- Detto ciò, incoraggia comunque il testing esplorativo, sapendo che alcune persone potrebbero aver bisogno di una spinta per cominciare ad esplorare.
- Puoi organizzare queste sessioni anche su sistemi più orientati al backend. Un esercizio interessante può essere trasformarle in un esperimento di Chaos Engineering, con un pubblico più tecnico. AWS offre una sua versione di queste sessioni chiamata Game Days, da cui puoi prendere spunto.
- Incoraggia il divertimento! Queste sessioni possono essere molto divertenti se organizzate correttamente – ad esempio, anni fa, gamificavo le Sessioni di Test usando i personaggi di Game of Thrones quando lavoravo in Miniclip.
Puoi trovare informazioni più dettagliate in questo articolo, che copre molti dei punti elencati sopra.
5. Gestisci Con Saggezza il Tuo Tempo Libero—Rafforza le Tue Competenze in Quality Engineering
Come ho già accennato, dovrai abituarti alla comunicazione asincrona. Nel mondo del testing (a seconda delle dinamiche del tuo team), le attività del tester spesso dipendono dal completamento del lavoro di sviluppo. Con team che si muovono a velocità inferiori e una comunicazione diversa dal solito, potresti trovarti con del tempo libero.
Ricordo che un collega in una vecchia azienda diceva spesso al daily standup “Sono bloccato da x”, e poi passava la giornata ad aspettare di essere sbloccato. A un certo punto l’ho aiutato a migliorare le sue competenze in diverse aree, e uno degli aspetti più delicati era proprio il mindset. Questo è particolarmente vero in questo periodo, quando oltre a possibili periodi morti, ti ritrovi anche nel comfort di casa, circondato da tante distrazioni.
È importante gestire il proprio tempo e mantenere un backlog delle cose che ti interessano imparare.
Ecco alcuni esempi di cose che puoi fare nel tuo tempo libero:
- Sei stato più un QA Manuale? Forse vuoi investire del tempo ad imparare qualcosa sull’Automazione.
- Hai molta conoscenza Frontend? Forse dovresti dedicare un po' di tempo anche ad acquisire competenze Backend.
- Ci sono molte risorse gratuite ottime come freeCodeCamp o Youtube, oppure economiche come Udemy (spesso ci sono offerte). Inoltre, molte conferenze si sono spostate online a causa del Coronavirus, e alcune sono gratuite (es. OnlineTestConf)!
- Oppure magari vuoi conoscere meglio l’applicazione, esplorando il codice dell’app.
- O forse sai che sta per arrivare un nuovo progetto e dovrai acquisire una nuova competenza per affrontarlo.
- Inoltre puoi anche utilizzare questo tempo per prototipare nuove idee, ripulire il debito tecnico, documentazione, ecc.
Non è davvero importante cosa scegli. Scegli quello che preferisci, ma investi sul tuo sviluppo personale.
Non vuol dire che non puoi concederti una pausa (siamo comunque in piena pandemia mondiale). Le persone lo capiranno. Ma aumentare il tuo set di competenze QA o migliorare te stesso ha valore, soprattutto in momenti come questo, in cui l’economia del lavoro ha subito un forte calo.
6. Usa le Attività di Team per Aiutarti a Sviluppare Relazioni
Come nota finale, anche se non è proprio un suggerimento legato al testing, voglio dire che reputo importante promuovere attività all’interno del tuo team. Quelle relazioni sono importanti e sono una piacevole distrazione dal lavoro. In ufficio, di solito, nascono naturalmente, magari durante la pausa pranzo, una pausa caffè o anche solo uno scambio casuale nella stessa stanza.
Qualche consiglio per costruire relazioni in contesti di lavoro da remoto:
- Nel mio attuale team, abbiamo appena configurato la app Donut Slack nel nostro canale di team. Questa ci abbina casualmente con un collega ogni settimana per una chiacchierata—possiamo parlare di qualsiasi cosa lì.
- Abbiamo anche un book club del venerdì, dove ci alterniamo a condividere conoscenze (ci concentriamo su argomenti rilevanti per il lavoro, ma possono essere anche diversi!);
- Organizza pranzi di gruppo o pause caffè nel canale, dove passare del tempo insieme come in ufficio. Ovviamente, funziona meglio se siete tutti su fusi orari simili;
- Fate quiz o giocate online insieme di tanto in tanto. Il Jackbox Party Pack è un ottimo esempio di qualcosa che funziona bene nel lavoro da remoto.
Unisciti per Altri Approfondimenti
Per altri consigli, suggerimenti e strategie su quality assurance, iscriviti alla newsletter di The CTO Club per ricevere tutti gli ultimi approfondimenti. Ti aiuteremo a crescere in modo intelligente e a guidare il tuo team con guide, risorse e strategie dei migliori esperti!
