From CSDN
早在75年之前,大多數行業就已經放棄了加班趕進度。數不清的行業經驗和研究事實證明:要想完成工作,加班趕工是成本最高的做法。
文/Evan Robinson 譯/喬梁(《程序員》2008年3月刊)
緣起2004年,某國際電子游戲公司員工的家人以Ea_spouse為名,在某網站上發布文章,講述了其配偶由于高強度、長時間的加班,對自己的身體健康以及家庭生活造成了很不好的影響。一石激起千層浪,關于電子游戲開發行業人士生活質量的話題再次引起了大家的熱烈討論。Ea_spouse收到了上千個回復,此事也很快被主要媒體跟蹤報導。通過網絡,上千人參與了這個自發的大規模討論,內容涉及強制加班、工作效率、怠惰、工會、訴訟以及對很多公司的控訴等議題。
我已經做了二十多年軟件項目的開發與管理工作。過去的每一年,做過的每一個項目,都讓我更堅信:加班趕進度——“趕工”——是一種高成本、低產出且極具破壞性的工作方式。“工作持續時間越長,工作效率越低”已是常識了。然而隨著時間的推移,我已注意到:由于過多額外加班導致工作效率下降的速度,要超過大多數軟件行業管理者的認知。隨著調查深入,我驚訝地發現我并不是第一個認識到這一點的人:近一個世紀以來,傳統工業的工程師們對于我所觀察到的問題早已達成共識。
歷史1908年,工業效率研究先驅 Ernst Abbe公布了他的研究結論,即每天的工作時間從九小時減少到八小時,其日產出量會增加。而他也不是第一個注意到這件事的人。早在1893年, William Mather在Salford鋼鐵公司(Salford Iron Works)就已經采納了每天八小時的工作制。在1909年,Sidney J. Chapman發表了《工作實踐》(Hours of Labour)。他在文中描述了每天的工作小時數與工人的生產力之間的變化。下文會對其結論進行詳細闡述。亨利•福特在1926年大張旗鼓地采納每周40 小時工作制,至少已經進行了十二年的試驗讓他確信:將每日工作10小時調整為8小時,并把每周工作六天改為五天,實際上會增加總產出并降低生產成本。福特大肆宣揚縮短工作時間的社會效益,并強調增加消費時間對每個人都有好處。但其核心觀點仍是:減少當班時間可以帶來更多產出。
我發現很多組織(如商業、大學、工業協會和軍事單位等)進行的研究結果都持有同樣的基本觀點,即對于大多數人來說,“每天工作八小時、每周工作五天”是保證高產出和低身心消耗之間的最佳平衡點。在十九世紀的三十年代至五十年代,類似研究進行過上百次;到了六十年代,40小時工作制所帶來的好處在美國企業界已被無可爭辯地接受了。1962年,商業協會(Chamber of Commerce)甚至專門發行了一個小宣傳手冊,來稱贊減少工作時間所帶來的生產率提高。
然而,不知何故,硅谷卻把其拋在了腦后。Ea_spouse寫到:
“現在的強制工作時間是從早上九點到晚上十點,且每周工作七天,基于員工的良好表現,星期六的下班時間偶爾會提前到晚上六點半。平均算下來,這相當于每周工作85小時。”
實際上,一周有六天是從早上九點工作到晚上十點,還有一天是從早上九點到晚上六點半,算下來是每周工作87.5小時(6×13+9.5=87.5)。可是在工作這么長時間以后,誰還會算得那么詳細呢?
在這一方面,電子藝界與其它高科技公司沒什么不同。請希望提高員工生產力且同時讓他們保持頭腦清醒的人一起來看一下:管理者在工作時間、產出、效率以及生產成本這幾個方面做出的假設,以及一個世紀的產業研究如何證明這些假設是完全錯誤的。
管理者想要什么?當管理層將員工送上“死亡之旅”時,他們究竟想要得到什么呢?我們真的相信EA的CEO想看到員工撅著屁股在辦公室里連續工作7×24小時嗎?
管理者想從雇員那里得到最大的產出,是用最少的成本投入生產出最好的產品。不到萬不得已,他們不希望為了完成產品出錢雇傭額外的人力資源,從而增加成本。表面看來,要想達到這兩個目的,“趕工”好象是最顯而易見且合理的方法了。
假設產出是利用計件方式來衡量的話,沒讀過上述研究報告的管理者可能會推斷:假如一個人在八小時內生產16件產品,那么,他在九個小時內應該能生產出18件產品,在十個小時內可能生產20件。我們可以用下面這個簡單的公式來表示這種觀點:
O = X/Y * t
其中,O是總產出,X是基準時間Y(以小時為計量單位)內的產出,而t是實際的工作小時數。在這種假設前提下,增加時間t是提高產出O的最簡方法。在個別情況下,這種假設是有效的,例如只在很短的一段時間里延長工作小時數以便能在最后期限時交付。但是,其它行業的長期試驗和研究表明:加班沖刺的極限持續時間比大家想象的要短;而且當達到極限以后,這種沖剌也會陷入困境。
小時生產率很重要對于如何看待“工人的產出”,更現實的方法是考慮小時生產率會隨著工作時間的長短發生變化。這種變化有兩種主要來源:在一天中最后幾個小時里,產生在腦力和體力上的明顯疲勞狀況;隨著已經延長了工作時間的工作日不斷增加,腦力和體力的疲勞也不斷積聚。
下面的等式表達了這種更復雜一點兒的情況:
O = P(t1 , t2 , t3 , … , tn )
其中,O代表總產出,P( )表示小時生產率隨時間(t1-tn)的變化。在這個等式中,P( )是一個函數,不是一個常量。P( )根據工人的不同而變化,因為某些人生產力要高于其他人。P( )也隨時間變化,因為人不是機器,在第14個小時完成的工作并不完全等于在第1個小時完成的工作。另外,P( )也會隨工人最近的狀態而變化,例如,開夜車后的早上與睡了一個好覺后的早上,其工作效率也不可能是完全一樣的。
在1909年Sidney J. Chapman發表的《工作時間》一文中展示了下面這張示意圖:

