Perché ai team di Data Science servono generalisti e non specialisti

Perché ai team di Data Science servono generalisti e non specialisti
HIROSHI WATANABE/GETTY IMAGES

Nel libro «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 spille: «Un lavoratore tira il filo, un altro lo raddrizza, un terzo lo taglia, un quarto affila l'estremità, un quinto smussa l'altra estremità per applicare la testina». Grazie alla specializzazione, incentrata su compiti specifici, ogni lavoratore diventa un esperto altamente qualificato nel proprio compito, il che porta a un aumento dell'efficienza del processo. La produzione per lavoratore aumenta molteplici volte, e la fabbrica diventa più efficace nella produzione di spille.

Questa divisione del lavoro in base alla funzionalità è così radicata nelle nostre menti che rapidamente abbiamo organizzato i nostri team di conseguenza. La Data Science non fa eccezione. Le opportunità di business algoritmiche complesse richiedono una serie di funzioni lavorative, quindi le aziende tendono a creare gruppi di specialisti: ricercatori, ingegneri di analisi dei dati, ingegneri di machine learning, scienziati che si occupano di causalità, e così via. Il lavoro degli specialisti è coordinato da un product manager, con la delega delle funzioni in un modo che ricorda una fabbrica di spilli: «una persona raccoglie i dati, un'altra li modella, la terza li esegue, la quarta li misura» e così via.

Purtroppo, non dobbiamo ottimizzare i nostri team di Data Science per aumentare la produttività. Tuttavia, lo fai quando comprendi cosa stai producendo: chiodi o qualcos'altro, e miri semplicemente a migliorare l'efficienza. L'obiettivo delle linee di assemblaggio è completare il compito. Sappiamo esattamente cosa vogliamo — si tratta di chiodi (come nell'esempio di Smith), ma si può citare 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 è semplicemente quello di svolgere compiti. Piuttosto, consiste nell'esplorare e sviluppare nuove capacità aziendali. Prodotti e servizi algoritmici, come i sistemi di raccomandazione, le interazioni con i clienti, la classificazione delle preferenze stilistiche, la scelta delle taglie, il design degli abiti, l'ottimizzazione della logistica, l'individuazione delle tendenze stagionali e molto altro non possono essere progettati in anticipo. Devono essere esplorati. Non ci sono schemi da seguire, sono nuove opportunità con incertezza intrinseca. Tassi, modelli, tipi di modelli, iperparametri, tutti gli elementi necessari devono essere esplorati attraverso esperimenti, tentativi ed errori, e ripetizioni. Con i pin, l'apprendimento e il design vengono effettuati in anticipo, prima della loro produzione. Con la Data Science, impari lungo il percorso, non prima.

Nella fabbrica di spille, dove la formazione è la priorità, non aspettiamo né vogliamo che i lavoratori improvvisino su qualsiasi aspetto del prodotto, se non per migliorare l'efficienza della produzione. La specializzazione dei compiti ha senso, poiché porta a processi più efficienti e coerenza nella produzione (senza apportare modifiche al prodotto finale).

Ma quando il prodotto è ancora in fase di sviluppo e l'obiettivo è l'apprendimento, la specializzazione ostacola i nostri obiettivi nei seguenti casi:

1. Aumenta i costi di coordinamento.

Cioè, quelle spese che si accumulano nel tempo impiegato per comunicare, discutere, giustificare e definire le priorità del lavoro da svolgere. Queste spese scalano in modo non lineare con il numero di persone coinvolte. (Come ci ha insegnato J. Richard Hackman, il numero delle relazioni r cresce secondo la funzione del numero dei membri n in base a questa equazione: r = (n ^ 2 - n) / 2. E ogni relazione rivela una certa quantità di proporzione di costi). Quando gli specialisti di analisi dei dati sono organizzati per funzioni, a ogni fase, con ogni cambiamento, ogni transizione del servizio, ecc., è necessaria una grande quantità di specialisti, il che aumenta i costi di coordinamento. Ad esempio, gli specialisti in modellazione statistica che vogliono sperimentare nuove funzionalità devono coordinare le proprie azioni con gli ingegneri di elaborazione dati, che completano i dataset 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 coordinare le proprie azioni per metterlo in produzione. I costi di coordinamento agiscono come un costo per iterazione, rendendoli più difficili e costosi e aumentando la probabilità di rinunciare alla sperimentazione. Questo può ostacolare l'apprendimento.

2. Questo complica i tempi di attesa.

