Perché i team di Data Science hanno bisogno di generalisti, non di specialisti

Perché i team di Data Science hanno bisogno di generalisti, non di specialisti
HIROSHI WATANABE/GETTY IMMAGINI

Ne La ricchezza delle nazioni, Adam Smith mostra come la divisione del lavoro diventi la principale fonte di aumento della produttività. Un esempio è la catena di montaggio di una fabbrica di spilli: “Un operaio tira il filo, un altro lo raddrizza, un terzo lo taglia, un quarto ne affila l’estremità, un quinto mola l’altra estremità per adattarla alla testa”. Grazie alla specializzazione focalizzata su funzioni specifiche, ogni dipendente diventa uno specialista altamente qualificato nel suo compito ristretto, il che porta ad una maggiore efficienza dei processi. La produzione per lavoratore aumenta molte volte e la fabbrica diventa più efficiente nella produzione di spilli.

Questa divisione del lavoro per funzionalità è così radicata nelle nostre menti anche oggi che abbiamo rapidamente organizzato i nostri team di conseguenza. La scienza dei dati non fa eccezione. Le complesse funzionalità aziendali algoritmiche richiedono molteplici funzioni lavorative, quindi le aziende in genere creano team di specialisti: ricercatori, ingegneri dei dati, ingegneri dell'apprendimento automatico, scienziati di causa-effetto e così via. Il lavoro degli specialisti è coordinato dal product manager con il trasferimento di funzioni in modo simile ad una fabbrica di spilli: “uno riceve i dati, un altro li modella, un terzo li esegue, un quarto misura” e così via,

Purtroppo, non dovremmo ottimizzare i nostri team di data science per migliorare la produttività. Tuttavia, lo fai quando capisci cosa stai producendo: spille o qualcos'altro, e ti sforzi semplicemente di aumentare l'efficienza. Lo scopo delle catene di montaggio è completare un'attività. Sappiamo esattamente cosa vogliamo: i pin (come nell'esempio di Smith), ma è possibile menzionare qualsiasi prodotto o servizio i cui requisiti descrivano completamente tutti gli aspetti del prodotto e il suo comportamento. Il ruolo dei dipendenti è quello di soddisfare questi requisiti nel modo più efficiente possibile.

Ma l’obiettivo della Data Science non è completare le attività. Piuttosto, l’obiettivo è esplorare e sviluppare nuove forti opportunità di business. Prodotti e servizi algoritmici come sistemi di raccomandazione, interazioni con i clienti, classificazione delle preferenze di stile, taglie, design dell'abbigliamento, ottimizzazione della logistica, rilevamento delle tendenze stagionali e molto altro non possono essere sviluppati in anticipo. Devono essere studiati. Non ci sono progetti da replicare, queste sono nuove possibilità con intrinseca incertezza. Coefficienti, modelli, tipi di modello, iperparametri, tutti gli elementi necessari devono essere appresi attraverso la sperimentazione, prove ed errori e ripetizione. Con i perni, la formazione e la progettazione vengono effettuate prima della produzione. Con Data Science impari mentre impari, non prima.

In una fabbrica di spilli, quando la formazione viene prima di tutto, non ci aspettiamo né vogliamo che i lavoratori improvvisano su qualsiasi caratteristica del prodotto se non per migliorare l’efficienza produttiva. Specializzare le attività ha senso perché porta all’efficienza del processo e alla coerenza della produzione (senza modifiche al prodotto finale).

Ma quando il prodotto è ancora in fase di sviluppo e l’obiettivo è la formazione, la specializzazione interferisce con i nostri obiettivi nei seguenti casi:

1. Aumenta i costi di coordinamento.

Cioè quei costi che si accumulano durante il tempo trascorso a comunicare, discutere, giustificare e dare priorità al lavoro che deve essere svolto. Questi costi crescono in modo super lineare con il numero di persone coinvolte. (Come ci ha insegnato J. Richard Hackman, il numero di relazioni r cresce in modo simile alla funzione del numero di termini n secondo questa equazione: r = (n^2-n)/2. E ogni relazione rivela una certa quantità di rapporto di costo.) Quando i data scientist sono organizzati per funzione, in ogni fase, con ogni modifica, ogni passaggio di consegne, ecc., sono necessari molti specialisti, il che aumenta i costi di coordinamento. Ad esempio, i modellatori statistici che desiderano sperimentare nuove funzionalità dovranno coordinarsi con gli ingegneri dei dati che aggiungono dati ai set ogni volta che vogliono provare qualcosa di nuovo. Allo stesso modo, ogni nuovo modello addestrato significa che lo sviluppatore del modello avrà bisogno di qualcuno con cui coordinarsi per metterlo in produzione. I costi di coordinamento agiscono come un prezzo per l’iterazione, rendendoli più difficili e costosi e con maggiori probabilità di causare l’abbandono dello studio. Ciò potrebbe interferire con l'apprendimento.

