現(xiàn)代軟件工程 10 績效管理
我們前文講了怎樣衡量軟件工程師的能力, 工程師如何成長, 如何證明自己的成長, 等等. 這些都是在一個獨(dú)立的, 不受外界干擾的空間中做出來的判斷。 我們假設(shè)一個有能力的工程師, 到了另一個團(tuán)隊(duì), 仍然是一個有能力的工程師。
如何衡量個人在團(tuán)隊(duì)中的績效?
如果一個工程師能夠成長,他/她就應(yīng)該在團(tuán)隊(duì)中發(fā)揮較大的作用。但是一個團(tuán)隊(duì)中的每一個人都有各自的努力和作用, 如何衡量個人在團(tuán)隊(duì)中的績效呢? 我們看看別的行業(yè)的例子:
? 一群人把一堆磚頭從A地搬到B地。
? 一個劇組排演話劇 (有導(dǎo)演, 有主角, 有配角, 有舞美設(shè)計(jì), 有燈光師, 角色能隨意替換么?)
? 一群畫家集體創(chuàng)作 “百里長江圖” (你畫一個局部, 我畫一個局部, 如何構(gòu)成一部好作品?)
? 一群醫(yī)生/護(hù)士輪流值夜班 (有人值班一個晚上搶救了幾個病人, 失敗了幾次;也有人值班時沒人來求醫(yī), 誰好?)
? 一群老師教課 (有人講得難, 有人講得容易, 有人要求高,有人放水,有不同的課程, 誰最有效率?)
? 一群編輯在出版社里出書 (有人碰到好題目, 有人碰到不靠譜的作者, 有人的書叫好,有人的書叫座, 有人的書冷門但是有熱情, 誰是好編輯?)
? 一群學(xué)生做軟件工程項(xiàng)目
這篇博客講的是從管理者的角度出發(fā)如何管理一群人的績效。 一群人在一起做事, 事成之后, 就有排座次, 論功勞的問題 - 在有些團(tuán)隊(duì)里, 事成之前就為功勞的事吵翻了
軟件團(tuán)隊(duì)如何做人員的績效管理? 這個問題較難回答, 因?yàn)樗腥说墓ぷ鞅患稍谝粋€軟件產(chǎn)品中, 互相依賴, 產(chǎn)品功能被用戶贊揚(yáng)或批評, 都不能簡單地完全對應(yīng)于某一個人的工作。 有些功能看起來好, 有人會說 - 因?yàn)檫@個很容易… 有些功能用戶不喜歡, 當(dāng)事人會說 -
“換別人來做, 可能還不如我呢.” 或者,
“這是底層的問題”, 或者
“PM 根本就沒設(shè)計(jì)好” 或者
“測試人員沒有好好測!” 當(dāng)然, 還有 –
“用戶太蠢了"。。。
在軟件工程這門課中, 幾個學(xué)生組成一個小組, 干活多的人和干活少的人都得到一樣的 “團(tuán)隊(duì)成績”, 這似乎不利于調(diào)動積極性。 為了解決這個問題, 我給每個團(tuán)隊(duì)一些浮動的分?jǐn)?shù) - 相當(dāng)于基本工資之外的獎金, 大家決定怎么分這個“團(tuán)隊(duì)貢獻(xiàn)”的獎金。同時,我們要意識到每個人的生活中有很多其他要做的事情,并不能花 100% 的時間在這個項(xiàng)目上,各人的能力,投入,都會有區(qū)別。一個好的團(tuán)隊(duì),能讓每個人事先坦誠地說明自己在這個項(xiàng)目中的投入是多少,最后期望的貢獻(xiàn)分是多少,這樣 團(tuán)隊(duì)和個人之間能有一個默契,有利于做好項(xiàng)目。
有人會說, 根據(jù)工作量來算就好了!這會出問題 - 以前我寫過:
今天一個做技術(shù)推廣的朋友說他的老板非常重視“量的管理”,“質(zhì)” 則次之。
這使我想起偶爾看到一本書中的一段回憶文字,雖然不是 IT 行業(yè),但是有異曲同工之妙:
“。。。他是多年在聯(lián)合國工作的資深外交人員,對議事規(guī)則相當(dāng)熟悉,不斷要求上臺發(fā)言。... 他在代表團(tuán)內(nèi)始終是副代表代理常任代表,而他的待遇則依照在聯(lián)合國內(nèi)發(fā)言時間的多寡做決定。 …他每天游走于聯(lián)合國大廈各會議室間,進(jìn)門后即登記發(fā)言,隨即靜聽先登記各代表發(fā)言內(nèi)容,他不需準(zhǔn)備,輪到他時即席演說,最少三十分鐘,隨即到次一會議室照樣發(fā)言,…第二天將有關(guān)速記紀(jì)錄中他的發(fā)言輯錄起來,月底向祖國報(bào)銷,根據(jù)發(fā)言數(shù)量由政府核發(fā)薪資。
十月二十五日下午,大會中他將這項(xiàng)技術(shù)發(fā)揮盡致,多次依照議事規(guī)則相關(guān)條文要求發(fā)言,每次發(fā)言必長,引起與會代表極度反感。”
另外在軟件行業(yè), 如何衡量工作量這本身就是一個大問題.
- 根據(jù)每人代碼量, 每天統(tǒng)計(jì)進(jìn)度? 有大牛報(bào)告 - 今天我重構(gòu)了原來的代碼, 刪掉了原來的2000 行多余的程序, 那我今天的貢獻(xiàn)是 負(fù)的兩千?!
- 注釋, 空行算么? 如果算的話, 移山公司的果凍同學(xué)就高興了, 他每天快樂地寫注釋, 邊寫邊說 - 今年旅游的機(jī)票錢有了!
- 根據(jù)目標(biāo)碼大小? 那我們不能用庫函數(shù)了?
- …
有人建議按照角色來定位, 例如有豬, 雞和鸚鵡等, 問題是大多數(shù)鸚鵡都說自己是雞, 剩下的覺得自己是豬, 而且分量很重!
有人建議根據(jù)工作時間來衡量, 這規(guī)定一宣布, 大家都開始比誰走得晚, 另外, 我周末的時候一直在想工作上的事, 這算工作時間么?
在統(tǒng)計(jì)技術(shù)支持人員的績效時, 有些公司主要考慮他們接到用戶電話后處理問題的時間長短。這時有聰明的員工往往拿起電話后, 說: "你好!” 然后馬上掛斷電話。 顧客們雖然摸不著頭腦, 但是技術(shù)人員的 "與顧客通話時間" 則大大降低。 這樣的 “好” 績效, 最后對公司有利么?
看來似乎所有的衡量方法都有致命的空子可以鉆。 在 <人件> 這本書中, “衡量勞動生產(chǎn)率” 和 “UFO” 是放在同一個小標(biāo)題下的. 然而, “任何一種衡量方法都比完全不量要好” - 書中說。
這次《現(xiàn)代軟件工程》上課的幾個團(tuán)隊(duì)都有自己的點(diǎn)子:
第一組(seven): 我們可以按照以上的9級來分,但是對于我們而言,大家在很大程度上都是同一級的勞動者....所以我們可以更加細(xì)分同一級的排名,比如將整個任務(wù)分為等量的小任務(wù),每個人負(fù)責(zé)其中的一個,而最終大家的排名可以通過完成這樣任務(wù)的個數(shù)來決定。關(guān)于如何評價(jià)是否完成“任務(wù)”,可以通過功能性、是否準(zhǔn)時來評價(jià);而且當(dāng)整個工程完結(jié)的時候,我們可以做一個review,包括功能、性能和代碼的評價(jià),然后大家之間討論互評。
第二組(霸王):
對于浮動分?jǐn)?shù),可以通過每個職位對于團(tuán)隊(duì)的貢獻(xiàn)來添加。隊(duì)友之間根據(jù)各自的貢獻(xiàn)給出排序,最后匯總得分。
一群學(xué)生做軟工項(xiàng)目 (PM, Dev, Test), PM:0.3(n*30)分, DEV: 0.5(n*30)分 test:0.2(n*30)分
在團(tuán)隊(duì)合作中每個成員的貢獻(xiàn)度不僅僅取決于他的工作量,而且還取決于這份工作對團(tuán)隊(duì)的意義有多大。我認(rèn)為貢獻(xiàn)度的計(jì)算應(yīng)遵循如下公式:
貢獻(xiàn)度 = 工作量 × 工作的影響力 × 工作的不可替代性
這個等式給我們的評測提供了一個方向。與直接估計(jì)貢獻(xiàn)度相比,分別估計(jì)三個分量顯得更可操作,準(zhǔn)確性也更高。
//如果大家都想做 “不可替代的工作”, 怎么辦?
關(guān)于管理體系,可以天花亂墜的說很多,但實(shí)際和理論會差的很遠(yuǎn),我們并不能完全按照一個專業(yè)團(tuán)隊(duì)去執(zhí)行。
大四是一個美好休閑的時光,很難要求大家訓(xùn)練有素地執(zhí)行進(jìn)度,我們只能盡可能友情提示大家一起干一些事,但我覺得做完整個工程應(yīng)該沒有問題。
我個人覺得第五組的同學(xué)最適合去壟斷性國企。 ![]()
當(dāng)然, 在這片神奇的土地上, 還有這樣的事情: (從 http://weibo.com/trawor截屏而來)
我以前聽說過第一個網(wǎng)站, 但是沒用過。 我想象有兩個團(tuán)隊(duì):
第一個團(tuán)隊(duì)說: 我們花了幾個月的時間, 幾易其稿, 搜集大量用戶反饋, 做成這樣。。。
第二個團(tuán)隊(duì)說: 我們一個星期就搞定了, 主要用了 IE “view source” 這一功能。
如何衡量兩個團(tuán)隊(duì)成員的勞動生產(chǎn)率呢? 或者這已經(jīng)超越了勞動生產(chǎn)率的范疇, 到了知識產(chǎn)權(quán), 職業(yè)道德的領(lǐng)域?
一幫學(xué)生臨時組成一個團(tuán)隊(duì), 用什么方法評比并沒有重大的影響, 大不了在期末成績上少一兩分。 但是軟件公司的團(tuán)隊(duì)就不同了, 不合理的績效考核不但影響各人的收入, 而且會影響人員的士氣, 流動, 后續(xù)的合作和產(chǎn)品質(zhì)量,不能不慎重。
比資歷?
軟件行業(yè)的競爭有”贏者通吃”的規(guī)律, 一個快要被市場淘汰的產(chǎn)品不能說: 我們是最先進(jìn)入這一市場的, 我理應(yīng)繼續(xù)占有足夠份額! 軟件團(tuán)隊(duì)人員也不能說, 我來的早, 所以我的報(bào)酬就應(yīng)該多!
大鍋飯? 所有人都評 “優(yōu)”, 大家平分錢, 好么? 優(yōu)秀的人會離開, 最后會剩下平庸的人在過平均主義 - 也許整個團(tuán)隊(duì)都被淘汰了。 同一團(tuán)隊(duì)的成員報(bào)酬能差別多大? 我們看看職業(yè)籃球的一個例子:
1997-98 賽季, 邁克爾·喬丹掙了八千萬美元。 和他同一個隊(duì)的隊(duì)友 Joe Kleine 當(dāng)年掙了27萬美元。 兩者相差將近300倍! 如果兩人掙錢平均分, 誰會離開? 球隊(duì)因此變強(qiáng)還是變?nèi)?
比效率?
我們也知道軟件開發(fā)人員的效率有很大的差別, 一流的程序員的效率是普通程序員的10倍; 有些效率的差別還有正負(fù)之分。 一個心不在焉的程序員可以一天寫 2000 行代碼, 然后別的開發(fā)/測試人員要花很多時間來修復(fù)其中的缺陷, 這些同事本來的任務(wù)就被耽誤了; 同時, 一個非常用心的程序員發(fā)現(xiàn)可以重用以前的穩(wěn)定模塊, 他花很多時間重構(gòu)和測試, 最后只修改了500行代碼, 代碼的缺陷特別少, 這樣無形中節(jié)約了別的同事的大量時間。
背靠背評比? 根據(jù)所有其他人的評價(jià)來決定自己的績效? 這樣會發(fā)生小團(tuán)體抱團(tuán), 以及劣幣驅(qū)逐良幣的現(xiàn)象。 做游戲的工程師一定聽說過 "Valve" 這個公司,他們的員工手冊很有意思,大家不妨看看。根據(jù)手冊的描述, 他們的員工100% 的時間都可以自由支配, 做什么項(xiàng)目,在哪里工作, 等, 都可以由員工來決定。 但是在績效評估上, 他們用了隊(duì)友評估這一機(jī)制,得出下列四個值:
技術(shù)等級/技術(shù)能力; 勞動生產(chǎn)力/結(jié)果; 對團(tuán)隊(duì)的貢獻(xiàn) (做一些工具讓大家的工作更容易,幫助招人); 對產(chǎn)品的貢獻(xiàn) (除了本職工作外, 還有什么可以幫助產(chǎn)品的: 找bug, 預(yù)測用戶的反饋,推廣... )
比不犯錯誤? 軟件項(xiàng)目的進(jìn)展不是一帆風(fēng)順的, 總有問題發(fā)生, 出現(xiàn)了問題, 就一定會記在相關(guān)人員的帳上,以便總結(jié)提高。 但是一定會作為績效評估的依據(jù)? 那倒不一定。
- 如果成員的行為只影響自己, 或者是探索式的行動,則不是壞事。 例如有些成員自行探索最新的技術(shù), 但是最后決定不采用此技術(shù)。
- 如果團(tuán)隊(duì)成員的行為影響整個團(tuán)隊(duì) (例如 build break 導(dǎo)致daily build 失敗), 則要注意。 在一個里程碑中可以統(tǒng)計(jì)誰導(dǎo)致這樣的錯誤最多。 對這樣的人可以采取 <移山之道> 中提到的 build master 方法處理。
如何區(qū)別對待?
團(tuán)隊(duì)中總有幾個人的資歷, 成績, 口碑差不多, 這時要怎么分出一二三呢? 微軟公司流傳著“l(fā)ifeboat drill” [救生艇練習(xí)] 的辦法 - 如果大家在海上遇險(xiǎn), 一幫人擠在救生艇上, 眼看就要沉沒, 必須扔一個人下海其他人才能得救, 你選誰呢? 或者是你要開始一個新的項(xiàng)目, 只能帶走一個人, 你會帶誰呢? 這當(dāng)然拷問大家的直覺, 但直覺往往是對的。
在玩過這些游戲之后, 一個一維數(shù)組就產(chǎn)生了, 這時候就可以區(qū)別對待, 分三段, 來一個好/中/差。 或者想GE 等公司那樣, 給最好的 20% 某些待遇; 中間的 70% 某個待遇; 最后的 10% 某個明顯不同的待遇。
當(dāng)然這種一維數(shù)組總是有一些問題, 因?yàn)槿说哪芰? 具體工作項(xiàng)目完成情況, 在一定時間內(nèi)的貢獻(xiàn)是相互影響但是又是相互獨(dú)立的. 如果二十人的團(tuán)隊(duì), 大家的確做得差不多, 什么人去當(dāng)那兩個 10%呢? 這是折磨很多經(jīng)理的難題。在統(tǒng)計(jì)意義上, 一個幾百人的大公司總有一小部分人不適合職位要求, 讓排名最后的 10% 驚醒一下很好。 但是公司里往往層層把10% 的指標(biāo)下放, 最后到了基層團(tuán)隊(duì). 盡管兩個團(tuán)隊(duì)的貢獻(xiàn)和管理水平有很大差別, 這兩個團(tuán)隊(duì)的經(jīng)理都必須得選出10% 的成員來作為 [最差的成員]。 差的團(tuán)隊(duì), 這些人不缺; 好的團(tuán)隊(duì), 它的經(jīng)理陷入了一個困境 - 他/她必須把表現(xiàn)挺不錯的團(tuán)隊(duì)成員歸到 10% 里。
軟件企業(yè)的產(chǎn)品都是各種角色合作產(chǎn)出的,但是評價(jià)體系往往是單一維度、針對個人的評價(jià)體系,這導(dǎo)致很多副作用,《堅(jiān)毅》 (英文名 Grit, 作者 Angela Duckworth) 中有下面的描述:
安然公司的員工需要證明自己比別人都聰明,這種要求在不經(jīng)意間促成了一種自戀的企業(yè)文化。在這種氛圍中,大量員工一方面極其自命不凡,另一方面又有深深的不安全感,因此他們需要不斷地自我炫耀。這種文化慫恿了員工短期的表現(xiàn),壓抑了他們長期的學(xué)習(xí)與成長。 ... 最終,它可能也促成一個獎賞欺詐、有礙誠實(shí)的工作環(huán)境。
為了更客觀地反映員工績效的不同的因素, 有些公司實(shí)施過二維的評價(jià)體系:
完成任務(wù)維度: 主要由團(tuán)隊(duì)成員和直接經(jīng)理商量年度目標(biāo), 直接經(jīng)理有較多的自由度決定 好/中/差. 例如大部分成員都可以得到 “好”這一評價(jià)。
團(tuán)隊(duì)貢獻(xiàn)維度: 還是嚴(yán)格根據(jù)人員百分比, 評出團(tuán)隊(duì)中最好的20%, 中間的70%, 和最需要改進(jìn)的 10%.
在理想條件下, 把任務(wù)做得很好, 當(dāng)然貢獻(xiàn)會在最上面的 20%; 做的最差的, 貢獻(xiàn)應(yīng)該是最低的 10%. 但是在實(shí)踐中要復(fù)雜得多, 有些人因?yàn)槿蝿?wù)相對簡單, 完成的很好, 但是對整個集體的貢獻(xiàn)一般, 這種人可以得到 [好, 70%] 的位置。 有些人敢于做很難的事情, 結(jié)果未必令人滿意, 但是對團(tuán)隊(duì)很重要, [中, 20%] 應(yīng)該是一個合適的評價(jià)。
還用籃球做一個例子, 假設(shè)NBA的球星 科比·布萊恩特 到中國某俱樂部打球, 他由于種種原因, 沒有打出自己頂峰時的水平, 低于自己和俱樂部的期望, 但是和俱樂部所有球員相比還是高人一籌, 他應(yīng)該得 [差, 20%] 的評價(jià). 與此同時, 一個剛?cè)腙?duì)的球員, 大部分時間打替補(bǔ), 時有超水平表現(xiàn), 他的評價(jià)應(yīng)該是 [好, 10%]. 與此同時, 在科比到來之前能拿 [好, 20%] 的球員, 則有些要拿 [好, 70%], 因?yàn)榭票日加昧艘粋€ 20% 的位置, 但是自己的球隊(duì)因此變強(qiáng), 成績變好, 總的獎金數(shù)大大增加, 也許自己到手的報(bào)酬比以前還要高。
當(dāng)領(lǐng)導(dǎo)給員工評價(jià)時, 員工的績效可以從兩個維度去評價(jià), 就更好辦一些了. 當(dāng)然, 相應(yīng)的流程和文字工作要做得更多 - 如果員工是公司最寶貴的財(cái)產(chǎn), 多花一些流程和文字又算得了什么呢?
[2012年11月更新] 看到某著名互聯(lián)網(wǎng)公司的一個二維評價(jià)體系, 縱坐標(biāo)是 業(yè)績, 橫坐標(biāo)是 價(jià)值觀:
| 野狗 | 明星-藏獒 | |
| 牧羊犬 | ||
| 狗 | 哈巴狗 |
網(wǎng)絡(luò)的解釋如下, 話糙理不糙:
剛?cè)腴T的員工, 業(yè)績和價(jià)值觀都在培養(yǎng)階段, 那就就是一條狗, 就像大街上亂跑的中華田園犬。 如果干了很久還沒有業(yè)績和價(jià)值觀, 那就要趕人。
如果價(jià)值觀不斷提高, 但業(yè)績平平, 則是聽話的小白兔, 或者哈巴狗。 可以給機(jī)會, 但是機(jī)會不多了。
如果業(yè)績很好, 但價(jià)值觀不太對路 (不太聽話?), 則是一條野狗。 要堅(jiān)決清除, 不然功高震主...
如果業(yè)績和價(jià)值觀都取得雙豐收, 那就是 明星 員工了, 可以用藏獒來命名!
其他的同事則屬于勤勤懇懇的 牧羊犬.
各個公司在實(shí)踐中會有很多不同的做法, 那么你們團(tuán)隊(duì)是怎么衡量績效, 決定工資, 獎金的?



浙公網(wǎng)安備 33010602011771號