
HIROSHI WATANABE/GETTY IMAGES
Nel libro "La ricchezza delle nazioni", Adam Smith dimostra 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 stira, il terzo lo taglia, il quarto affila l'estremità, il quinto rifinisce l'altra estremità per l'inserimento della testa". Grazie alla specializzazione orientata a funzioni specifiche, ogni lavoratore diventa un esperto altamente qualificato nel proprio compito, ciò che porta a un aumento dell'efficienza del processo. La produzione per lavoratore aumenta notevolmente e la fabbrica diventa più efficiente nella produzione di spille.
Questa divisione del lavoro per funzionalità è così radicata nelle nostre menti anche oggi, che organizziamo rapidamente i nostri team di conseguenza. La Data Science non fa eccezione. Le complesse opportunità di business algoritmiche richiedono molte funzioni lavorative, pertanto le aziende normalmente creano gruppi di specialisti: ricercatori, ingegneri dei dati, ingegneri del machine learning, scienziati che si occupano di relazioni causali, e così via. Il lavoro degli specialisti è coordinato da un product manager, con la delega delle funzioni in modo simile a una fabbrica di spille: "una persona riceve i dati, un'altra li modella, un'altra ancora li esegue, un'altra misura" e così via.
Purtroppo, non dobbiamo ottimizzare i nostri team di Data Science per aumentare la produttività. Tuttavia, lo si fa quando si comprende cosa si sta producendo: spille o altro, e si cerca semplicemente di migliorare l'efficienza. Lo scopo delle linee di assemblaggio è portare a termine un compito. Sappiamo esattamente ciò che vogliamo: sono spille (come nell'esempio di Smith), ma si potrebbe fare riferimento a qualsiasi prodotto o servizio in cui i requisiti descrivono 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 eseguire compiti. Piuttosto, il fine è studiare e sviluppare nuove potenzialità per il business. Prodotti e servizi algoritmici, come i sistemi di raccomandazione, l'interazione con i clienti, la classificazione delle preferenze nella moda, 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 riprodurre; sono nuove opportunità con la loro intrinseca incertezza. I coefficienti, i modelli, i tipi di modelli, gli iperparametri, tutti gli elementi necessari devono essere studiati attraverso esperimenti, prove ed errori, e ripetizioni. Con le spille, l'apprendimento e il design vengono effettuati in anticipo, prima della loro produzione. Con la Data Science si impara nel processo, non prima.
Nella fabbrica di spille, quando l'apprendimento è al primo posto, non aspettamo e non vogliamo che i lavoratori improvvisino su alcuna caratteristica del prodotto, se non per migliorare l'efficienza della produzione. La specializzazione delle attività ha senso, poiché porta a una maggiore efficienza dei processi e coerenza nella produzione (senza 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è, quei costi che si accumulano nel tempo speso per comunicare, discutere, giustificare e definire le priorità del lavoro da svolgere. Questi costi si amplificano in modo sovralineare con il numero di persone coinvolte. (Come ci ha insegnato J. Richard Hackman, il numero di relazioni r cresce secondo la funzione del numero di membri n in base a questa equazione: r = (n ^ 2-n) / 2. E ciascuna relazione svela un certo numero di rapporti di costo). Quando gli specialisti dell'analisi dei dati sono organizzati per funzioni, ad ogni fase, con ogni cambiamento, ogni trasferimento di servizio, ecc., sono richiesti molti specialisti, il che aumenta i costi di coordinamento. Ad esempio, gli specialisti di modellizzazione statistica che desiderano sperimentare nuove funzionalità devono coordinarsi con gli ingegneri di elaborazione dei dati, che completano i set di dati ogni volta che vogliono provare qualcosa di nuovo. Allo stesso modo, ogni nuovo modello addestrato significa che il creatore del modello avrà bisogno di qualcuno con cui coordinarsi per metterlo in produzione. I costi di coordinamento fungono da tassa per l'iterazione, rendendola più difficile e costosa e aumentando la probabilità di abbandonare la ricerca. Questo può ostacolare l'apprendimento.
2. Complica il tempo di attesa.
Ancora più preoccupante dei costi di coordinamento è il tempo perso tra i turni di lavoro. Sebbene i costi di coordinamento siano generalmente misurati in ore—il tempo necessario per riunioni, discussioni e revisioni dei progetti—il tempo di attesa è solitamente misurato in giorni, settimane o addirittura mesi! È difficile allineare i programmi degli specialisti funzionali, poiché ciascun esperto deve essere allocato su più progetti. Una riunione di un'ora per discutere le modifiche può richiedere diverse settimane per allineare il flusso di lavoro. E dopo aver approvato le modifiche, è necessario pianificare anche il lavoro effettivo nel contesto di molti altri progetti, occupando il tempo lavorativo degli specialisti. Il lavoro legato alla correzione del codice o alla ricerca, che richiederebbe solo poche ore o giorni per essere completato, può richiedere molto più tempo prima che le risorse diventino disponibili. Fino ad allora, l'iterazione e l'apprendimento vengono sospesi.
3. Questo restringe il contesto.
La divisione del lavoro può artificialmente limitare l'apprendimento, premiando le persone per rimanere nella loro specializzazione. Ad esempio, uno scienziato ricercatore che deve rimanere all'interno della propria funzionalità concentrerà la propria energia su esperimenti con vari tipi di algoritmi: regressione, reti neurali, random forest e così via. Sicuramente, una buona scelta dell'algoritmo può portare a miglioramenti graduali, ma in genere si può ottenere 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 singolo bit di capacità esplicativa presente nei dati. Tuttavia, il suo punto di forza può consistere nel modificare la funzione obiettivo o nel rilassare alcune restrizioni. Questo è difficile da vedere o realizzare quando il suo lavoro è limitato. Poiché lo scienziato specialista è specializzato nell'ottimizzazione degli algoritmi, ha molte meno possibilità di occuparsi di qualcos'altro, anche se questo porta a vantaggi sostanziali.
Indichiamo i segni che si manifestano quando i team di data science operano come fabbriche di fermi meccanici (ad esempio, nei semplici aggiornamenti di stato): «attesa di modifiche al flusso di dati» e «attesa delle risorse ML Eng», che sono comuni fattori di blocco. Tuttavia, ritengo che l'influenza più pericolosa sia ciò che non si nota, perché non si può rimpiangere ciò che non si conosce. Un'esecuzione impeccabile delle esigenze e una certa tranquillità, raggiunte a seguito dell'efficienza dei processi, possono nascondere la verità su come le organizzazioni non siano consapevoli dei benefici dell'apprendimento che stanno perdendo.
La soluzione a questo problema è, ovviamente, liberarsi del metodo della fabbrica di fermi meccanici. Per stimolare l'apprendimento e l'iterazione, i ruoli nel data science devono essere condivisi, ma con ampie responsabilità, indipendenti dalla funzione tecnica, ovvero organizzare i professionisti dei dati in modo tale che siano ottimizzati per l'apprendimento. Questo significa che è necessario assumere «specialisti full stack» — professionisti polivalenti che possono svolgere diverse funzioni: dalla concezione alla modellazione, dall'implementazione alla misurazione. È importante notare che non posso suggerire che, assumendo specialisti full stack, il numero di dipendenti debba diminuire. Piuttosto, suppongo che quando sono organizzati in modo diverso, i loro incentivi siano meglio allineati ai benefici dell'apprendimento e dell'efficienza. Ad esempio, hai un team di tre persone con tre qualità aziendali. In una fabbrica di produzione di fermi meccanici, ogni specialista dedicará un terzo del tempo a ciascun compito professionale, poiché nessun altro può svolgere il suo lavoro. Nel full stack, ogni dipendente polivalente è completamente dedicato all'intero processo aziendale, alla scalabilità del lavoro e all'apprendimento.
Con un numero minore di persone a supporto del ciclo produttivo, la coordinazione diminuisce. L'universale si muove agevolmente tra le funzioni, ampliando il flusso di dati, per aggiungere un volume maggiore di informazioni, provando nuove funzionalità nei modelli, distribuendo nuove versioni in produzione per misurazioni causali e ripetendo i passaggi non appena arrivano nuove idee. Certamente, l'universale svolge funzioni diverse in modo sequenziale, e non parallelo. Alla fine, si tratta pur sempre di una sola persona. Tuttavia, il tempo necessario per completare un compito di solito occupa solo una piccola parte del tempo richiesto per accedere a un altro prezioso risorsa specializzata. Quindi, il tempo di iterazione si riduce.
Il nostro universale, forse, non è abile come uno specialista in una funzione lavorativa specifica, ma non puntiamo alla perfezione funzionale o a piccoli miglioramenti graduali. Piuttosto, miriamo a scoprire e affrontare continuamente nuovi compiti professionali con un impatto progressivo. Con un contesto olistico per una soluzione completa, vede opportunità che uno specialista ristretto trascura. Ha più idee e più possibilità. Anche lui fallisce. Tuttavia, il costo del fallimento è basso e i vantaggi dell'apprendimento sono elevati. Questa asimmetria favorisce rapide iterazioni e premia l'apprendimento.
È importante notare che l'entità dell'autonomia e della diversità delle competenze fornite dai professionisti che lavorano con stack completi dipende in gran parte dall'affidabilità della piattaforma dati su cui è possibile operare. Una buona piattaforma dati astrae i professionisti della data processing dalle complessità della containerizzazione, dell'elaborazione distribuita, della transizione automatica a un'altra risorsa e di altri concetti informatici avanzati. Oltre all'astrazione, una piattaforma dati affidabile può garantire una connessione fluida con l'infrastruttura sperimentale, automatizzare il monitoraggio e il sistema di allerta, fornire scalabilità automatica e visualizzazione dei risultati algoritmici e debug. Questi componenti sono progettati e realizzati dagli ingegneri della piattaforma dati, ovvero non sono trasferiti dal professionista di Data Science al team di sviluppo della piattaforma dati. È proprio il professionista di Data Science ad essere responsabile di tutto il codice utilizzato per far funzionare la piattaforma.
Anche a me un tempo interessava la divisione funzionale del lavoro utilizzando l'efficacia dei processi, ma con un metodo di tentativi ed errori (non c'è modo migliore di apprendere) ho scoperto che ruoli tipici favoriscono meglio l'apprendimento e l'innovazione, fornendo indicatori accurati: identificare e costruire un numero molto maggiore di opportunità commerciali rispetto a un approccio specializzato. (Un modo più efficace per apprendere questo approccio all'organizzazione, rispetto al metodo di tentativi ed errori che ho seguito, è leggere il libro di Amy Edmondson "Teaming: come le organizzazioni apprendono, innovano e competono nell'economia della conoscenza").
Ci sono alcune importanti assunzioni che possono rendere questo approccio all'organizzazione più o meno affidabile in alcune aziende. Il processo iterativo riduce i costi di tentativi ed errori. Se il costo dell'errore è alto, potresti voler ridurli (ma ciò non è raccomandato per applicazioni mediche o produzione). Inoltre, se ti occupi di petabyte o exabyte di dati, potrebbe essere necessaria una specializzazione nella progettazione dei dati. Allo stesso modo, se mantenere le opportunità aziendali online e la loro disponibilità è più importante del loro perfezionamento, il dominio funzionale potrebbe superare l'apprendimento. Infine, il modello full-stack si basa sul parere di persone competenti in materia. Non sono unicorni; possono essere trovati o formati internamente. Tuttavia, sono molto richiesti e per attrarli e trattenerli in azienda sarà necessaria una compensazione materiale competitiva, valori aziendali solidi e un lavoro interessante. Assicurati che la tua cultura aziendale possa fornire tali condizioni.
Anche considerando tutto ciò, credo che il modello full-stack offra le migliori condizioni per iniziare. Inizia con loro e poi prosegui consapevolmente verso la divisione del lavoro funzionale solo quando è davvero necessario.
Ci sono anche altri svantaggi della specializzazione funzionale. Questo può portare a una perdita di responsabilità e passività da parte dei lavoratori. Lo stesso Smith critica la divisione del lavoro, suggerendo che porta 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 funzioni universali forniscono tutto ciò che stimola la soddisfazione lavorativa: autonomia, maestria e determinazione. L'autonomia implica che non dipendono da fattori esterni per raggiungere il successo. La maestria si traduce in forti vantaggi competitivi. Infine, la determinazione consiste nella possibilità di avere un impatto sul business che costruiscono. Se riusciamo a far appassionare le persone al loro lavoro e a esercitare una grande influenza sull'azienda, tutto il resto si sistemerà.
Fonte: habr.com