2. Rende difficili i tempi di attesa.

Ancora più scoraggiante dei costi di coordinamento è il tempo perso tra i turni di lavoro. Mentre i costi di coordinamento sono solitamente misurati in ore (il tempo necessario per condurre riunioni, discussioni, revisioni di progetti), il tempo di attesa è solitamente misurato in giorni, settimane o addirittura mesi! I programmi degli specialisti funzionali sono difficili da bilanciare perché ogni specialista deve essere distribuito su più progetti. Una riunione di un’ora per discutere le modifiche può richiedere settimane per semplificare il flusso di lavoro. E dopo aver concordato le modifiche, è necessario pianificare il lavoro vero e proprio nel contesto di molti altri progetti che occupano l'orario di lavoro degli specialisti. Il lavoro che comporta correzioni del codice o ricerche che richiedono solo poche ore o giorni per essere completato potrebbe richiedere molto più tempo prima che le risorse diventino disponibili. Fino ad allora, l’iterazione e l’apprendimento sono sospesi.

3. Restringe il contesto.

La divisione del lavoro può limitare artificialmente l’apprendimento premiando le persone che rimangono nella loro specialità. Ad esempio, un ricercatore che deve rimanere nell'ambito delle sue funzionalità concentrerà le sue energie sulla sperimentazione di diversi tipi di algoritmi: regressione, reti neurali, foresta casuale e così via. Naturalmente, la scelta di buoni algoritmi può portare a miglioramenti incrementali, ma in genere si può ottenere molto di più da altre attività, come l’integrazione di nuove fonti di dati. Allo stesso modo, aiuterà a sviluppare un modello che sfrutti ogni minimo potere esplicativo inerente ai dati. Tuttavia, la sua forza potrebbe risiedere nel cambiare la funzione obiettivo o nell’allentare alcuni vincoli. Questo è difficile da vedere o da fare quando il suo lavoro è limitato. Poiché uno scienziato tecnico è specializzato nell’ottimizzazione degli algoritmi, è molto meno probabile che faccia qualsiasi altra cosa, anche se ciò apporta vantaggi significativi.

Per citare i segnali che compaiono quando i team di data science agiscono come fabbriche di pin (ad esempio, in semplici aggiornamenti di stato): "in attesa di modifiche alla pipeline di dati" e "in attesa di risorse ML Eng" sono blocchi comuni. Tuttavia, credo che l'influenza più pericolosa sia ciò che non noti, perché non puoi pentirti di ciò che già non sai. L’esecuzione impeccabile e l’autocompiacimento ottenuto dal raggiungimento dell’efficienza dei processi possono mascherare la verità che le organizzazioni non sono consapevoli dei vantaggi dell’apprendimento che stanno perdendo.

La soluzione a questo problema, ovviamente, è eliminare il metodo del pin di fabbrica. Per incoraggiare l’apprendimento e l’iterazione, i ruoli dei data scientist dovrebbero essere generici ma con ampie responsabilità indipendenti dalla funzione tecnica, ovvero organizzare i data scientist in modo che siano ottimizzati per l’apprendimento. Ciò significa assumere “specialisti full stack”, ovvero specialisti generali in grado di svolgere una varietà di funzioni, dall’ideazione alla modellazione, dall’implementazione alla misurazione. È importante notare che non sto suggerendo che l'assunzione di talenti full-stack dovrebbe ridurre il numero di dipendenti. Piuttosto, suppongo semplicemente che quando sono organizzati in modo diverso, i loro incentivi sono meglio allineati con i benefici in termini di apprendimento e rendimento. Ad esempio, supponiamo che tu abbia un team di tre persone con tre competenze aziendali. In una fabbrica di spilli ogni tecnico dedicherà un terzo del suo tempo a ciascuna mansione lavorativa, poiché nessun altro può svolgere il suo lavoro. In uno stack completo, ogni generalista è completamente dedicato all'intero processo aziendale, allo scale-up e alla formazione.

Con meno persone che supportano il ciclo produttivo, il coordinamento è ridotto. Il generalista si muove fluidamente tra le funzionalità, espandendo la pipeline di dati per aggiungere più dati, provando nuove funzionalità nei modelli, distribuendo nuove versioni in produzione per misurazioni causali e ripetendo i passaggi con la stessa rapidità con cui emergono nuove idee. Naturalmente, la station wagon svolge diverse funzioni in sequenza e non in parallelo. Dopotutto, è solo una persona. Tuttavia, il completamento di un'attività richiede solitamente solo una frazione del tempo necessario per accedere a un'altra risorsa specializzata. Quindi il tempo di iterazione diminuisce.