Ancora più preoccupante dei costi di coordinamento è il tempo perso tra i turni di lavoro. Mentre i costi di coordinamento sono generalmente misurati in ore — tempo necessario per riunioni, discussioni e revisioni dei progetti — il tempo di attesa è spesso misurato in giorni, settimane o addirittura mesi! Allineare i programmi dei professionisti è difficile, poiché ognuno di essi deve essere assegnato a più progetti. Una riunione di un'ora per discutere delle modifiche può richiedere settimane per allineare il flusso di lavoro. E dopo aver concordato le modifiche, è necessario pianificare il lavoro effettivo nel contesto di molti altri progetti, che assorbono il tempo lavorativo dei professionisti. Il lavoro di correzione del codice o di ricerca, che richiederebbe solo poche ore o giorni per essere completato, può richiedere molto più tempo prima che le risorse siano disponibili. Fino ad allora, iterazioni e formazione sono sospese.

3. Questo restringe il contesto.

La suddivisione del lavoro può artificialmente limitare l'apprendimento, premiando le persone per rimanere nella propria specializzazione. Ad esempio, un ricercatore scientifico, costretto a rimanere all'interno della sua funzionalità, concentrerà la propria energia su esperimenti con diversi tipi di algoritmi: regressione, reti neurali, random forest e così via. Certamente, una buona scelta dell'algoritmo può portare a miglioramenti graduali, ma, di norma, si può estrarre molto di più da altre attività, come l'integrazione di nuove fonti di dati. Allo stesso modo, questo aiuterà a sviluppare un modello che utilizza ogni bit di capacità esplicativa presente nei dati. Tuttavia, il suo punto di forza può risiedere nella modifica della funzione obiettivo o nel rilascio di alcune restrizioni. È difficile osservare o realizzare questo quando il suo lavoro è limitato. Poiché il ricercatore è specializzato nell'ottimizzazione degli algoritmi, ha molte meno possibilità di dedicate a qualcos'altro, anche se ciò porta a benefici significativi.

Indichiamo i segnali che si manifestano quando i team di data science operano come fabbriche di spille (ad esempio, negli aggiornamenti di stato semplici): "attesa per le modifiche nella pipeline dei dati" e "attesa per le risorse ML Eng", che sono blocchi comuni. Tuttavia, credo che l'impatto più pericoloso sia quello che non notate, perché non potete rimpiangere ciò che non conoscete. L'esecuzione impeccabile delle richieste e la soddisfazione personale, raggiunte a seguito dell'efficienza dei processi, possono nascondere la verità su quanto le organizzazioni siano all'oscuro dei vantaggi della formazione che stanno perdendo.

La soluzione a questo problema risiede, ovviamente, nell'abbandonare il metodo della fabbrica di puntine. Per stimolare l'apprendimento e l'iterazione, i ruoli nel data science devono essere condivisi, ma con ampie responsabilità che non dipendono dalla funzione tecnica; ovvero, organizzate gli specialisti dei dati in modo tale da ottimizzarli per l'apprendimento. Questo significa dover assumere "specialisti full stack" — professionisti generali capaci di ricoprire diverse funzioni: dalla concezione alla modellazione, dall'implementazione alla misurazione.È importante notare che non intendo dire che, assumendo specialisti full stack, il numero dei dipendenti debba diminuire. Probabilmente, presumo solo che, quando sono organizzati diversamente, i loro incentivi siano meglio allineati ai vantaggi dell'apprendimento e dell'efficienza. Ad esempio, se hai un team di tre persone con tre qualità aziendali, in una fabbrica di puntine, ogni specialista dedicherà un terzo del tempo a ciascun compito professionale, poiché nessun altro sarà in grado di svolgere il suo lavoro. In un contesto full stack, ogni dipendente polivalente è completamente dedicato all'intero processo aziendale, ampliando il lavoro e apprendendo.

Con un numero ridotto di persone a sostenere il ciclo produttivo, la coordinazione diminuisce. L'universalista si sposta agilmente tra le funzioni, ampliando il flusso di dati per aggiungere un maggiore volume di informazioni, sperimentando nuove funzionalità nei modelli, distribuendo nuove versioni in produzione per misurazioni causali e ripetendo i passaggi non appena arrivano nuove idee. Naturalmente, l'universalista svolge diverse funzioni in sequenza, non in parallelo. Alla fine, è solo una persona. Tuttavia, completare il compito richiede generalmente solo una piccola parte del tempo necessario per accedere a un'altra risorsa specializzata. Quindi, il tempo di iterazione diminuisce.

