團隊需要可履行各種職能的通才》資料科學不需要專家團隊

Why Data Science Teams Need Generalists, Not Specialists
艾瑞克.柯爾森 Eric Colson
瀏覽人數:3546
資料科學的目標並不是執行,而是學習,以及培養出新業務的能力。為了鼓勵學習與重複執行工作,必須將資料科學的角色設計成更加通才型,肩負廣泛職責,不僅限於技術職能。也就是說,要以最利於學習的方式,組織「全端資料科學家」。

亞當.史密斯(Adam Smith)在《國富論》( The Wealth of Nations)中,運用別針工廠組裝線的生動例子,說明分工如何成為生產力提升的主要來源:「一人抽出鐵線,另一人拉直,第三人截斷,第四人削尖,第五人磨削頂端。」職能導向的專業化,讓每位工人變得很擅長執行某一項小型任務,因而提高了流程效率。每位工人的產出增加許多倍;工廠在生產別針上變得極有效率。

依據職能來分工的做法根深柢固,即使在今日,我們仍會立刻這樣組織自己的團隊。資料科學也不例外。一項端到端(end-to-end)演算法業務能力包含許多職能,因此,公司通常會成立專家團隊,包括:研究科學家、資料工程師、機器學習工程師、因果推論科學家等。專家們的工作由一位產品經理協調,在各職能間移交,方式類似前述的別針工廠:「一人獲取資料,另一人建立模型,第三人執行,第四人衡量」等。

唉,我們不該為了提高生產力而優化資料科學團隊;當你知道自己正在生產的是什麼(可能是別針,或是其他東西),而且只追求增量效率的時候,才應該這麼做。組裝線的目標是執行。我們明確知道自己想要什麼,在史密斯的例子中是別針,但也可以是你想到的任何產品或服務,只要產品要求條件裡可以完整說明那項產品與它的行為的所有面向。於是工人的角色,就是盡可能有效率地執行這些要求條件。

但資料科學的目標並不是執行,而是學習,以及培養出深厚的新業務能力。演算法產品與服務都無法預先設計,例如推薦系統、以吃角子老虎機式的問題為基礎的客戶投入計畫( client engagement bandits)、風格偏好分類、尺寸配對、時尚設計系統、物流優化器、每季流行偵測等等。這些必須要透過學習而產生。沒有可供遵循的藍圖;這些是本來就具備不確定性的嶄新能力。所有你需要的元素,像是係數、模型、模型類型、超參數(hyper parameter),都必須透過實驗、嘗試錯誤、重複進行(iteration,或稱「迭代」)而學習到。製造別針的學習與設計,可以在製造前預先完成。但對於資料科學,你是邊做邊學,而不是先學習再動手做。

在預先學習的別針工廠中,我們既不期待,也不希望工人在產品的任何層面即興發揮,只要求他們更有效率地生產。依職能來設計組織很有道理,因為任務專業化會使流程有效率,生產更穩定一致(最終產品沒有差別)。

專業化阻礙目標達成

但如果產品仍在演變,而且目標是學習,專業化就會以下面幾種方式阻撓我們的目標:

1.增加協調成本。這是指,為預定要做的工作進行溝通、討論、合理化與安排優先順序所花費的時間,累積起來造成的成本。這些成本隨著參與人數而超線性增加。〔理查.海克曼(J. Richard Hackman)告訴我們,根據r = (n^2-n) / 2這個等式,關係的數量(r),會隨成員人數(n)而成長。而且,每段關係多少需要一些協調成本〕。如果依職能來組織資料科學家,在每一個步驟、每一次更改、每一次移交工作等等的時候,都需要許多專家,導致協調成本很高。例如,想要測試新功能的統計模型專家,每次想要嘗試新東西時,都必須與負責擴增資料集的資料工程師協調。同樣地,每次訓練新模型時,建模的人就必須與某人協調部署。協調成本就像對重複執行工作徵稅,讓它更困難、更昂貴,而且更有可能打消探索的動力。這會阻礙學習。

2.拉長等待時間。比協調成本還要糟糕的,是在工作之間流逝的時間。協調成本通常以小時計,像是開會、討論、審查設計所花費的時間,但等待時間通常以日或週,或甚至以月來計算!各個職能專家的時程很難互相配合,因為每位專家都必須受指派參與數個專案。討論更改事項的一小時會議,可能要排隊等待數週才能召開。另外,一旦協調好要做哪些更改,實際執行更改工作本身也需要排入時程表,和許多其他專案一起爭奪專家的時間。像是更改程式碼或調查之類的工作,只需要數小時或數天就能完成,但在資源就位前,可能還是得乾等很長一段時間。等到可以進行的時候,重複執行工作和學習都已萎靡不振了。

3.讓情境變狹隘。分工可能會因為獎勵人們只專注在份內工作,而人為地限制了學習。例如,被安排成只能專注在自己職能的研究科學家,會集中精力測試不同類型的演算法:迴歸、類神經網絡(neural net)、隨機森林(random forest)等。選擇優良的演算法,當然能帶來逐步改善。但是,整合新資料來源之類的其他活動,可帶來的收穫通常遠為更多。同樣地,他也許開發出一種模型,能用盡資料本身具備的所有解釋力量。然而,他最好的機會可能在於改變目標函數,或是放寬某些限制條件。當他的工作職能受到限制,就很難看出或實際去做這些事情。由於這位研究科學家專精在優化演算法,因此即使去做別的事情可帶來極大的好處,他也不太可能去做。