Il nostro generalista potrebbe non essere abile quanto uno specialista in una particolare funzione lavorativa, ma non miriamo alla perfezione funzionale o a piccoli miglioramenti incrementali. Piuttosto, ci sforziamo di apprendere e scoprire sempre più sfide professionali con un impatto graduale. In un contesto olistico per una soluzione completa, vede opportunità che uno specialista si lascerebbe sfuggire. Ha più idee e più possibilità. Anche lui fallisce. Tuttavia, il costo del fallimento è basso e i benefici dell’apprendimento sono elevati. Questa asimmetria promuove una rapida iterazione e premia l’apprendimento.

È importante notare che la quantità di autonomia e diversità di competenze concessa agli scienziati a tutto campo dipende in gran parte dalla robustezza della piattaforma dati su cui lavorare. Una piattaforma dati ben progettata astrae i data scientist dalle complessità della containerizzazione, dell'elaborazione distribuita, del failover automatico e di altri concetti informatici avanzati. Oltre all'astrazione, una solida piattaforma dati può fornire connettività continua all'infrastruttura sperimentale, automatizzare il monitoraggio e gli avvisi, consentire il ridimensionamento e la visualizzazione automatici dei risultati algoritmici e del debug. Questi componenti sono progettati e realizzati dagli ingegneri della piattaforma dati, il che significa che non vengono trasmessi dallo scienziato dei dati al team di sviluppo della piattaforma dati. È lo specialista di Data Science che è responsabile di tutto il codice utilizzato per eseguire la piattaforma.

Anch'io una volta ero interessato alla divisione funzionale del lavoro utilizzando l'efficienza dei processi, ma attraverso tentativi ed errori (non esiste un modo migliore per apprendere), ho scoperto che i ruoli tipici facilitano meglio l'apprendimento e l'innovazione e forniscono i parametri giusti: scoperta e costruendo molte più opportunità di business rispetto all’approccio specializzato. (Un modo più efficace per conoscere questo approccio all'organizzazione rispetto ai tentativi ed errori che ho attraversato è leggere il libro di Amy Edmondson Team Collaboration: How Organizations Learn, Innovate, and Compete in the Knowledge Economy).

Ci sono alcuni presupposti importanti che possono rendere questo approccio all’organizzazione più o meno affidabile in alcune aziende. Il processo di iterazione riduce il costo di tentativi ed errori. Se il costo degli errori è elevato, potresti volerli ridurre (ma ciò non è consigliato per applicazioni mediche o di produzione). Inoltre, se hai a che fare con petabyte o exabyte di dati, potrebbe essere richiesta una specializzazione in ingegneria dei dati. Allo stesso modo, se mantenere le capacità aziendali online e la loro disponibilità è più importante che migliorarle, l’eccellenza funzionale può prevalere sull’apprendimento. Infine, il modello full stack si basa sulle opinioni delle persone che lo conoscono. Non sono unicorni; puoi trovarli o prepararli tu stesso. Tuttavia, sono molto richiesti e attirarli e trattenerli richiederà compensi competitivi, forti valori aziendali e un lavoro impegnativo. Assicurati che la tua cultura aziendale possa supportare tutto ciò.

Nonostante tutto ciò detto, credo che il modello full stack offra le migliori condizioni di partenza. Iniziare da loro e poi procedere consapevolmente verso una divisione funzionale del lavoro solo quando assolutamente necessario.

Ci sono altri svantaggi della specializzazione funzionale. Ciò può portare alla perdita di responsabilità e alla passività da parte dei lavoratori. Lo stesso Smith critica la divisione del lavoro, suggerendo che essa porta all'ottundimento del talento, ad es. i lavoratori diventano ignoranti e ritirati poiché i loro ruoli sono limitati a pochi compiti ripetitivi. Sebbene la specializzazione possa garantire l’efficienza dei processi, è meno probabile che ispiri i lavoratori.

A loro volta, i ruoli versatili forniscono tutte le cose che determinano la soddisfazione lavorativa: autonomia, padronanza e scopo. L'autonomia è che non dipendono da nulla per raggiungere il successo. La maestria risiede in forti vantaggi competitivi. E il senso dello scopo risiede nell’opportunità di avere un impatto sul business che creano. Se riusciamo a entusiasmare le persone per il loro lavoro e ad avere un grande impatto sull’azienda, allora tutto il resto andrà a posto.

Fonte: habr.com

Aggiungi un commento