Il nostro universale potrebbe non essere tanto abile quanto uno specialista in una particolare funzione lavorativa, ma non aspiriamo alla perfezione funzionale o a piccoli miglioramenti graduali. Invece, ci impegniamo a esplorare e scoprire continuamente nuove sfide professionali con un impatto progressivo. Con un contesto olistico per una soluzione completa, vede opportunità che uno specialista ristretta non coglierebbe. Ha più idee e più possibilità. Sperimenta anche insuccessi. Tuttavia, il costo del fallimento è basso, mentre i benefici dell'apprendimento sono elevati. Questa asimmetria favorisce iterazioni rapide e premia l'apprendimento.

È importante notare che l'autonomia e la varietà delle competenze offerte dagli scienziati che lavorano con stack completi dipendono in larga misura dall'affidabilità della piattaforma dati su cui possono operare. Una piattaforma dati ben progettata astrae gli scienziati dalla complessità della containerizzazione, dell'elaborazione distribuita, della transizione automatica su un'altra risorsa e di altre avanzate concezioni informatiche. Oltre all'astrazione, una piattaforma dati robusta può garantire una connessione fluida con le infrastrutture sperimentali, automatizzare il monitoraggio e il sistema di allerta, fornire scalabilità automatica e visualizzare i risultati algoritmici e il debugging. Questi componenti sono progettati e realizzati dagli ingegneri della piattaforma dati, cioè non sono delegati dal Data Scientist al team di sviluppatori della piattaforma dati. È proprio il Data Scientist a considerare tutto il codice utilizzato per eseguire la piattaforma.

Anche a me un tempo interessava la divisione funzionale del lavoro attraverso l'efficienza dei processi, ma, mediante un metodo di tentativi ed errori (non c'è modo migliore di imparare), ho scoperto che i ruoli tipici favoriscono meglio l'apprendimento e l'innovazione e forniscono indicatori corretti: individuare e costruire un numero molto maggiore di opportunità di business rispetto all'approccio specializzato. (Un modo più efficace per conoscere questo approccio all'organizzazione, rispetto al metodo di tentativi ed errori che ho seguito, è leggere il libro di Amy Edmondson "Interazione nel team: come le organizzazioni apprendono, creano innovazioni e competono nell'economia della conoscenza").

Ci sono alcune assunzioni importanti che possono rendere questo approccio all'organizzazione più o meno affidabile in alcune aziende. Il processo iterativo riduce i costi di tentativi e errori. Se il costo di un errore è elevato, potrebbe essere opportuno ridurli (ma ciò non è consigliabile per applicazioni mediche o di produzione). Inoltre, se ti occupi di petabyte o exabyte di dati, potrebbe essere necessaria una specializzazione nel design dei dati. Allo stesso modo, se mantenere le opportunità di business online e la loro disponibilità è più importante della loro perfezione, l'eccellenza funzionale può superare l'apprendimento. Infine, un modello full-stack si basa sull'opinione di esperti del settore. Non sono unicorni; possono essere trovati o formati internamente. Tuttavia, sono molto richiesti e attrarli e trattenerli in azienda richiederà un compenso competitivo, valori aziendali solidi e un lavoro interessante. Assicurati che la tua cultura aziendale possa fornire tali condizioni.

Anche tenendo conto di tutto ciò, ritengo che un modello full stack offra le migliori condizioni per partire. Iniziate da lì, e poi procedete consapevolmente verso una divisione funzionale del lavoro solo quando è assolutamente necessario.

Ci sono anche altri svantaggi nella specializzazione funzionale. Questo può portare a una perdita di responsabilità e a passività da parte dei lavoratori. Lo stesso Smith critica la divisione del lavoro, suggerendo che essa porti a un appiattimento del talento, cioè i lavoratori diventano ignoranti e introversi, poiché i loro ruoli sono limitati a pochi compiti ripetitivi. Mentre la specializzazione può garantire l'efficienza del processo, raramente ispira i lavoratori.

Le tabelle universali forniscono tutto ciò che stimola la soddisfazione lavorativa: autonomia, competenza e determinazione. L'autonomia sta nel fatto di non dipendere da fattori esterni per raggiungere il successo. La competenza si traduce in forti vantaggi competitivi. E la determinazione è la capacità di influenzare il business che si crea. Se riusciamo a far appassionare le persone al proprio lavoro e avere un grande impatto sull'azienda, tutto il resto si sistemerà.

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster