文章首發(fā)公眾號:慧響(withounder)
從去年夏末至今葛圃,我一直在閱讀《架構(gòu)即未來:現(xiàn)代企業(yè)可擴(kuò)展的Web架構(gòu)、流程和組織(原書第二版)》這本書巫湘。全書闡述了經(jīng)過驗(yàn)證的信息技術(shù)擴(kuò)展方法装悲,對需要掌握的產(chǎn)品和服務(wù)的平滑擴(kuò)展做了詳盡的論述。具有一定的參考價(jià)值尚氛。從今天起诀诊,我將逐步總結(jié)之前所看內(nèi)容,以饗讀者阅嘶,也以便自己回顧箩做。文章既有摘轉(zhuǎn)錄,又有自我理解批注炭懊。
本文是該書的第一部分的中間部分以蕴,是書中的第三章卿拴,主要介紹了組織中人員的可擴(kuò)展性配置的理論與實(shí)踐經(jīng)驗(yàn)中的組織設(shè)置。
組織的設(shè)置
組織對可擴(kuò)展性的影響
溝通和協(xié)調(diào),對任何需要多人努力才能完成的任務(wù)來說都是必要的。當(dāng)出現(xiàn)不必要的結(jié)構(gòu)層次且需要大量交流才能完成工作的時(shí)候惋耙,效率就會降低。
在敏捷開發(fā)的過程中熊昌,如果研發(fā)工程師需要澄清產(chǎn)品的功能點(diǎn)绽榛,那么他有兩種選擇,一是猜測該怎么做婿屹,二是等產(chǎn)品經(jīng)理回答灭美。但大量的等待時(shí)間可能會造成團(tuán)隊(duì)無法完成承諾的任務(wù),把一些不必要的事情帶入到未來的迭代中去昂利,所以會延遲或者降低潛在的投資回報(bào)届腐。而安排產(chǎn)品負(fù)責(zé)人和工程師做在一起也是一把雙刃劍,它也可能降低效率蜂奸。首先犁苏,完成項(xiàng)目成本提高。其次窝撵,當(dāng)資源緊張的時(shí)候傀顾,資源向面向客戶的短期項(xiàng)目傾斜襟铭,結(jié)果犧牲了長期的穩(wěn)定性項(xiàng)目碌奉。
我們可以通過標(biāo)準(zhǔn)化來提高組織效率。如果不采用共同的標(biāo)準(zhǔn)寒砖,那么團(tuán)隊(duì)很容易在什么是最佳實(shí)踐的問題上出現(xiàn)嚴(yán)重分歧赐劣。例如忽略按照標(biāo)準(zhǔn)注釋代碼,是以犧牲代碼未來的可維護(hù)性為代價(jià)的哩都。為了避免這些問題魁兼,大的機(jī)構(gòu)會幫助工程師理解發(fā)布指南、原則和共同規(guī)范的價(jià)值漠嵌。支持偏移原則行為的最常見借口是咐汞,這個(gè)服務(wù)對系統(tǒng)無關(guān)緊要。如果真的是這樣儒鹿,那么為什么要浪費(fèi)時(shí)間來研發(fā)它化撕?如此說來,團(tuán)隊(duì)沒能有效地使用研發(fā)資源约炎。因此植阴,一個(gè)團(tuán)隊(duì)如果不能養(yǎng)成遵守規(guī)范和標(biāo)準(zhǔn)的習(xí)慣蟹瘾,本質(zhì)上是組織容忍了研發(fā)質(zhì)量標(biāo)準(zhǔn)的降低。
內(nèi)部代碼長角(Longhorn)掠手,對外稱為Vista的微軟操作系統(tǒng)就是在一個(gè)機(jī)構(gòu)中典型的標(biāo)準(zhǔn)和質(zhì)量失控的例子憾朴。
歸屬權(quán)也會影響系統(tǒng)的可擴(kuò)展性和可用性。當(dāng)很多人在同一套代碼上做研發(fā)的時(shí)候喷鸽,如果代碼各部分歸屬權(quán)不清楚众雷,那么就沒有人會感覺到自己對此有責(zé)任。
這樣做祝,從擴(kuò)展性的角度來觀察报腔,我們所關(guān)心的組織已經(jīng)有了一個(gè)清晰的基礎(chǔ)。把組織結(jié)構(gòu)和擴(kuò)展性關(guān)聯(lián)起來剖淀,圍繞著他們建立一個(gè)支持性的組織結(jié)構(gòu)是非常重要的纯蛾。這也是決定一個(gè)組織的兩個(gè)關(guān)鍵因素:團(tuán)隊(duì)的規(guī)模和結(jié)構(gòu)。
團(tuán)隊(duì)規(guī)模
在確定最佳團(tuán)隊(duì)規(guī)模的時(shí)候纵隔,必須要考慮四大因素翻诉,包括管理的經(jīng)驗(yàn)、在職的時(shí)間捌刮、管理的任務(wù)以及業(yè)務(wù)的需要碰煌。
團(tuán)隊(duì)的大小各有利弊。關(guān)鍵是平衡團(tuán)隊(duì)的規(guī)模為組織尋找最優(yōu)的方案绅作。而尋找最優(yōu)方案的重點(diǎn)在于為組織尋找最佳的團(tuán)隊(duì)規(guī)模芦圾,并不存在一個(gè)適合所有團(tuán)隊(duì)的魔術(shù)般的數(shù)字。
團(tuán)隊(duì)規(guī)模的下限是6人俄认,上限是15人个少。亞馬遜把上限叫做“兩張披薩餅準(zhǔn)則”,即任何一個(gè)團(tuán)隊(duì)的規(guī)模不能大過兩張披薩餅所能喂飽的人數(shù)眯杏。
當(dāng)確定的團(tuán)隊(duì)規(guī)模的時(shí)候夜焦,首先要考慮的因素是經(jīng)理的經(jīng)驗(yàn)。人的經(jīng)驗(yàn)是確定最優(yōu)團(tuán)隊(duì)規(guī)模的一個(gè)關(guān)鍵因素岂贩。
第二個(gè)要考慮的因素是團(tuán)隊(duì)的任職時(shí)間茫经。個(gè)體之間存在差別,必須考慮團(tuán)隊(duì)整體的經(jīng)驗(yàn)程度萎津。如果一個(gè)團(tuán)隊(duì)高卸伞、中、低搭配平衡锉屈,那么中等規(guī)模的團(tuán)隊(duì)也可以有效地運(yùn)轉(zhuǎn)荤傲。當(dāng)確定團(tuán)隊(duì)的規(guī)模時(shí),應(yīng)當(dāng)考慮所有這些問題部念,厘清團(tuán)隊(duì)規(guī)模要多大才能保持高效率弃酌,不至于因?yàn)橐?guī)模太大氨菇,負(fù)擔(dān)過多而影響生產(chǎn)率。
每個(gè)公司對經(jīng)理應(yīng)該負(fù)責(zé)的任務(wù)有不同的期望妓湘〔槿兀基層經(jīng)理的管理職責(zé)包括:
- 確保工程師們在有價(jià)值的項(xiàng)目上產(chǎn)出高
- 確保完成行政管理工作
- 確保掌握項(xiàng)目和問題的進(jìn)展?fàn)顟B(tài)
這里要知道,經(jīng)理處理的任務(wù)越多榜贴,團(tuán)隊(duì)就要越小豌研,以確保經(jīng)理可以完成所有安排的任務(wù)。當(dāng)確定組織的最佳團(tuán)隊(duì)規(guī)模時(shí)唬党,任務(wù)的數(shù)量和完成這些任務(wù)所需要的工作量是兩個(gè)主要因素鹃共。而一個(gè)經(jīng)理每周的時(shí)間很容易被那些看起來十分快的任務(wù)所填滿,例如一對一會談驶拱。
最后一個(gè)因素是業(yè)務(wù)的需要霜浴,其目的是加大團(tuán)隊(duì)的規(guī)模。保持團(tuán)隊(duì)規(guī)模小的一個(gè)主要問題是大的項(xiàng)目需要非常多的研發(fā)迭代時(shí)間蓝纲。第二個(gè)問題是增加工程師的數(shù)量需要相應(yīng)地增加支持人員的數(shù)量阴孟,同時(shí)增加管理人員。
團(tuán)隊(duì)規(guī)模不正確的時(shí)候出現(xiàn)的信號有溝通不暢税迷、生產(chǎn)率低下永丝、士氣低落都是團(tuán)隊(duì)規(guī)模太大的信號。溝通不暢可能有多種形式箭养,包括工程師們?nèi)毕瘯h慕嚷、不回郵件、錯(cuò)過規(guī)范變更或者多個(gè)人問同樣的問題毕泌。生產(chǎn)率底下可能是團(tuán)隊(duì)規(guī)模太大的另外一個(gè)信號喝检。如果沒有人知道、引領(lǐng)懈词、答疑蛇耀,初級工程師要比正常情況下折騰的很久。相反坎弯,高級工程師們忙于回答太多初級工程師的問題,以至于無法完成自己的工作译暂,也會造成生產(chǎn)效率的降低抠忘。
功能點(diǎn)和場景點(diǎn)是度量功能的兩個(gè)不同的標(biāo)準(zhǔn)化方法。功能點(diǎn)從用戶角度出發(fā)外永,而場景點(diǎn)從工程師角度出發(fā)崎脉。
士氣低落這種不滿的情緒清楚的說明問題,盡管士氣低落可能有很多原因伯顶,但是團(tuán)隊(duì)規(guī)模因素不應(yīng)被忽略囚灼。如果團(tuán)隊(duì)規(guī)模太小骆膝,要注意的信號包括不滿意的業(yè)務(wù)合作伙伴、微觀管理的經(jīng)歷灶体、過度勞累的團(tuán)隊(duì)成員阅签。太小的團(tuán)隊(duì)無法快速研發(fā)和交付規(guī)模較大的功能。心懷不滿的業(yè)務(wù)負(fù)責(zé)人并不直接抱怨工程師和技術(shù)負(fù)責(zé)人蝎抽,而是把力氣花在增加預(yù)算聘請更多工程師上政钟。
正常情況下,有效率的經(jīng)歷如果趨向于微觀管理將是一個(gè)令人擔(dān)憂的跡象樟结。這時(shí)养交,通過擴(kuò)大經(jīng)理的聚焦點(diǎn)來解除他對團(tuán)隊(duì)的持續(xù)關(guān)注。在這種情況下可以安排的特別任務(wù)包括擔(dān)任某個(gè)標(biāo)準(zhǔn)委員會的主席瓢宦,負(fù)責(zé)一個(gè)跟蹤bug的新工具評估活動碎连,建立一個(gè)旨在指導(dǎo)工程師的導(dǎo)師計(jì)劃等。
確定一個(gè)團(tuán)隊(duì)是否太小的第三個(gè)跡象是驮履,看是否有工作過度的員工破花。這種工作過度的情況對大多數(shù)的初創(chuàng)公司而言是可以預(yù)見的,甚至是必要的疲吸,但是如果持續(xù)幾個(gè)月座每,最終會消耗團(tuán)隊(duì)的干勁,從而導(dǎo)致員工流失摘悴、士氣低落峭梳、質(zhì)量不佳。最好能留意并分析工作時(shí)間的記錄蹂喻,盡早糾正問題葱椭,而不是等到大多數(shù)工程師遞交辭呈時(shí)才意識到這個(gè)問題。
給小團(tuán)隊(duì)增加工程師口四,不說輕而易舉但也直截了當(dāng)孵运。比較困難的是拆分一個(gè)增長很大的團(tuán)隊(duì)。當(dāng)要拆分一個(gè)團(tuán)隊(duì)(包括在分解代碼)的時(shí)候蔓彩,必須要考慮一些事情治笨。首先要根據(jù)代碼和工作來聚焦。最佳方案是根據(jù)故障域來拆分團(tuán)隊(duì)和代碼赤嚼,通過隔離服務(wù)來限制故障所帶來的影響旷赖。下一個(gè)要考慮的問題是新經(jīng)理的身份。這是一個(gè)外聘或內(nèi)選的機(jī)會更卒。外聘的可以帶來新思路和經(jīng)驗(yàn)等孵,內(nèi)選的熟悉人員和流程。最后一個(gè)要素是對業(yè)務(wù)部門會有什么影響蹂空。如果在工程團(tuán)隊(duì)俯萌、質(zhì)量保證果录、產(chǎn)品管理和業(yè)務(wù)團(tuán)隊(duì)之間有一對一的關(guān)系,那么很明顯咐熙,當(dāng)團(tuán)隊(duì)拆分后這些關(guān)系就會發(fā)生變化弱恒。應(yīng)該在拆分決策前,與受到影響的負(fù)責(zé)人討論清楚這些變化糖声。
最后斤彼,我們認(rèn)識到,團(tuán)隊(duì)規(guī)模是確定組織對應(yīng)用擴(kuò)展有效性影響的主要決定因素蘸泻。
組織結(jié)構(gòu)
組織結(jié)構(gòu)指的是一個(gè)組織內(nèi)部團(tuán)隊(duì)之間相互關(guān)系的布局琉苇。功能型和矩陣型兩種基本結(jié)構(gòu)已經(jīng)使用多年,一種新型的敏捷型結(jié)構(gòu)最近也開始流行悦施。最常見的情況是并扇,設(shè)計(jì)一種混合的結(jié)構(gòu)來最好地滿足公司的需要。
職能型組織
軍隊(duì)和工業(yè)界曾經(jīng)使用過職能型結(jié)構(gòu)的組織形式抡诞。職能或豎井式方法的組織結(jié)構(gòu)有很多好處穷蛹。所有的經(jīng)理幾乎都是按照層級提升的,即使他們的業(yè)績表現(xiàn)并不搶眼昼汗,他至少清楚如何按部就班地工作肴熏。除了在管理和工作伙伴方面的同質(zhì)性和共同性外,職能型結(jié)構(gòu)的優(yōu)點(diǎn)還包括職責(zé)明確顷窒、容易分配任務(wù)蛙吏、更好的遵循標(biāo)準(zhǔn)規(guī)范。用運(yùn)動來作類比鞋吉,職能型的組織結(jié)構(gòu)就像在高爾夫球場練球鸦做,高爾夫球手們想要練好和打好高爾夫球,就要和其他高爾夫球手谓着,甚至教練混在一起泼诱,切磋技藝。
職能型或豎井式結(jié)構(gòu)的問題包括缺乏單一的項(xiàng)目負(fù)責(zé)人和跨職能部門的溝通效果不佳赊锚。這主要是項(xiàng)目的整體責(zé)任不會全部落在管理層級中某個(gè)人的頭上治筒,而是逐級上升,直到最后落在技術(shù)總負(fù)責(zé)人的頭上改抡。另外矢炼,在職能型組織中跨部門的溝通出奇的難。另外的一個(gè)挑戰(zhàn)就是團(tuán)隊(duì)之間的沖突阿纤。
關(guān)于沖突
好的沖突(認(rèn)知型沖突)是健康的爭辯,是團(tuán)隊(duì)關(guān)于該做什么或者為什么要做而發(fā)生的沖突夷陋,它涉及更大的視角和更多的經(jīng)驗(yàn)欠拾。壞的沖突(情感型沖突)基于角色胰锌,經(jīng)常涉及怎么做或者誰該做。
好的或者認(rèn)知型沖突有助于團(tuán)隊(duì)擴(kuò)大行動的可能范圍藐窄。不同的見解和經(jīng)驗(yàn)湊到一起有機(jī)會從更多角度出發(fā)解決問題资昧。
通過營造開放、關(guān)愛荆忍、尊重的文化氛圍格带,把認(rèn)知型沖突最大化,情感型沖突最小化刹枉。通過設(shè)置明確的角色和責(zé)任叽唱,限制情感型沖突的根源。通過吸納各類人才在技能和視野上互補(bǔ)微宝,最小化集體思維的機(jī)會棺亭,最大化策略的選擇范圍,鼓勵機(jī)構(gòu)快速成長蟋软。
當(dāng)同質(zhì)性的好處超過整體協(xié)調(diào)和所有權(quán)所帶來的問題的時(shí)候镶摘,可以考慮采用職能型組織結(jié)構(gòu)。比如岳守,采用瀑布式研發(fā)的組織凄敢,經(jīng)常能從按職能劃分的組織結(jié)構(gòu)中獲益,因?yàn)樵摻Y(jié)構(gòu)恰好與瀑布型方法中固有的階段控制相匹配湿痢。
矩陣型組織
矩陣型組織結(jié)構(gòu)的主要概念是層級的兩個(gè)維度涝缝,且包括至少兩個(gè)管理維度,每個(gè)團(tuán)隊(duì)的成員或許有兩個(gè)或多個(gè)管理上級蒙袍,其區(qū)別主要在項(xiàng)目管理俊卤。
與職能型組織高爾夫球運(yùn)動比喻相對照,矩陣型類似高爾夫球員應(yīng)該時(shí)常離開高爾夫球場去練習(xí)其他的肌肉害幅,比如參加舉重培訓(xùn)或者跑步消恍。這種交叉培訓(xùn)的方法和矩陣型組織類似,在不替代高爾夫或工程的基本訓(xùn)練的前提下以现,通過給予其他的任務(wù)比如跑步或項(xiàng)目管理來加強(qiáng)狠怨。
矩陣型組織在緩和項(xiàng)目責(zé)任和溝通問題的時(shí)候也引入了其他問題,主要涉及多個(gè)管理上級和個(gè)人精力分散的問題邑遏。向兩個(gè)或多個(gè)人匯報(bào)佣赖,矩陣型組織可以非常復(fù)雜,需要一個(gè)人參與多個(gè)團(tuán)隊(duì)记盒,收到每個(gè)老板各自的指令憎蛤,所以團(tuán)隊(duì)的成員會感覺到更大的壓力。
敏捷型組織
SaaS的獨(dú)特要求,敏捷開發(fā)方法的出現(xiàn)俩檬,還有職能型和矩陣型組織弊端的存在萎胰,使被稱為敏捷型的新組織結(jié)構(gòu)應(yīng)運(yùn)而生。雖然SaaS的定義仍存在著爭議棚辽,但是大多數(shù)人都同意它包括了一個(gè)預(yù)約定價(jià)模式技竟,客戶根據(jù)用量付費(fèi),而不是一個(gè)協(xié)商好的許可費(fèi)用屈藐。這些應(yīng)用的架構(gòu)通常是支持多客戶的榔组,這就意味著幾個(gè)客戶共享同一個(gè)軟件的實(shí)例。隨著從提供軟件向提供服務(wù)方向發(fā)展联逻,技術(shù)人員開始思考如何做個(gè)好的服務(wù)者而不是軟件開發(fā)者搓扯。
形成敏捷組織概念的最后一個(gè)環(huán)節(jié),是認(rèn)識到技術(shù)團(tuán)隊(duì)的組織結(jié)構(gòu)對軟件的質(zhì)量遣妥、擴(kuò)展性和可靠性都有非常重要的影響擅编。然而,并不是每個(gè)技術(shù)問題都應(yīng)該通過技術(shù)手段來解決箫踩。當(dāng)反復(fù)驗(yàn)證時(shí)會發(fā)現(xiàn)爱态,這一問題始終會回到組織結(jié)構(gòu)上,例如團(tuán)隊(duì)之間的沖突境钟,一個(gè)人匯報(bào)給多個(gè)管理經(jīng)理锦担,而這些經(jīng)歷并不能理解每個(gè)人的任務(wù)優(yōu)先級。事實(shí)上是人開發(fā)了技術(shù)慨削,因此洞渔,人對過程至關(guān)重要。
為了簡化缚态,我們把跨職能同時(shí)符合服務(wù)架構(gòu)的制作磁椒,標(biāo)示為敏捷型組織。在這種敏捷型組織中玫芦,團(tuán)隊(duì)完全是自助管理和自給自足的浆熔。跨職能部門的總監(jiān)桥帆、副總裁以及敏捷型團(tuán)隊(duì)替代了工程副總裁這樣的常規(guī)管理角色医增。
感悟與總結(jié)
可以這么說,沒有一種固定的模板式的組織設(shè)置是可以套用的老虫,每個(gè)公司和組織都有自己的目標(biāo)與使命叶骨,對于組織的設(shè)置這個(gè)話題,既基礎(chǔ)祈匙,又因情況而異忽刽,而正因如此,也導(dǎo)致了很多公司和組織盲目跟風(fēng)學(xué)習(xí)導(dǎo)致組織架構(gòu)一變再變,原本應(yīng)該提高效率的變化適得其反缔恳。因此宝剖,在事情的一開始洁闰,我們就應(yīng)該想好接下來的組織變化歉甚,符不符合我們現(xiàn)在的目的和價(jià)值觀,是否能激活最廣大人的生產(chǎn)效率扑眉。