Principi di ingegneria: mettere in pratica i nostri valori

Katrina Gnatek
Katrina Gnatek

Follow

30 luglio, 2020 – 4 min read

VP di Ingegneria, Ilya Kozlov, condivide la logica e il valore dietro i nostri principi di ingegneria. Date un’occhiata a come questi principi aiutano i nostri ingegneri a crescere e ad assumersi la responsabilità delle loro consegne.

A Taxfix, tutto inizia con i nostri valori: Consegnare, Fidarsi, Sviluppare e Comprendere. Tutti, indipendentemente dal ruolo che svolgono in azienda, hanno una comprensione condivisa di questi valori. I principi di ingegneria realizzano i nostri valori in concetti concreti e guidano tutti in modo giusto e strutturato. L’obiettivo è quello di rendere il nostro team il più autonomo possibile – nella scoperta, nel processo decisionale, nella consegna e nella crescita.

I principi sono una tabella di marcia per i nuovi arrivati, che permette loro di capire rapidamente come facciamo le cose qui. Forniscono un playbook per le azioni e il modo di affrontare le nuove sfide. Per esempio, se due persone diverse affrontano lo stesso problema in un contesto simile, le loro soluzioni saranno più o meno le stesse perché sono state guidate dalle stesse linee guida. I nostri principi fungono anche da punto di riferimento per il feedback e lo sviluppo. Dietro ogni principio c’è un insieme di aspettative per il comportamento dei nostri ingegneri, che fornisce una direzione per l’auto-miglioramento.

Ecco un modo semplificato di vedere questo concetto

Come siamo arrivati a formare questi principi?

Anche se i valori sono parte integrante della vita quotidiana, non era sempre chiaro come metterli in pratica. I nostri ingegneri volevano esempi più specifici di come vivere questi valori nella pratica.

Ci siamo resi conto che avevamo bisogno di un manuale di ingegneria che dettagliasse esattamente ciò che apprezzavamo e ciò che ci aspettavamo dal team. Ci siamo riuniti per una prima sessione di brainstorming – Juan Ramirez, il nostro engineering manager a Madrid, Alex De Leon, il nostro CTO, ed io. Insieme abbiamo identificato alcune aree chiave su cui lavorare, ma abbiamo subito scoperto che la nostra visione non era completa. Avevamo bisogno di sentire ogni voce nell’organizzazione ingegneristica.

Attraverso una serie di workshop nei mesi successivi, abbiamo discusso idee, ci siamo sfidati a vicenda e abbiamo preso come riferimento alcune delle culture ingegneristiche leader sul mercato. Il risultato è stato una struttura di otto principi di ingegneria orientati al valore, supportati da esempi di buone pratiche.

Cosa significano in pratica i principi di ingegneria?

Ecco un assaggio di alcuni dei nostri principi di ingegneria:

Deliver

Sotto il valore Deliver, abbiamo un principio di Internal Open Source. Questo significa che chiunque può contribuire a qualsiasi applicazione o servizio, noto anche come proprietà debole del codice. Internal Open Source ci aiuta a consegnare perché quando il codice di base è condiviso, effettivamente non si hanno dipendenze.

Un problema importante con cui molte aziende lottano è la dipendenza. Se un team vuole fornire una nuova funzionalità, spesso ha bisogno di costruire qualcosa nel proprio servizio e poi raggiungere un altro team e aspettare che tutti i pezzi si uniscano. Di solito, più grande è l’azienda, più complicato diventa questo problema. Sei essenzialmente bloccato dalle dipendenze. Qui lavoriamo in team interfunzionali e usiamo un solo linguaggio quasi ovunque, JavaScript. Questo permette a chiunque di andare in un servizio specifico dell’azienda e fare un cambiamento lì. Non c’è bisogno di aspettare – si può implementare da soli.

Trust

Sotto il nostro valore Trust, abbiamo il principio di We are One Team. Questo significa che ottimizziamo per il risultato della squadra e dell’organizzazione, non per l’individuo. Un individuo può sicuramente raggiungere il risultato che cerca, ma a quale costo per il resto dell’organizzazione? Se si ha in mente solo il proprio obiettivo, l’intera azienda non sarà efficiente. Quindi, stiamo cercando di trovare il modo di ottenere risultati migliori usando una combinazione di competenze, background e prospettive. Non ci sono lavori “individuali”, solo collaborazioni.

Sviluppare

Nel nostro valore Sviluppare, abbiamo incluso il principio di Impariamo l’uno dall’altro. Oltre alle iniziative di apprendimento standard, come partecipare a meetup e visitare conferenze, vogliamo incoraggiare la condivisione delle conoscenze tra i membri del team. Quello che stiamo cercando di ottenere qui è la corrispondenza delle diverse competenze all’interno dei nostri team. Se, per esempio, c’è un ingegnere front-end che vuole passare al full-stack, allora lo abbiniamo a un ingegnere back-end. Abbiniamo questi due insieme in modo che possano crescere come squadra e come individui attraverso la guida di nuovi progetti al di fuori della loro tipica competenza.

Capire

L’ultimo esempio che vorrei fare riguarda il nostro valore Capire – Creare e condividere il contesto. Questo principio va oltre la semplice documentazione; è una strada a doppio senso. Ci aspettiamo che il nostro team crei un contesto per gli altri. Oltre a questo, dovrebbero essere proattivi nel leggere e digerire il contesto che ricevono. Quando si applica alle richieste di pull, per esempio, le persone non sempre conoscono il vostro contesto o quello che state cercando di ottenere nel vostro team. Se stai collaborando e cerchi di cambiare il repository di qualcun altro, devi dare più contesto possibile. Hai bisogno di spiegare la tua intenzione, qualsiasi compromesso che hai fatto, una linea temporale, e come questo cambiamento si collega a cambiamenti più grandi lungo la linea. Non crediamo nelle decisioni giuste o sbagliate. Crediamo solo nelle decisioni che sono prese nel contesto giusto o nel contesto mancante.

Leave a Reply