當資料科學團隊像別針工廠那樣運作,可呈現問題的症狀就會浮現,例如,單純的工作狀況更新當中會出現「等待資料管道改變」與「等待機器學習工程資源」等常見障礙。然而,我認為最陰險的衝擊,來自你從未聽聞的事物,因為你無法對還未學習到的東西感到惋惜。按照要求條件完善地執行,以及提升流程效率帶來的自滿,會遮蓋住難堪的事實,那就是組織渾然不覺錯過了寶貴的學習機會。

擺脫資料科學「別針工廠」

這個問題的解決方法,當然是擺脫別針工廠的做法。為了鼓勵學習與重複執行工作,必須把資料科學的角色設計得更加通才型(general),肩負廣泛職責,不僅限於技術職能。也就是說,以最有利學習的方式來組織資料科學家。這代表聘請可履行各種職能的「全端資料科學家」(full stack data scientist),這種通才型的人員可以執行多種職能,從構思到建立模型、執行、測量都包括。請注意,我並不是在暗示聘請全端資料科學家,會造成整體聘雇人數減少。我只是想說明,如果用不同的方式架構組織,他們的激勵誘因會比較有利於學習,勝過提升效率。例如,假設你有一個三人團隊正在打造三項業務能力。在別針工廠中,每位專家會投入三分之一心力在每項能力上,因為沒有人可以做他們的工作。但在全端做法中,每位通才會完全投身於一項能力,因而可提升規模與學習。

參與的人數減少,協調成本就大幅下降。通才能在職能之間順暢移動,擴展資料管道以增加更多資料、在模型中嘗試新功能、執行新版本以進行因果測量,以及一想到新構想就立刻重複這些步驟。當然,通才是依序執行不同職能,而不是同時進行,他畢竟只是一個人。然而,與等候另一項專家資源就緒的時間相比,進行這些工作所花的時間要少得多。因此,重複執行所花的時間縮短了。

我們的通才也許不像專家那樣擅長任何一項職能。但是我們並非在追求職能上的卓越,或是小幅度的漸進改善,而是尋求能產生大躍進程度影響的全新業務能力。通才能看到完整解決方案所需的整體情境,因而能看出狹隘專家無法看到的機會。他會產生更多構想,嘗試更多事物。他也會失敗更多次。然而,失敗的成本很低,而學習的好處很高。這種得失不對稱,有利於快速重複執行,也會獎勵學習。

值得強調的是,要賦予全端資料科學家這種程度的自主性與技能多樣性,很大部分取決於一項假設,就是架設一個可靠的資料平台,讓他們能在上面工作。一個建造良好的資料平台,可透過抽象化來讓資料科學家免於處理許多複雜概念,像是容器化( containerization)、分散式運算(distributed processing)、自動容錯移轉(automatic failover)和其他先進電腦科學概念。除了抽象化,強大的資料平台也能無縫連接實驗基礎設施、自動化監控與警報、自動擴充,以及把偵錯輸出與演算法結果視覺化。這些要素都由資料平台工程師設計與打造,但要明白,這並沒有把工作從資料科學家移交給一個資料平台團隊,而是由資料科學家負責將要在這個平台上部署運行的所有程式碼。

從全端資料科學家模型出發

我也曾受到根據職能來分工的做法所吸引,因為這種分工可帶來流程效率。但藉由嘗試錯誤(沒有比這更好的學習方法),我發現更通才型的角色較能促進學習與創新,並提供正確類型的擴充:比起專才式做法,通才式做法能發現與打造更多業務能力〔對組織來說,相較於我的嘗試錯誤,有另一種更有效率的方式可了解這種通才式做法,就是閱讀艾美.艾蒙森(Amy C. Edmondson)的著作:《團隊編組:組織如何在知識經濟中學習、創新和競爭》(Teaming: How Organizations Learn, Innovate, and Compete in the Knowledge Economy)與〈成軍快狠準〉(Teamwork on the Fly;本刊2012年4月號)〕。

有些重要的考量,可能讓這種組織方法在某些公司中或多或少能行得通。這種重複進行的過程,假設嘗試錯誤的成本很低。如果錯誤的成本很高,你可能就應重新考慮(也就是說,不建議醫療應用或製造業採用)。此外,如果你處理的是千兆位元組(petabyte,1015位元組)或艾位元組(exabyte,EB,1018位元組)大小的資料,可能就有必要在資料工程方面採取專業化做法。同樣地,如果讓某項業務能力維持上線或隨時可用,比改進它更加重要,那麼追求職能卓越就可能比學習更重要。最後,全端資料科學模型仰賴的假設,是人才都很優秀。優秀人才並非無從尋覓;你能找到他們,也能打造他們。但他們很搶手,而且需要具競爭力的薪資、強大的公司價值觀和有趣的工作,才能吸引並留住他們。而且你的公司文化必須要能支持這一切。

儘管如此,我相信全端資料科學家模式會是更好的起點。由此出發,然後只在很明顯有必要的時候,才有意識地(不情願地)走向以職能為基礎的分工。

職能專業化還有其他缺點。它可能導致工人失去責任感與熱情。史密斯自己也批評分工可能會消磨人才,因為角色被限縮在少數重複的任務,會讓工人變得無知且孤立。雖然專業化可能會提高流程效率,但較不可能啟發工人。

相反地,通才的角色提供可提升工作滿意度的所有要素:自主性、掌控性與目的。自主性,是指他們不需要依靠其他人來獲得成功。掌控性,是指他們從頭到尾完整了解某項業務能力。而目的則是指,他們能直接連結到自己對業務產生的影響。如果我們成功地讓人們對工作產生熱情,並對公司產生深遠的影響,那麼其他事情自然會有條不紊地進行。

(游樂融譯自2019年3月8日HBR.org數位版文章)



艾瑞克.柯爾森 Eric Colson

Stitch Fix演算法長。之前他曾擔任網飛(Netflix)資料科學與工程副總裁。


本篇文章主題組織管理