頭銜很重要!程序員必須要搭建自己的“工作階梯”
編者按:初創(chuàng)企業(yè)在早期一般都是人人身兼數(shù)職,倡導(dǎo)扁平化的管理,并不怎么看重頭銜。但是隨著組織的擴(kuò)大,初期的這種管理模式會(huì)引起諸多問題。身兼軟件工程師、經(jīng)理與創(chuàng)始人角色的Chuck Groom從個(gè)人經(jīng)驗(yàn)出發(fā),分析了設(shè)定工作階梯的好處,并提出了他的建議。無論是創(chuàng)業(yè)公司管理人員還是軟件工程師都可以參考一下。
軟件公司應(yīng)該審慎地考慮工程崗位職級(jí)的設(shè)置,制定好一個(gè)工作階梯,向員工解釋清楚對(duì)其的希望,不同角色之間的區(qū)別,以及職業(yè)發(fā)展的領(lǐng)域。
在本文中,我將討論為什么制定工作階梯可以幫助到每個(gè)人;好的工作階梯應(yīng)該是什么樣的;我對(duì)軟件工程師職級(jí)是如何思考的;最后我還會(huì)提供一些建議。盡管本文的受眾是管理層,但工程師看了之后也應(yīng)該能從公司的角度去思考而獲得一些洞察。
注意,本文僅討論獨(dú)立貢獻(xiàn)者(IC)的工程發(fā)展路徑。其他并行的發(fā)展路徑(管理、產(chǎn)品)包括轉(zhuǎn)崗均不在本文討論之列。這些話題都值得討論,但不在本文范疇之內(nèi)。
是的,工作“階梯”的想法有點(diǎn)奇怪
工作“階梯”這種說法暗示了所處行業(yè)的高度結(jié)構(gòu)化、非常穩(wěn)定的,有著抵達(dá)某個(gè)有意義的終點(diǎn)的長(zhǎng)期路徑,就像成為合作伙伴那樣。但是現(xiàn)代的職業(yè)流動(dòng)性更強(qiáng)發(fā)展方向更加多樣。員工往往每幾年就要變動(dòng)一下工作。
不要把職業(yè)階梯看成是長(zhǎng)遠(yuǎn)的人生規(guī)劃。這樣你會(huì)把太多關(guān)注放在階梯頂部(“我究竟應(yīng)該怎么過我的一生?”),但這是你下一步的關(guān)注重點(diǎn)。階梯就是個(gè)工具,讓你設(shè)定好對(duì)未來幾年的期望。
假設(shè)你沒有工作階梯
新公司或者團(tuán)隊(duì)往往對(duì)頭銜或者角色沒有很好的定義。實(shí)際上,這他們也許反而會(huì)引以為豪;你應(yīng)該聽說過“我們是一家扁平化的組織”,“頭銜并不重要。”盡管大家的薪水可能很不一樣,但大家普遍感覺這是英才管理的模式。
好吧,如果沒有工作階梯地球也照轉(zhuǎn)的話,為什么要自找麻煩改變這些呢?我們可以看一些例子。
-
Frank希望晉升到“資深”頭銜,但是我們感覺他還沒準(zhǔn)備好;但是他反問為什么不行→ 我們得想辦法解釋不同職級(jí)之間的差別,并且指導(dǎo)Frank應(yīng)該發(fā)展那些技能。
-
我們?cè)诿嬖囈晃缓蜻x人。大家都比較中意她,但在招聘匯報(bào)時(shí)我們對(duì)提供2級(jí)還是3級(jí)的角色意見產(chǎn)生了分歧→沒有清晰定義的招聘門檻,重要決策就變得太過主觀了。
-
我們的初創(chuàng)企業(yè)沒有正規(guī)的頭銜。我們剛剛?cè)诹薃輪,并且還一并引入了新的領(lǐng)導(dǎo)層。經(jīng)過緊張的閉門磋商之后,他們給每個(gè)人都分配了職級(jí),但是很多工程師非常惱火自己只是“初級(jí)。”→哦廢話,頭銜不重要直到它們變得重要?,F(xiàn)在一堆人惱火失望了。
-
幾年前我們以85000美元的年薪招聘了Karen。今年夏天我們又雇了Noreen——在跟Facebook搶過一輪之后,他的薪水被提高到了120000美元//年。Karen和Noreen做一樣的事情。一次喝酒之后,Karen發(fā)現(xiàn)Noreen的工資居然比他高這么多。→這是個(gè)災(zāi)難。每個(gè)人12萬美元我們可支付不起。但Karen完全有理由宣判這是犯規(guī)。
當(dāng)設(shè)定好職級(jí)時(shí)每個(gè)人都是勝利者
工作階梯對(duì)員工和公司都有幫助。
-
管理:好的經(jīng)理應(yīng)該對(duì)員工表現(xiàn)是否滿足當(dāng)前職責(zé)要求,以及需要發(fā)展哪些職業(yè)技能給予定期反饋。工作階梯提供了一個(gè)不帶偏見的框架來框定這些討論。
-
招聘:好的工作階梯應(yīng)該能夠很容易地幫助設(shè)定對(duì)應(yīng)聘人員的技能集要求。團(tuán)隊(duì)可以針對(duì)每一級(jí)建立一套標(biāo)準(zhǔn)的問題集和招聘門檻,并且對(duì)員工之間進(jìn)行同類比較。
-
HR薪酬范圍:只要招聘員工就得確定薪水問題。這就需要確定內(nèi)部層級(jí)以及將這些層級(jí)與業(yè)界市場(chǎng)費(fèi)率匹配的手段。
公司原則
工作階梯傳達(dá)的是那些技能和特質(zhì)重要。這些必須與公司的使命與價(jià)值觀一致——你希望大家把解決問題的文化聚焦到最終客戶、解決沖突以及做出艱難決定上。出現(xiàn)在公司原則和使命的語句應(yīng)該納入到工作階梯里面,也應(yīng)該用到員工反饋里面。Amazon的領(lǐng)導(dǎo)力原則就是很好的例子。
好的工作階梯應(yīng)該包括哪些要素?
制訂得當(dāng)?shù)墓ぷ麟A梯應(yīng)該做到:
-
解釋不同職級(jí)的差別并證明其合理性。每一個(gè)職級(jí)應(yīng)該是盡可能不同的角色,而不僅僅是不同的技能程度;你需要的是階梯函數(shù)而不是漸變函數(shù)。
-
告訴員工那些因素影響到晉升(以及自我改進(jìn))。工作階梯是職業(yè)發(fā)展計(jì)劃的記錄,同時(shí)也應(yīng)該能夠解釋用于員工評(píng)估的條件是什么。
-
應(yīng)該容易理解和閱讀。少即是多。這應(yīng)該是結(jié)構(gòu)清晰語句精煉的參考指南。
反模式包括:
-
角色跟我們所做的事情并不匹配。職級(jí)和價(jià)值觀的描述跟我們?nèi)粘=?jīng)歷和需求并不一致。
-
技能和表現(xiàn)列表很長(zhǎng)。員工可能會(huì)把這些當(dāng)做晉升的檢查表。這樣很容易一葉障目不見泰山,導(dǎo)致大家迷失在細(xì)節(jié)中而忘了不同層級(jí)之間的本質(zhì)區(qū)別。
-
寫得像算法一樣。一些技術(shù)公司似乎認(rèn)為自己可以建立一個(gè)客觀的、機(jī)械化的流程。對(duì)不起,但人的管理永遠(yuǎn)都是混亂且多少會(huì)有些主觀性的;你最好把工作階梯寫得人性化一點(diǎn),要有雄心勃勃的目標(biāo),聽起來模糊但卻是真實(shí)可靠的。
我針對(duì)軟件工程師制訂的工作階梯
我傾向于按照所有權(quán)和責(zé)任范圍而不是既定的技能程度制訂工作階梯。我之所以偏好這種模式是因?yàn)樗蝿?wù)分解和分配方式匹配得很好,而且不同層級(jí)之間也有著明顯的不同。
當(dāng)然,技能仍然非常重要。所有軟件工程師都必須能夠?qū)懘a并且在團(tuán)隊(duì)環(huán)節(jié)下解決客戶問題。我發(fā)現(xiàn)的一些基本特質(zhì)包括:
-
編程能力:編碼、設(shè)計(jì)、測(cè)試、系統(tǒng)維護(hù),
-
溝通:有效郵件和Slack通知,前瞻性的狀態(tài)更新,結(jié)構(gòu)化的基于事實(shí)的論斷,協(xié)作。
-
批判性思維:平衡短期需求與長(zhǎng)期目標(biāo)的矛盾;思考可能會(huì)出錯(cuò)的地方;找到需求。
-
主動(dòng)性:有活力、主人翁精神、做事有頭有尾堅(jiān)持到底。
不過話又說回來,這些能力之間其實(shí)也沒有明顯的“階梯函數(shù)”級(jí)的差異,你隨便拿出一項(xiàng)技能就能夠說“啊哈!這意味著你是2級(jí)而不是3級(jí)水平!”我的工作階梯假設(shè)的是這些特質(zhì)重要,但避免特別的指引。
唯一的例外是4級(jí)(及以上水平)工程師;這個(gè)層級(jí)及以上需要非常深厚和特殊特殊的技術(shù)和架構(gòu)性經(jīng)驗(yàn)。
1級(jí)
-
外部頭銜:[初級(jí)]軟件工程師
-
角色:開發(fā)定義好的功能,調(diào)查和修復(fù)bug,寫測(cè)試。溝通進(jìn)展情況,識(shí)別阻塞問題。找到工作生活平衡。
-
反模式:糟糕的代碼質(zhì)量。缺乏上進(jìn)心;需要有人告訴自己接下來該做什么。經(jīng)常轉(zhuǎn)到無用的事情。更愿意發(fā)牢騷而不是擼起袖子加油干。通常很無奈。無視團(tuán)隊(duì)進(jìn)展。
-
經(jīng)驗(yàn):0到3年
初級(jí)工程師可以給公司帶來很多的原始活力和潛能。他們做你交給他們的工作——往往是很多的工作。不過他們需要幫助,要有預(yù)先的項(xiàng)目計(jì)劃,要把任務(wù)分解成特定的工作細(xì)項(xiàng)。團(tuán)隊(duì)領(lǐng)導(dǎo)需要經(jīng)常檢查一下,確保他們沒有偏離方向。
我更愿意給他們的頭銜時(shí)“軟件工程師”(把“初級(jí)”去掉),因?yàn)闆]人希望被叫做“初級(jí)”。在內(nèi)部你可以叫他們1級(jí)工程師,這并沒有冒犯之意。
我發(fā)現(xiàn)1級(jí)工程師的面試是最難安排的,因?yàn)楹蜻x人的技能水平都差不多。主動(dòng)性和批判性思維是最重要的,但這些特征很難在1、2小時(shí)內(nèi)就判斷出來。2年內(nèi)沒法晉升到2級(jí)的1級(jí)工程師就讓他們走吧。
2級(jí)
-
外部頭銜:[資深]軟件工程師
-
角色:負(fù)責(zé)某個(gè)功能領(lǐng)域。把大型請(qǐng)求分解為子任務(wù),提交更高層的狀態(tài)更新。編寫測(cè)試計(jì)劃。承擔(dān)運(yùn)營(yíng)責(zé)任。制定可衡量目標(biāo),并且達(dá)成目標(biāo)。審核代碼變更。幫助導(dǎo)師招聘新人。
-
反模式:消失到對(duì)企業(yè)不重要的項(xiàng)目當(dāng)中。無法識(shí)別或者溝通大的障礙。區(qū)別你我的工作態(tài)度。不斷低估時(shí)間表。不認(rèn)真對(duì)待卓越運(yùn)營(yíng)。解決方案過于復(fù)雜。
-
經(jīng)驗(yàn):約1到8年
2級(jí)工程師可以負(fù)責(zé)某個(gè)重大的軟件很大一部分。你可以信任這些人,他們可以把松散定義的請(qǐng)求做對(duì)——分解負(fù)責(zé)任務(wù),做出合理決策,而且在定期檢查間相當(dāng)獨(dú)立地自主工作。溝通和批判性思維是必須的技能。
這些人應(yīng)該叫做“軟件工程師”還是“資深軟件工程師”呢?我持中立態(tài)度,但傾向于2、3級(jí)工程師的名片和LinkedIn上面都用“資深軟件工程師”的頭銜,而內(nèi)部就按層級(jí)稱呼他們。
盡管有的2級(jí)工程師可以當(dāng)好幾年,但最終他們應(yīng)該能證明自己可以承擔(dān)更多的責(zé)任并晉升到3級(jí),否則的話就離開組織。
3級(jí)
-
外部頭銜:資深軟件工程師
-
角色:對(duì)整個(gè)產(chǎn)品或者大型項(xiàng)目的開發(fā)和推出負(fù)責(zé)。責(zé)任流程(Scrum、TDD等)。編寫技術(shù)規(guī)范,在開始重大項(xiàng)目前識(shí)別風(fēng)險(xiǎn)。制定標(biāo)準(zhǔn)。想方設(shè)法減少復(fù)雜性。根據(jù)需要,承擔(dān)額外的“技術(shù)領(lǐng)導(dǎo)”責(zé)任來推動(dòng)主動(dòng)完成。
-
反模式:傲慢的蠢人。不授權(quán)??偸钦f“是”把自己搞的筋疲力盡。沒喲最細(xì)考慮就著急做。不注意細(xì)節(jié)。無法提高對(duì)項(xiàng)目風(fēng)險(xiǎn)或者人事問題的意識(shí)。不遵循新技術(shù)或者行業(yè)趨勢(shì)。
-
經(jīng)驗(yàn):約5+年
3級(jí)工程師對(duì)整個(gè)產(chǎn)品(比如整個(gè)應(yīng)用或者整套服務(wù))負(fù)責(zé)。除了交付可靠、可維護(hù)的軟件以外,他們還了解公司動(dòng)態(tài)和好的流程是什么樣的。
資深工程師往往還要額外戴一頂“技術(shù)領(lǐng)導(dǎo)”的帽子。這意味著他們要承擔(dān)(吃力不討好的)項(xiàng)目管理和流程監(jiān)督的工作。他們要保證列車準(zhǔn)點(diǎn)運(yùn)行。注意,技術(shù)領(lǐng)導(dǎo)并沒有直接上級(jí)也沒有老板,他們完全是靠責(zé)任感來做事。
4級(jí)(及以上)
-
外部頭銜:架構(gòu)師(或首席工程師,或發(fā)明個(gè)很酷的頭銜)
-
角色:負(fù)責(zé)跨團(tuán)隊(duì)共享的的基礎(chǔ)設(shè)施。跟CTO及其他架構(gòu)師一起選擇新的技術(shù),促進(jìn)文化/流程。在關(guān)鍵業(yè)務(wù)領(lǐng)域具備深厚的技術(shù)專業(yè)知識(shí)。進(jìn)行認(rèn)真的調(diào)研來評(píng)估和測(cè)試選項(xiàng)。理解可靠性、伸縮性、營(yíng)業(yè)成本、組織容易采用、招聘等的影響(以及權(quán)衡)。
-
反模式:過于強(qiáng)調(diào)伸縮性或高可用性而不是業(yè)務(wù)需求。花費(fèi)太多的時(shí)間追求最新的“亮點(diǎn)”技術(shù)。不協(xié)作或者提出問題。居高臨下。有“寵物”議程。厭惡資深領(lǐng)導(dǎo)。
-
經(jīng)驗(yàn):約8年以上
4級(jí)工程師是能夠評(píng)估系統(tǒng)級(jí)平臺(tái)決定設(shè)定長(zhǎng)期的公司級(jí)技術(shù)戰(zhàn)略的架構(gòu)師。他們往往有兩種角色,既是某功能團(tuán)隊(duì)的獨(dú)立貢獻(xiàn)者,也是跟CTO合作的架構(gòu)審核人員。你的架構(gòu)師應(yīng)該是謙遜的,外向的;他們是你工作上的拉拉隊(duì)。
其他工作階梯
當(dāng)然,這里設(shè)定工作階梯只是其中的一種,你可以跟其他出色的博客比較一下。這里就有一些:
-
Fog Creek (Joel on Software)
以下這些領(lǐng)域你會(huì)看到不同的觀點(diǎn):
-
獨(dú)立貢獻(xiàn)者的職級(jí)應(yīng)該有多少種?(3?6?)元老級(jí)的那些家伙應(yīng)該如何對(duì)待?
-
工作階梯應(yīng)該規(guī)定得多詳細(xì)?(這牽涉到復(fù)雜的分?jǐn)?shù)制度、電子表格矩陣、文章段落,或者只是幾條一般指導(dǎo))
-
“技術(shù)領(lǐng)導(dǎo)”的角色和責(zé)任是什么?
-
誰負(fù)責(zé)項(xiàng)目管理?
相關(guān)建議
什么時(shí)候需要建立工程工作階梯?
要我說等到你有5到10位軟件工程師并且開始考慮找人當(dāng)全職經(jīng)理時(shí),就應(yīng)該開始考慮明確工作角色和職業(yè)路徑了。
誰來編寫工作階梯?
讓一個(gè)委員會(huì)從頭開始編寫一份好的工作階梯是很難的。我建議先找一位工程經(jīng)理寫好草稿,然后交給工程管理團(tuán)隊(duì)進(jìn)行討論和研討。另一個(gè)辦法是讓所有的過程經(jīng)理各寫一份草稿,然后碰頭比較一下,再由委員會(huì)合并。
頭銜很重要
即便有人真誠地告訴你“頭銜不重要,”其真正含義也只是說“目前這個(gè)時(shí)候頭銜不重要。”隨著公司的發(fā)展,職級(jí)設(shè)定是不可避免的;頭銜可以用來作為職級(jí)的代表,要求要有相應(yīng)的薪水和職業(yè)選項(xiàng)。當(dāng)你換工作時(shí),招聘和工資薪酬也要以你的上一份工作作為參考。
永遠(yuǎn)都要確保寫清楚你的頭銜和角色。
工資跟職級(jí)綁定,用股權(quán)激勵(lì)表現(xiàn)
要當(dāng)成你要把它貼辦公室門口一樣管理工資
— M. W. Mantle,《知人善用,Managing the Unmanageable》
雇主應(yīng)該基于行業(yè)可比數(shù)據(jù)針對(duì)每一個(gè)職級(jí)都建立一個(gè)薪水范圍?;诨竟べY水平,或者用大幅加薪來獎(jiǎng)勵(lì)一流表現(xiàn)者的確會(huì)限制他們招聘到明星求職者的能力,但這是保證預(yù)算在控制范圍并避免不公平的唯一可靠辦法。
予以一次性股權(quán)授予并設(shè)定未來的最短生效期是比較好的做法,比方說授予2年期權(quán)每年行權(quán)就是獎(jiǎng)勵(lì)特別出色員工的一種手段。這向關(guān)鍵員工表明即便你不能給予大幅加薪,但你仍然非常重視他們的貢獻(xiàn)并且希望他們留下來繼續(xù)一起奮斗。
提拔看能力而不是資歷
提拔一般不是獎(jiǎng)勵(lì)其過去的表現(xiàn)。相反,管理層提拔的是那些展現(xiàn)出解決下一級(jí)的更大更棘手問題潛能的人。
— Ray Weiss,《技術(shù)生涯導(dǎo)航員( The Technical Career Navigator)》
提拔那些已經(jīng)勝任下一級(jí)別職能的人。如果一位2級(jí)工程師想要獲得晉升,他們應(yīng)該展現(xiàn)出可以做3級(jí)工作的能力。作為經(jīng)理你的工作是提供項(xiàng)目給他們,讓他們獲得初步經(jīng)驗(yàn)(并且在他們不大勝任的情況下保證項(xiàng)目的軟著陸)。
不要讓大家以為晉升只是時(shí)間的函數(shù),或者對(duì)能力不夠的人打開晉升大門。
不必要求計(jì)算機(jī)科學(xué)學(xué)位
就1-3級(jí)工程師而言,我并沒有發(fā)現(xiàn)正規(guī)教育是成功的可靠預(yù)測(cè)指標(biāo)。我就見過好幾個(gè)表現(xiàn)出色的人是自學(xué)成才的,或者是參加了6個(gè)月的職業(yè)編碼學(xué)習(xí)后過來的。我不再要求應(yīng)聘者具備CS本科學(xué)位,而且面試的時(shí)候也不再問一些偏重算法的問題了。
4級(jí)(首席)工程師角色是例外;這個(gè)角色在算法、系統(tǒng)、架構(gòu)等等方面需要有可靠的學(xué)術(shù)基礎(chǔ)。
第三方適用工作階梯嗎?
不;他們是受雇方。你對(duì)他們的評(píng)估不在于他們的能力水平,而在于他們是否完成了特定項(xiàng)目。
實(shí)習(xí)生適用嗎?
再次強(qiáng)調(diào),實(shí)習(xí)生不在工作階梯范疇,因?yàn)槟銢]有當(dāng)全職來雇傭他們。對(duì)于實(shí)習(xí)生我的原則是這樣的:
-
你開展實(shí)習(xí)生計(jì)劃的原因是想從中物色好的苗子次年招聘為1級(jí)工程師。(當(dāng)然也有其他一些好處,但這是主要原因)
-
因此,僅招聘那些準(zhǔn)備畢業(yè)并且次年要就業(yè)的那些實(shí)習(xí)生。避免大二學(xué)生和畢業(yè)生,因?yàn)檫@些人未必會(huì)留下來。
-
招聘實(shí)習(xí)生的條件是:這個(gè)人明年能否達(dá)到我們初級(jí)工程師的招聘門檻?避免招那些態(tài)度冷淡的人;好的學(xué)生表現(xiàn)的確非常突出。我通常會(huì)挑選那些已經(jīng)寫過不少代碼而且討論起來總是很興奮的人,比方說在Github上有業(yè)余項(xiàng)目的那些。
最后思考
員工希望了解自己在組織里面的位置。有一個(gè)職業(yè)的里程碑,把期望和目標(biāo)都寫得清清楚楚會(huì)讓每個(gè)人的工作都變得更加容易。
編寫工作階梯的時(shí)候,關(guān)鍵要:
-
職級(jí)跟公司的組織方式匹配(角色、匯報(bào)結(jié)構(gòu))。
-
招聘和晉升的條件跟公司價(jià)值觀一致。
-
保證公平。
制定了工作階梯后你也可以在今后調(diào)整角色和評(píng)估標(biāo)準(zhǔn);但是一定不能違反公平性原則。每個(gè)人都必須堅(jiān)持一致的標(biāo)準(zhǔn),否則你的士氣和生產(chǎn)力就要崩潰。一份好的工作階梯能夠創(chuàng)造出公平的職場(chǎng)競(jìng)爭(zhēng)環(huán)境,為比賽設(shè)定好規(guī)則。