其中,曲線P表示“固定數量的勞動力(根據每個工作日的小時數)產出邊際價值的長期變化值”。OX軸表示一天內的工作時間,OY軸表示產出的價值。在OX軸的n點上,也就是說如果每天工作n個小時,其總產值是圖形Onda的面積(詳情請參見 http://www.worklessparty.org/timework/chapman.htm)。可以發現:曲線P的高度就代表了工人的工作效率(每天在給定的工作小時數下,每個單位時間的產出)。
聰明的讀者已經注意到在點b,工作更多小時不會創造更多的價值。而且在b點以后,每多工作一個小時,產出反而是負值。怎么會這樣呢?
Chapman的工作曲線圖假設給定工作小時數的工作日會持續一定的時間。因此,它將每天的疲勞狀況和長期的疲勞累計統一在一個模型之內體現。首先,小時產出率的下降反映了在接近一天工作結束時,疲勞效應對工作質量和數量上的影響。但是到后來,每天的疲勞是由累積疲勞復合組成的。也就是說,在頭一天加班時間導致疲勞產生的生產力下降,會對此后工作日的小時生產率下降產生疊加效應。
即便是在一天之內,當精疲力竭的雇員再也無法投入工作時,產出就會停滯不前。如果某個已經變得麻木的雇員犯了災難性的錯誤,破壞了前面已經完成的工作和投入資本,那產出就會變成負數。
就工廠而言,一個工人的生產率會隨時間下降。某工人在一個班次開始,可能每小時生產10個工件,而在接近下班時,可能每小時只能生產6個,在這其間,有幾個小時可能會達到峰值12個。再往后,其工作會變得更慢,而且會犯更多錯誤。這種減速和錯誤最終會使生產力成為零,即花了很長時間才生產一個工件,而到了最后一個總會有點毛病。流水線的管理者很久之前就發現:當達到這種疲勞程度時,會帶來較大的失誤,并導致更大的成本損失,如昂貴的機器受損,存貨被毀,或者工人嚴重受傷等。
作為腦力工作者,得到充分休息后,程序員會生產更多高質量的代碼,而且bug也會比較少。在開始工作的第一個小時,程序員會逐漸進入狀態,接下來的幾個小時是最佳狀態。在此之后,我們會感到疲勞,小時生產率也就下降;我們會花很長時間才能修復一個簡單的bug,或增加一個簡單的特性。而這樣的事情如果拿到前幾個小時做,可能也就是幾分鐘的活兒。再惡劣一些的狀況—似乎很多電子娛樂行業的公司大部分時間都在這種極端狀況下工作—一個過度疲倦的IT技術人員可能會刪除很有價值的文件,從而要花費額外的工作去恢復備份;他也可能在回家的路上遇到交通事故,結果在幾個月內都無法上班。
這就是第一課:在一個工作日中,生產率隨時間h變化。在前四至六個小時里,生產效率最高。隨著時間的流逝,生產率會降為0,甚至會變成負數。
平衡點在哪里?如果在一個工作日內,生產率本來就會隨時間下降,而且長時間工作會導致低生產率,那么我們如何找到一種方法來達到最大產出呢,平衡點又在哪里?
不幸的是,希望量化腦力勞動者的產出是相當困難的。我也希望能給出一個簡單的公式,只要代入幾個數字,就可以計算得出每個人達到最大產出所需工作小時數。但是我不能,因為即使存在這樣的公式,也不能就找到并代入哪些基本數據達成一致。常見軟件度量方式,如代碼行法或功能點法,要么只是簡單收集數字,無法讓人信服其價值,要么就是數據很難定義和收集。有用的度量數據,如造成bug數目和修復bug數目等,其可信度也不高,并有可能會被不公平地用于年度考評上,也可能被聰明的程序員利用來算計年終考評或績效獎金。架構師的產出可以很容易地用某些數據(如模型或架構圖的數量)來衡量,但同樣很難用另外一些數據(如主觀質量、觀感,及模型復雜度)衡量。如果用發現的獨特bug數來衡量測試人員的產出很容易,但用代碼覆蓋率來衡量就有點兒難了,假如用發現缺陷的總百分比來衡量就難上加難。
總而言之,對于團隊的產出,大多數公司好象陷入了一種“最小公分母式”的度量。要么用游戲出廠數量和銷售量,要么就不用。雖然這些的確是大多數股東所在意的度量數據,但對于生產率的度量完全沒用,尤其是每日或每小時的生產效率。
◆ 第二課:對于腦力勞動者,生產效率很難量化。所以,我們只好同其它行業中進行類比:以下內容來自Work Less Institute of Technology名為《IT行業中的精神物理學》的一篇文章,是對Ea_spouse的回復:
“這是一個多世紀前,Dr. Ernst Abbe 對德國耶拿的蔡司光學工廠(Zeiss Optical Works)工作時間與產出的調察。Dr. Abbe是工廠的董事,他將工作時間從每日9小時減少到8小時,并詳細記錄了調整前后每個工人的每日產出,其結果與十九世紀的其他研究一致,即適當減少工作時間確實提高了總產出。”
Tom Walker指出:
“產出的增減與工作時間的長短不成正比”好象是每一代人的必修課。1848年英國議會通過10小時工作法案,結果每個人每天的總產出增加了。到十九世紀九十年代,雇主又廣泛嘗試8小時工作制,不斷發現每個工人的總產出仍在提升。“科學管理理論”創始人泰勒 (Frederick W. Taylor)指出減少工作時間會顯著增加個人產出。
在上個世紀二十年代,亨利•福特對工作時間安排進行了多年試驗,最終在1926年引入每周工作五天共計40小時,卻付六天薪水的工作制度。福特為什么要這么做呢?因為他的試驗表明,其工廠在五天內的產出要比六天的產出還多。而在工作制變遷的每一步上(1840s,1890s和1920s),總有些行業人士堅持認為:縮短工作時間會降低產出,使經濟受損。
◆ 第三課:經過上一個世紀的研究表明,每周五天且每天8小時的工作時間,從長遠看其產出將會最大。有什么理由讓我們認為:我們這個行業可以不遵守這個規則呢?短期的產出又當如何?
如果每周40小時工作制是收到最多產出的最佳工作時間安排方式,我們能否期待“短期內的延長工作時間”能夠有短期的成效?簡而言之,從幾天到幾個月,你通過延長工作時間能夠得到多少額外的產出,取決于一個工作日工作多長時間。
顯然,如果在八小時工作制下一個工人每小時生產一個工件,他在十六小時工作制下生產的工件數會在八到十六個之間。這是隱藏在“趕工”背后不那么明顯的本質。另外,工人生產率還依賴于其所處狀態。
與每周工作40小時相比,每周工作60小時會導致生產效率下降。剛開始時,這額外的20個小時會彌補生產效率的下降,使總產出增加。但研究表明,當改為每周工作60小時以后,建筑工人的生產率很快就會開始下降。這種下降很快可以感覺到,一周之內就會很明顯,而且還將不斷下滑。在兩個月內,累積生產力的損失會下降到與每周工作40小時的產出同樣的水平。同一篇報告引證的研究顯示出:每天工作八小時的總產出會高于每天工作九小時總產出16%或者 20%。
所以,沒錯,“趕工”可在短期內提高產出。但在每周工作60小時的情況下,這個“短期”絕不能超過八個星期。因為從這一點開始,成本耗費會嚴重超過帶來的收益。不僅會失去趕工帶來的成果,還會使員工感到疲倦、易怒、情緒難于控制。當恢復為每周工作40小時后,還需要一段時間,他們的產出才能恢復到原來的水平。
一周如果工作87.5小時會怎么樣呢?雖然缺乏確鑿的數據,但我估計效率在一個月內將跌至原來的50%,即使每周額外的47.5小時工作(兩倍于"正常"工作時間)在最初階段可能有相當高的產出。
◆ 第四課:每星期工作60小時的情況下,由于長時間工作所導致的生產率下降,會抵消幾個月超時工作所帶來的產出。睡眠因素
在評估“趕工”是否有用時,還要考慮另一個因素:如果工人沒有足夠的睡眠,他們能保持高產多長時間?
Gregory Belenky上校是Walter Reed 軍隊研究所神經精神科的主任。他曾為五角大樓研究如何使士兵在戰斗條件下最大化其效率和警惕性。在其1997年的論文《持續作戰中睡眠、剝奪睡眠與人體的表現》中,他指出:
“實驗室內研究表明,每連續保持清醒24小時,神智功能下降25%。被剝奪睡眠的個體雖然能夠保持認知活動的準確性,但是反應速度明顯下降。”
在我們的研究中,來自第82空降兵團炮火指示中心的團隊接受了模擬持續戰斗狀態的測試,共持續了36小時。在測試開始階段,當我們要求向一所醫院進行模擬開火時,團隊還能查看方位圖,評估目標狀況,拒絕開火請求。到模擬測試后期,他們就無視目標性質毫不猶豫地開火了。
在進行模擬演習的第15天,每晚睡四小時的炮兵連的成績僅是每晚睡七小時的炮兵連的三分之一。
◆ 第五課:每連續工作24小時,認知能力會下降25%。連續開夜車的人會產生嚴重的累積影響。認知遲鈍與錯誤率
“趕工”引起生產率下降的重要因素之一就是產生錯誤數量的增加。盡管大多數錯誤很容易修復,但還是有一些錯誤會把從“趕工”中得到的收益消耗殆盡。“趕工”時間越長,相關人員遇到大麻煩的機會就越大。
程序員、架構師和測試人員能夠拿到薪水,不是由于他們擁有發達的肌肉或者什么超能力能把重物從一點移到另一點,而是因為他們的大腦。工作時間越長,或者缺乏充足的睡眠(好比每晚只睡1~2小時)會大大降低他們使用大腦的效率。
Belenky上校指出:士兵即使每天僅少睡一個小時,后果是“減少了……保持清醒地進行高條理性腦力工作的能力。降低了個體和團隊的效率”。
知識工作者應該感到幸運他們不必擔心發生“友軍誤傷”的問題。
在《持續減少睡眠會產生嚴重惡劣后果》一文中提到:
“賓夕法尼亞大學的研究人員發現:連續十四天內每天只睡4至6小時的研究對象在認知表現方面顯示出明顯不足,其水平相當于連續三天不睡覺的人。然而,這些研究對象卻說自己只感覺有點兒困,并沒有意識到他們的狀況有多糟。”
在2005年1月的《洛杉磯時報》上,Karen Kaplan有一篇名為《瞌睡的醫學院實習生成為馬路殺手》的文章:
“研究表明,在21個小時內沒有睡眠的司機,其狀態相當于血液內酒精含量檢測達到0.08的人,而0.08是美國對非營利性駕駛司機進行血液內酒精含量檢測是否超標的法定界限。”
令人感到諷刺的是,大多數軟件公司會解雇一個工作時間喝酒的人,卻能毫不猶豫地將今年最重要的項目交到由于缺少睡眠(相當于達到法定司機酒精含量超標標準)的人手里。事實上,是他們要求這些人在“違法醉酒狀態”進行工作的,并以此作為雇員被繼續雇傭的條件。
帶來的風險很現實—引發的錯誤真能導致災難發生。在Dr. William Dement寫的《睡眠的承諾》一書寫道:
“1989年3月24日的夜晚清冷寧靜,空氣如水晶般透明。埃克森石油公司的油輪離開了阿拉斯加的瓦爾迪茲市,駛向威廉王子海灣。在如此清澈的氣候條件下,油輪按原計劃放下了輸油管道,卻沒有及時收回。巨大的油輪擱淺,數百萬加侖的原油泄漏到海灣之中。……在最后的報告中,國家運輸安全委員會 (NTSB)發現,缺少睡眠是事件的直接原因。……導致美國歷史上最嚴重的漏油事件的直接責任人是船上的三副,他在事發前48小時內僅睡6個小時,睡眠嚴重不足。”
羅杰斯調查委員會(Rogers Commission)在關于美國挑戰者號航天飛機失事分析最終報告中說:在關鍵時刻的電話會議上,做出發射決策是有問題的。在“人為因素分析”章節提到睡眠缺乏“對此有重大影響”。
如果由于缺乏睡眠可以導致戰斗失利,危害病人,擱淺油輪,引爆太空飛船;仔細想想這會為價值一千五百萬美金的游戲項目帶來什么?
◆ 第六課:錯誤率會隨連續工作時間而攀升,尤其是睡眠時間不足的情況下。最終,失敗會找上門來,導致災難發生。當時間緊且預算投入大時,你真能承擔得起這個風險嗎?這意味著什么?
意味著生產率下降。在保持每周五天共約40小時工作時間的情況下,工人可以維持生產率。工作更長時間,生產率開始下降。在四天和兩個月之間某個時間點上,從加班工作中得到的收益會被小時生產率下降所抵消。在某些極端情況下(當工人無法保證每晚至少7到8小時睡眠的狀況下,一到兩天之內),效率會直線下降。
上面的研究內容很多都是來自于工業產業環境,可能有人會認為這些結論不適用那些更多地使用腦力的程序員、架構師和測試人員身上,因為他們與普通的體力勞動者不同。事實上,的確不同,Belenky上校明確表示:
“與復雜的腦力活動相比,可以說,簡單的心理活動、體力勞動和耐力基本不受缺乏睡眠的影響。”
需要完成復雜任務的腦力勞動者受睡眠缺乏影響比體力勞動者更明顯,生產率下降得更快。在知識工作者中,由于過度工作而導致的生產率損失會比普通士兵更早更快,因為我們的工作更受腦力疲乏的影響。
Ea_spouse想告訴我們,她老公所在團隊的工作效率遠遠低于最佳效率。在老板讓他們進行每周87.5小時的超級“趕工”之前,每周工作60小時以上的狀態就已持續幾個月了。
二十世紀,在大部分的時間、地點和行業中,讓手下雇員這樣工作的管理者就被認為是不能勝任其工作。這不只是因為他們威脅到了良好的雇傭關系,還由于他們的錯誤管理方式將公司的生產力和資產至于危險境地。
一百多年的業界研究已經毋庸置疑地證明:員工因精疲力盡所產生的錯誤會推遲計劃,損壞設備,增加成本,降低產品質量,最終威脅組織的生存。這是對項目的威脅,也是對其管理者、雇主、每個人,以及其自身的威脅。
無論如何,將“趕工”用作長期策略,在經濟上是不可行的。延時工作不能增加產出,除非是短期行為。另外,“趕工”也不能使產品更快推出,只會導致產品延遲發布。“趕工”不能提高產品質量,只能使其更糟糕。“趕工”增加了引發重大錯誤的機會,比如交付會擦除客戶硬盤數據的軟件,或者刪除代碼樹,或者把可樂灑到最近沒有做過備份的服務器中,甚至引起火災。的確是這樣,在“趕工”最后那些睡眼惺忪的日子里,我曾親眼目睹過前三個后果。第四個后果遲早會發生,大概只是時間上的問題。
管理者決定趕工,是因為他們想告訴他們的老板“我已盡我所能”。他們趕工,是因為他們評估的是放在椅子上的“草人”而不是那些能開發游戲的“大腦”。他們趕工,是因為他們沒有認真考慮要做的工作,或沒有考慮做工作的是人。他們趕工,是因為只知道要表現出自己在盡力做好工作的重要性,而不是真正去把工作做好。他們趕工,是因為他們回想到當他們還是程序員、測試人員、“助理制片人”或“副制片人”時,他們也是被要求這樣做的。
但這不是唯一的方法。事實上,很多文獻一次又一次地表明:加班趕工是最差的方式。這也是很多行業七十五年前就已放棄這種工作方式的根本原因。管理者、股東和員工都堅信:使用經過時間檢驗的——每天工作8小時、每周5天——管理實踐,大家會因更快、更省地交付更好的產品而獲益,而且不會損耗組織的人力資源和在公眾中的聲望。