用分布式系統(tǒng)思考團隊管理
作者 | 給少個分號的贊賞
管理團隊是一件非常困難的事情,在認(rèn)知能力強的群體中尤其如此。歷史告訴我們,缺乏組織的人類群體沒有任何戰(zhàn)斗力,且在社會化生產(chǎn)的過程中效率非常低下。
在一些公司中,管理問題時時刻刻存在。這些公司要么靠管理者的本能管理,要么靠經(jīng)驗性的管理框架來管理。在 IT 團隊中尤其明顯,這是因為技術(shù)管理者往往更關(guān)注技術(shù)本身而非管理。
有意思的是,管理能不能也用 “技術(shù)的語言”來表述呢?其實是可以的,作為一個分布式系統(tǒng)的愛好者,我慢慢發(fā)現(xiàn)分布式系統(tǒng)和團隊管理有一些共通之處,且能用這些發(fā)現(xiàn)解決一些問題。這些問題對于管理者和團隊成員都有一些啟示,希望您能耐心地看下去。
團隊管理和分布式系統(tǒng)
團隊管理是社會學(xué)討論的問題,分布式系統(tǒng)是計算機中的概念。它們之間有什么關(guān)系呢?
在開始寫作前,我和同事聊到對于這篇文章的想法,同事笑道:你這個想法非常有意思,但也可能只是強行將它們聯(lián)系到一起。
的確,這兩個概念甚至都不在一個學(xué)科,一個是文科,而一個算工科的內(nèi)容。但是,世界是非常有意思的,跨學(xué)科的碰撞往往能發(fā)揮意想不到的作用。
著名投資人巴菲特的合作伙伴查理·芒格一生都在不停強調(diào)跨學(xué)科思維的重要性,在他的模型中,數(shù)學(xué)、物理、生物、化學(xué)、哲學(xué)、社會學(xué)、心理學(xué)等領(lǐng)域都會被聯(lián)系到一起。例如,大家以為投資是經(jīng)濟學(xué)話題,而事實上,這是一個社會學(xué)或心理學(xué)問題 —— 當(dāng)身邊的人開始向你推薦股票,牛市就結(jié)束了。
在《分布式計算——原理、算法與系統(tǒng)》這本書的開篇提到,“分布式系統(tǒng)是一組相互獨立的實體構(gòu)成的集合,這些實體相互協(xié)作可以解決任何單獨的實體所不能解決的問題”。作者認(rèn)為,分布式系統(tǒng)在宇宙之初就存在了,從蜂群、微生物系統(tǒng)、甚至由人體細胞構(gòu)成的各種系統(tǒng),這些都是分布式系統(tǒng)。
團隊是一個能獨立承擔(dān)一定功能和職責(zé)的人類群體,那么也應(yīng)該是一個分布式系統(tǒng),符合分布式系統(tǒng)的一些基本理論。
這是這篇文章的基本前提。
接下來我們會聊到分布式系統(tǒng)的兩種模型,分別代表兩種典型的團隊形態(tài),在計算機中也代表不同的計算模型:
- 主從調(diào)度模型
- 反饋調(diào)節(jié)模型
主從調(diào)度模型
這種系統(tǒng)由兩個主要的角色構(gòu)成:dispatcher(調(diào)度員) 和 worker(執(zhí)行者),這是主從調(diào)度模型的基本邏輯。
回顧一下計算機系統(tǒng)中的這兩個角色?;谪撦d均衡的無狀態(tài)服務(wù)集群,負載均衡器充當(dāng)了 dispatcher 的角色,普通的服務(wù)器充當(dāng)了 worker 的角色;基于主從的 CI 構(gòu)建系統(tǒng) Jenkins,它的 master 節(jié)點就是 dispatcher 角色,負責(zé)處理任務(wù)調(diào)度,slave 節(jié)點用于執(zhí)行任務(wù)構(gòu)建。
在這種模型下,我們發(fā)現(xiàn)如果 master 節(jié)點用來跑具體的任務(wù),會擠壓它的調(diào)度能力, master 節(jié)點崩潰整個系統(tǒng)也不可用了。
回歸到團隊管理中來,一個團隊的 leader 如果每天關(guān)注在具體的工作上,讓 worker 角色的工作擠占了 dispatcher 角色的工作,整個團隊會開始混亂。在好的情況下,團隊中會有其他成員自發(fā)彌補這部分工作,就有點類似于人體被切除某些器官后發(fā)生的代償行為。然而,團隊并不總是有這么好的運氣,如果沒有人來承擔(dān) dispatcher 的工作,整個系統(tǒng)就陷入混亂。
特點::
這種系統(tǒng)有一些鮮明的特征,可以用于后面分析一些具體的問題來使用。
- 這種模型是有中心的,有一些看起來無中心化的系統(tǒng),實際是由選舉機制自動完成中心化的選舉
- dispatcher 的重點在于如何帶動更多的 worker,而不是自己完成工作
- worker 的工作需要 dispatcher 梳理和分配
- worker 的主動性受到抑制,工作由 dispatcher 分配
- 系統(tǒng)的風(fēng)險大部分來源于 dispatcher
- 競爭關(guān)系由上層決定
反饋調(diào)節(jié)模型
主從調(diào)度模型看起來很完善了,但是卻不能描述一些特殊的場景,因此我們需要另外一種模型:反饋調(diào)節(jié)模型。這個系統(tǒng)由 3 個元素構(gòu)成:玩家、市場、調(diào)節(jié)者以及一個隱藏的元素——莊家所構(gòu)成。
這種系統(tǒng)出現(xiàn)在層級較為扁平的公司,各個團隊相對獨立和靈活,巨型公司的上層結(jié)構(gòu)也符合這個模型。對于市場經(jīng)濟為主體的國家來說,整個經(jīng)濟體就是這個模型,所以我借用了市場這個詞。
在分布式的計算機系統(tǒng)中,這種模型比較少見,一些彈性擴容的系統(tǒng)可以看做這種模型的簡單實現(xiàn)。這是由計算機科學(xué)基礎(chǔ)決定的,計算機科學(xué)建立在離散數(shù)學(xué)上,我們使用的計算模型為圖靈模型,圖靈模型是一種確定的計算模型(可計算性)。反饋調(diào)節(jié)模型不是一種確定的計算模型,目前的超計算(Hyper computation )就是在研究如何在計算機中應(yīng)用這類模型。
在這個模型中,dispatcher 被市場代替了,市場可以認(rèn)為是一個無形的手,這個手是全體玩家構(gòu)成的。這種模型是真正的去中心化模型,在生活中如果能細心一點,會發(fā)現(xiàn)到處都是這種模型的影子:生物圈、股市、人體內(nèi)分泌系統(tǒng)等。
回到團隊管理來看,我們可以把市場看做一個大的公司,每個玩家就是一個團隊,這些團隊可以找其他團隊合作,但是都要在市場上來競爭;對于國家而言,這些玩家就是企業(yè)。如果我們把場景聚焦到大型企業(yè)來看,每個團隊都需要在這個企業(yè)的生態(tài)鏈中尋求一席之地,和上下游的合作就是交易的過程。
特點:
這種系統(tǒng)具有和主從調(diào)度模型不同的邏輯,很多性質(zhì)甚至是違反直覺的。
- 這種模型是無中心化的,調(diào)節(jié)者不是必須的,只要市場在就不會崩潰
- 系統(tǒng)具有自我調(diào)節(jié)能力
- 玩家具有主動性,市場上出現(xiàn)需求時,玩家會立即參與
- 在一定時間后,系統(tǒng)會調(diào)節(jié)地非常充分
- 在一定時間后,由于馬太效應(yīng)的積累,莊家會控制市場,讓市場失去平衡
- 市場存在被欺騙的風(fēng)險
對管理者的啟示
當(dāng)我們聊完了這兩個模型之后,我們可以得出對管理者有價值的一些啟示。
1.多 dispatcher 問題
主從調(diào)度模型中,當(dāng)一個 dispatcher 的能力不能滿足團隊需要時,能否增加多個 dispatcher?
答案是否定的,在分布式系統(tǒng)中,避免這樣的模型:多個承擔(dān)有 worker 角色的 dispatcher 構(gòu)成系統(tǒng),它會帶來狀態(tài)的一致性問題。在團隊管理中,dispatcher 的負載不會太大,但是需要保證一致性。在一個團隊中出現(xiàn) 2 個 PM 會是一個災(zāi)難,然而這種場景在各個公司反復(fù)上演。
2.后備者
在計算機系統(tǒng)架構(gòu)設(shè)計中,單點故障是一個需要極力避免的設(shè)計,因此需要考慮高可用。主從調(diào)度模型中,需要為 dispatcher 準(zhǔn)備一個后備, dispatcher 不能提供服務(wù)時即使恢復(fù)系統(tǒng)。
反饋調(diào)節(jié)系統(tǒng)中具有天然的自我恢復(fù)能力,但是只有一定的閾值,調(diào)節(jié)者需要密切關(guān)注系統(tǒng)健康狀態(tài),然后通過政策來修正。
3.多層系統(tǒng)
在主從模型中,dispatcher 帶動 worker 的能力是有限的,因此為了讓系統(tǒng)規(guī)模能進一步擴大,多級主從模型就是有必要的。
中間節(jié)點在上層的的角色就是 worker,在下層就是 dispatcher。
4.選舉還是委派
在主從模型中,有兩種實現(xiàn)形態(tài)。
有一些看似去中心化的自組織系統(tǒng),實際上也是主從模型。比如蜂群無人機系統(tǒng)、電力行業(yè)的網(wǎng)格計算,它們一般使用自組網(wǎng)系統(tǒng)(ad-hoc ),多通過選舉算法完成。這種模式在軍事領(lǐng)域中使用得非常多,例如敵后穿插時不同單位的士兵集合到一起后重新組成臨時指揮系統(tǒng),就是通過軍銜作為規(guī)則實現(xiàn)選舉的。
另外一些場景下,他們的主從關(guān)系是提前設(shè)定的。比如數(shù)據(jù)庫的主從關(guān)系、負載均衡等。在團隊管理中,團隊的關(guān)鍵人員是由上級委派和從其他地方調(diào)撥,而不是就地選拔。
5.效率更高的系統(tǒng)
通過這兩個模型,可以分別優(yōu)化系統(tǒng)效率。
在主從模型中,我們可以使用認(rèn)知管理模型。也就是讓認(rèn)知能力強的人來承擔(dān) dispatcher, dispatcher 負責(zé)設(shè)定工作方式和流程,然后由認(rèn)知能力弱的人來作為 worker。在團隊中,人的認(rèn)知能力會隨工作時間成長,因此一般選工作時間長的人作為 dispatcher。
在反饋調(diào)節(jié)模型中,需要引入調(diào)節(jié)者來干預(yù)市場,防止莊家的出現(xiàn),莊家會給系統(tǒng)帶來風(fēng)險和效率降低。
6.系統(tǒng)的穩(wěn)健性
這兩者模型都有一定幾率崩潰,但是組織和團隊崩潰的原因是多種多樣的。外部原因讓這兩種模型崩潰沒有分析價值(比如投資中斷等),這里只分析內(nèi)部原因。
在主從模型中,系統(tǒng)崩潰的原因有:
- 系統(tǒng)混亂,dispatcher 沒有能力或者無法讓 worker 繼續(xù)工作
- 無上升通道,內(nèi)部矛盾積累過多,個體會選擇退出系統(tǒng)
- dispatcher 權(quán)力無法被制約,造成戰(zhàn)略失誤或一意孤行
在反饋調(diào)節(jié)模型中,系統(tǒng)崩潰的原因有:
- 莊家的形成,造成局部資源枯竭
- 調(diào)節(jié)者被裹挾,資源分配不均衡,失去整理競爭力
7.讓系統(tǒng)的規(guī)則顯性化
俗話說,不成文的規(guī)則才是真的規(guī)則,但是健康的系統(tǒng)應(yīng)當(dāng)盡可能讓規(guī)則顯性化。
在主從模型中 dispatcher 需要盡可能地把工作方式梳理的規(guī)范化、明確化,大多數(shù)情況下 worker 可以依靠規(guī)則行事,在少量的情況中 dispatcher 人為干預(yù),是系統(tǒng)高效的表現(xiàn)。
在反饋調(diào)節(jié)模型中,競爭規(guī)則需要明確,否則調(diào)節(jié)機制將會失效,破窗效應(yīng)會讓問題進一步惡化。
對個體的啟示
當(dāng)然,從站在個體的角度理解這兩個模型,也會讓自己受益。
1.競爭力
在主從調(diào)度模型中,個體需要想辦法完成調(diào)度者給出的任務(wù)。他的競爭力來自于:
- 強調(diào)個人在相應(yīng)領(lǐng)域的專業(yè)能力,專業(yè)性越強競爭力越大。
- 任務(wù)和自己專業(yè)能力的匹配性,在越匹配和擅長的崗位上競爭力越大。
- 工作輸出的穩(wěn)定性和效率,能源源不斷的完成調(diào)度者給出的任務(wù),想法過多反而不利。
在市場模型中,參與的玩家需要想辦法滿足市場的需求,擴大自己的生態(tài)位。他的競爭力來自于:
- 對市場的敏銳嗅覺,識別市場上的需求。
- 找到自己的生態(tài)位和生存空間。
- 達到市場的支配地位。
2.權(quán)力的來源
權(quán)力的流動是我們思考這兩種模型中很重要的一部分。
主從調(diào)度模型中,權(quán)力來自上級的授予,而非來自于團隊成員的支持,因此需要注意平衡這兩者的關(guān)系。例如,在某些政策執(zhí)行中,可能會為團隊成員增加額外的工作量,因此需要 dispatcher 平衡利害關(guān)系。
在反饋調(diào)節(jié)的模型中,權(quán)力來自市場中的話語權(quán),具有優(yōu)勢地位的玩家,可以獲得更多的權(quán)力,最經(jīng)典的是市場定價權(quán)。
3.上升通道
主從調(diào)度模型中,worker 可以上升為 dispatcher。它背后的邏輯往往是先成為提高自己的工作效率,協(xié)助完成一些 dispatcher 的工作,成為 dispatcher 后備力量。
在反饋調(diào)節(jié)的模型中,個體(玩家團隊中的 dispatcher 或者 worker)需要成為一個玩家,需要從把關(guān)注點放到需求和服務(wù)上,識別到市場中微小的需求,想辦法滿足它。