
HIROSHI WATANABE/GETTY IMAGES
În cartea „Bogăția Națiunilor”, Adam Smith arată cum diviziunea muncii devine principala sursă de creștere a productivității. Un exemplu este linia de asamblare a unei fabrici de agrafe: „Un muncitor trage firul, altul îl îndreaptă, al treilea îl taie, al patrulea ascut vârful, iar al cincilea îndreaptă cealaltă extremitate pentru montarea capului.” Datorită specializării, care este orientată pe funcții specifice, fiecare muncitor devine un specialist foarte calificat în sarcina sa restrânsă, ceea ce conduce la creșterea eficienței procesului. Producția pe cap de muncitor crește de mai multe ori, iar fabrica devine mai eficientă în producția de agrafe.
Această diviziune a muncii funcționale este atât de bine înrădăcinată în gândirea noastră chiar și astăzi, încât ne-am organizat rapid echipele în consecință. Data Science nu face excepție. Oportunitățile de afaceri complexe bazate pe algoritmi necesită multe funcții de muncă, așa că companiile de obicei formează grupuri de specialiști: cercetători, ingineri de analiză a datelor, ingineri de învățare automată, oameni de știință care studiază relațiile cauză-efect, și așa mai departe. Activitatea specialiștilor este coordonată de un manager de produs, cu distribuirea funcțiilor într-un mod care amintește de fabrica de agrafe: „un om primește datele, altul le modelează, al treilea le execută, al patrulea le măsoară” și așa mai departe.
Din păcate, nu ar trebui să optimizăm echipele noastre de Data Science pentru a crește productivitatea. Cu toate acestea, asta faceți atunci când înțelegeți ce produceți: agrafe sau altceva, și vă străduiți să îmbunătățiți eficiența. Scopul liniilor de asamblare este de a finaliza sarcina. Știm exact ceea ce vrem - acestea sunt agrafe (ca în exemplul lui Smith), dar se poate menționa orice produs sau serviciu, în care cerințele descriu complet toate aspectele produsului și comportamentul său. Rolul angajaților este să îndeplinească aceste cerințe cât mai eficient posibil.
Dar scopul Data Science nu este de a executa sarcini. Mai degrabă, scopul este de a explora și dezvolta noi oportunități puternice de afaceri. Produse și servicii algoritmice, cum ar fi sistemele de recomandare, interacțiunile cu clienții, clasificarea preferințelor de stil, potrivirea mărimilor, designul vestimentației, optimizarea logisticii, identificarea tendințelor sezoniere și multe altele nu pot fi dezvoltate în avans. Ele trebuie studiate. Nu există niciun plan pentru reproducerea acestora, sunt oportunități noi cu incertitudinea lor inerentă. Coefficientii, modelele, tipurile de modele, hiperparametrii, toate elementele necesare trebuie studiate prin experimente, încercări și erori, precum și repetări. La fabricile de bolduri, învățarea și designul se fac în prealabil, înainte de momentul producerii acestora. Cu Data Science, înveți în proces, nu înainte.
La fabrica de bolduri, atunci când învățarea este pe primul loc, nu așteptăm și nu dorim ca angajații să improvizeze asupra oricărui aspect al produsului, în afară de a îmbunătăți eficiența producției. Specializarea sarcinilor are sens, deoarece duce la eficiența proceselor și coerența producției (fără a modifica produsul final).
Dar când produsul este încă în dezvoltare și scopul este învățarea, specializarea interferează cu obiectivele noastre în următoarele cazuri:
1. Crește costurile de coordonare.
Adică, aceste costuri care se acumulează pe parcursul timpului dedicat comunicării, discuțiilor, justificării și stabilirii priorităților pentru activitățile care trebuie îndeplinite. Aceste costuri se scalează non-liniar cu numărul de persoane implicate. (Așa cum ne-a învățat J. Richard Hackman, numărul relațiilor r crește similar cu funcția numărului de membri n conform acestei ecuații: r = (n ^ 2-n) / 2. Și fiecare relație dezvăluie un anumit grad de corelație a costurilor). Când specialiștii în analiza datelor sunt organizați pe funcții, la fiecare etapă, cu fiecare modificare, cu fiecare transfer de servicii etc., sunt necesari mulți specialiști, ceea ce crește costurile de coordonare. De exemplu, specialiștii în modelare statistică, care doresc să experimenteze cu funcții noi, vor trebui să își coordoneze acțiunile cu inginerii de prelucrare a datelor, care completează seturile de date de fiecare dată când doresc să încerce ceva nou. Similar, fiecare nou model antrenat înseamnă că dezvoltatorul modelului trebuie să aibă pe cineva cu care să își coordoneze acțiunile pentru a-l pune în operare. Costurile de coordonare acționează ca o taxă pentru iterație, ceea ce le face mai dificile și costisitoare, și cu o probabilitate mai mare de a renunța la explorare. Asta poate împiedica învățarea.
2. Acest lucru complică timpul de așteptare.
Mai îngrijorător decât costurile coordonării este timpul pierdut între schimburile de lucru. În timp ce costurile de coordonare sunt de obicei măsurate în ore: timpul necesar pentru organizarea ședințelor, discuțiilor, revizuirilor de proiect, timpul de așteptare este de obicei măsurat în zile, săptămâni sau chiar luni! Este dificil de aliniat programele specialiștilor funcționali, deoarece fiecare specialist trebuie să fie distribuit pe mai multe proiecte. O întâlnire pentru a discuta modificările poate dura câteva săptămâni pentru a alinia fluxul de lucru. Și după ce modificările sunt aprobate, trebuie programată și munca propriu-zisă în contextul multor alte proiecte, ceea ce ocupă timpul specialiștilor. Lucrările legate de corectarea codului sau de cercetări, care necesită doar câteva ore sau zile pentru a fi finalizate, pot dura mult mai mult înainte de a deveni resursele disponibile. Până atunci, iterația și învățarea sunt suspendate.
3. Acesta restrânge contextul.
Împărțirea muncii poate limita artificial învățarea, recompensând oamenii pentru că rămân în specializarea lor. De exemplu, un cercetător care trebuie să rămână în limitele funcționalității sale își va concentra energia pe experimente cu diferite tipuri de algoritmi: regresie, rețele neuronale, random forest și așa mai departe. Cu siguranță, o alegere bună a algoritmului poate duce la îmbunătățiri treptate, dar, în general, se poate extrage mult mai mult din alte activități, cum ar fi integrarea de noi surse de date. La fel, aceasta va ajuta la dezvoltarea unui model care folosește fiecare bit de capacitate explicativă inerente datelor. Cu toate acestea, punctul său forte poate consta în modificarea funcției obiectiv sau slăbirea anumitor constrângeri. Este greu de văzut sau de realizat atunci când munca ei este limitată. Deoarece specialistul în domeniul științei se specializează în optimizarea algoritmilor, are mult mai puține șanse să se implice în altceva, chiar și atunci când ar aduce beneficii semnificative.
Să numim semnele care se manifestă atunci când echipele de data science funcționează ca fabrici de agrafe (de exemplu, în actualizările simple de stare): „așteptând modificări în fluxul de date” și „așteptând resurse de inginerie ML”, care sunt blocajele comune. Cu toate acestea, consider că influența mai periculoasă constă în ceea ce nu observați, pentru că nu puteți regreta ceva ce nu știți încă. Execuția impecabilă a cerințelor și auto-satisfacția, obținute ca urmare a eficientizării proceselor, pot masca adevărul despre faptul că organizațiile nu sunt familiarizate cu beneficiile învățării pe care le ignoră.
Soluția acestei probleme constă, desigur, în renunțarea la metoda fabricii de agrafe. Pentru a stimula învățarea și iterația, rolurile din data science ar trebui să fie comune, dar cu responsabilități ample, independente de funcția tehnică, adică organizați specialiștii în date astfel încât să fie optimizați pentru învățare. Aceasta înseamnă că este necesar să angajați „specialiști full stack” — specialiști generali care pot îndeplini diverse funcții: de la concepție la modelare, de la implementare la măsurare. Este important de menționat că nu presupun că, odată cu angajarea specialiștilor full stack, numărul de angajați ar trebui să scadă. Este mai degrabă o presupunere că, atunci când sunt organizați diferit, stimulentele lor se corelează mai bine cu beneficiile învățării și eficienței. De exemplu, aveți o echipă de trei persoane, fiecare având trei calități antreprenoriale. La fabrica de agrafe, fiecare specialist va dedica o treime din timp fiecărei sarcini profesionale, deoarece nimeni altcineva nu va putea îndeplini munca sa. În cazul full stack, fiecare angajat versatil este complet dedicat întregului proces de afaceri, creșterii muncii și învățării.
Cu mai puțini oameni sprijinind ciclul de producție, coordonarea scade. Universalul trece cu ușurință între funcții, extinzând fluxul de date pentru a adăuga un volum mai mare de date, testând noi caracteristici în modele, desfășurând noi versiuni în producție pentru măsurări cauzale și repetă pașii atât de repede cât apar idei noi. Desigur, universalul îndeplinește diferite funcții în mod secvențial, nu simultan. Până la urmă, este doar o singură persoană. Totuși, îndeplinirea sarcinii durează de obicei doar o mică parte din timpul necesar pentru accesarea unei alte resurse specializate. Așadar, timpul de iterație se reduce.
Universalul nostru poate că nu este la fel de priceput ca un specialist într-o anumită funcție de muncă, dar nu ne străduim pentru excelența funcțională sau pentru îmbunătățiri mici și treptate. Mai degrabă, ne propunem să explorăm și să descoperim noi sarcini profesionale cu un impact gradual. Având un context integral pentru soluții complete, el vede oportunități pe care un specialist îngust le-ar rata. Are mai multe idei și mai multe oportunități. De asemenea, eșuează. Cu toate acestea, costul eșecului este mic, iar beneficiile învățării sunt mari. Această asimetrie favorizează iterația rapidă și recompensează învățarea.
Este important de menționat că amploarea autonomiei și diversității abilităților oferite de un specialist care lucrează cu stive complete depinde într-o mare măsură de fiabilitatea platformei de date pe care se poate lucra. O platformă de date bine concepută îi abstrează pe cercetători de complexitățile containerizării, procesării distribuite, trecerii automate la o altă resursă și altor concepte computaționale avansate. Pe lângă abstractizare, o platformă de date fiabilă poate asigura conectivitate fără întreruperi la infrastructura experimentală, automatiza monitorizarea și sistemul de alertă, permite scalarea automată și vizualizarea rezultatelor algoritmice și depanarea. Aceste componente sunt proiectate și realizate de inginerii platformei de date, adică nu sunt transferate de specialistul în Data Science echipei de dezvoltare a platformei de date. Specialistul în Data Science este responsabil pentru tot codul utilizat pentru a rula platforma.
Mă interesa și pe mine odată împărțirea funcțională a muncii utilizând eficiența proceselor, dar, prin metoda trial and error (cel mai bun mod de a învăța), am descoperit că rolurile tipice contribuie mai bine la învățare și inovație și oferă indicatori corecți: descoperirea și construirea unui număr mult mai mare de oportunități de afaceri decât abordarea specializată. (O modalitate mai eficientă de a învăța despre această abordare organizatorică decât metoda trial and error prin care am trecut este să citesc cartea lui Amy Edmondson „Interacțiunea în echipă: cum învață organizațiile, creează inovații și concurează în economia cunoașterii”).
Există unele presupuneri importante care pot face această abordare de organizare mai mult sau mai puțin fiabilă în anumite companii. Procesul de iterație reduce costurile încercărilor și erorilor. Dacă prețul unei erori este ridicat, este posibil să doriți să le reduceți (dar, nu este recomandat pentru aplicații medicale sau de producție). În plus, dacă aveți de-a face cu petabytes sau exabytes de date, ar putea fi necesară specializarea în proiectarea datelor. La fel, dacă menținerea oportunităților de afaceri online și disponibilitatea acestora este mai importantă decât îmbunătățirea lor, excelența funcțională poate depăși învățarea. În cele din urmă, modelul full stack se bazează pe opinia celor care se pricep. Nu sunt unicorni; pot fi găsiți sau pregătiți de către voi înșivă. Totuși, ei sunt foarte solicitați, iar atragerea și păstrarea lor în companie va necesita o compensație materială competitivă, valori corporative durabile și muncă interesantă. Asigurați-vă că cultura dumneavoastră corporativă poate oferi astfel de condiții.
Chiar și cu toate acestea, cred că modelul full stack oferă cele mai bune condiții pentru a începe. Începeți cu ei, apoi avansați conștient către împărțirea funcțională a muncii doar atunci când este cu adevărat necesar.
Există și alte dezavantaje ale specializării funcționale. Aceasta poate duce la pierderea responsabilității și la pasivitatea angajaților. Chiar Smith critică diviziunea muncii, sugerând că aceasta conduce la ascuțirea talentului, adică angajații devin ignoranți și retrăgăți, deoarece rolurile lor sunt limitate la câteva sarcini repetitive. Deși specializarea poate oferi eficiență în proces, aceasta inspiră mai rar angajații.
Rolurile universale, la rândul lor, oferă tot ce stimulează satisfacția la locul de muncă: autonomie, expertiză și orientare spre obiective. Autonomia înseamnă că nu depind de nimic pentru a atinge succesul. Expertiza constă în puterea competitivă puternică. Iar orientarea spre obiective - în capacitatea de a influența afacerea pe care o creează. Dacă reușim să îi facem pe oameni pasionați de munca lor și să aibă un impact semnificativ asupra companiei, atunci tot restul se va așeza la locul său.
Sursa: habr.com
