拒絕透支加班,從我做起!
英文原文:Killing the Crunch Mode Antipattern
在 IT 行業中,尤其是對那些在初創公司中的員工來說,瘋狂加班簡直是家常便飯。我們姑且稱這種工作方式為“透支模式”。”透支模式”是指在一段特定時間內,由于 項目上線壓力或其他種種因素,開發人員必須要高強度超時工作的模式。眾所周知,程序員總是對通宵加班有種迷信,總是過度放大其效果,并且認為這是解決問題 的”大殺器“。更為可悲的是,這種孤膽英雄一樣的行為幾乎成為程序員社區信仰的一部分,成為我們衡量彼此是否是一個合格程序員的準則,更是許多公司管理層 用來壓榨員工的手段和借口。
“透支模式”是否科學?答案是否定的。從一個項目經理的角度來說,讓一個本身能力卓越的員工盡快變成低效得只會制造垃圾代碼的機器,只需要為項 目設置一個 deadline,一個根本不現實也不可能完成的 deadline。因為為了趕進度,該名員工除了沒日沒夜的加班加點外,別無選擇,他只能最大限度的犧牲其他時間。換句話說就是啟動“透支模式”。
為什么“透支模式”危害無窮?
首先,連續的超時工作會讓人腦力體力均透支,從而水準大降。以我為例,每次在熬夜加班打持久戰的時候,越到后期我越經常犯低級錯誤,這些失誤會 制造出一大堆麻煩,甚至破壞線上正常運行的功能。即使不犯錯誤,在工作上也更容易鉆牛角尖,毫不察覺得在錯誤的思路上越走越遠。
其次,“透支模式”會讓人產生職業倦怠,這種倦怠有時候是永久性的。啟動了“透支模式”的人如果不能適時的得到休息和調整,長時間高強度的工作壓力會使人失去對專業的熱情和興趣。如果在企業中長期這樣管理操作,再優秀再任勞任怨的員工也會辭職。
雖然聽上去很諷刺,因為啟動“透支模式”的本意是完成更多的工作。但實際情況卻是人們會變得越來越懶,效率越來越低。原理很簡單,假設我決定這 一晚上都用來解決一件事。我的大腦會把任務時長定位為一晚上,所以先休息一小時聽上去也無傷大雅。但是綜合來看,這一晚上的平均效率其實是被拉低的。更何 況,工作一會就要休息會逐漸成為一種習慣,于是效率就會越來越低。
“透支模式”會徹底扼殺工作熱情。“透支模式”意味著整個團隊的工作節奏已經超出他們所能承受的范圍。就像只給汽車加能跑六十公里的油,但是非 要跑七十公里遠一樣,一次兩次勉強可以到達,長期以往,總有你蹲在路邊等救援的一天(編注:“60 公里的油跑 70 公里”這比喻不合適)。要是還不吸取教訓,你就等著次次拋錨吧。
“透支模式”使員工的可靠性降低。設想一個人沒日沒夜的工作,每時每刻都得不到休息,管理者還怎么好意思因為“遲到”,“不回郵件”,“不寫單 元測試”,“引進 bug“,”產生技術債務“等等等等的事情責備他。當然誰也不希望自己的團隊里出現這些錯誤,所以請杜絕“透支模式”,使團隊的可靠性得到保證。
頻繁啟動”透支模式“使管理層的威信受到質疑。其實每次收到加班通知時,程序員往往想知道“為什么?”。聽上去可能有點“刻薄”,但是話糙理不糙,這種時候員工會覺得管理者只在乎任務是否完成,而根本不關心他們作為個人是不是健康是不是高興。
綜上所述,使用“透支模式”在某些不太需要腦力勞動的行業可能是個好主意,但是從來不是在軟件行業中。
“透支模式”為什么存在?
最重要的原因是–不切實際的期望。團隊領導者沒有很好的評估團隊的工作效率以及完成項目所需的工作量。在某些最壞的情況中,項目的交付日期只是 項目經理未經調研分析就一拍腦門隨便定的。更為普遍的情況是,項目的交付日期是確定的,但是沒有確定的需求范圍。于是隨著項目的開展,需求范圍增大而導致 交付日期變得越來越不切實際。這個時候,項目經理應該根據當下項目的進展情況對交付日期進行合理的調整。
溝通不暢以及各種不靠譜的擔心。不會說“不”是眾多程序員的通病。“你能這周五前做完嗎?”,“嗯……可能……大概……估計……可以吧。”。從 項目經理的角度出發,他們不希望把計劃時間定的太長,首先因為他們擔心把日期定的太遠會有點“說不過去”,其次他們太明白程序員有“錯過交付日期”的習 慣,從而會把交付時間訂的盡可能地早。因為項目時間越長,交付就會變得越越遙遙無期。“你們覺得如果這次在時間上留了余地,能就比 deadline 晚兩天交嗎?”
“透支模式”是這個行業的通病,不知道從什么時候開始,我們潛移默化地推崇著加班文化。一言蔽之,這是一種能為人帶來巨大成就感的工作模式,甚 至會讓人上癮。試想如果沒有你擼胳膊挽袖子大干一個通宵,工作將不能按時完成,產品可能無法按時上線,但是由于你的犧牲和努力,像英雄那般的力挽狂瀾,項 目得到了“拯救”或起碼大幅度的加快了項目進度。這種無與倫比的成就感是無論如何不可能在日常工作中得到的。
或者說,“透支模式”最讓人欲罷不能的是,你能真正看到團隊的凝聚力。每當這種時候,全體組員精力高度集中,保持持續溝通,齊心協力通力合作, 很快就能突破最大的難題使工作得以順利完成。撇開其余不談,僅全體均精力集中一項就能使團隊的整體能力提升一個檔次。作為組員,在這樣一個高效的團隊中工 作是十分激動和興奮的。但是我們都知道,這樣的興奮比較難(雖然不是完全不可能)持久。所以偶爾還是需要開啟一下全組的”透支模式“,讓大家回爐一下這種 “給力”的感覺。
如何可以不用”透支模式“也完成項目?
趕不上交付進度?那就趕不上吧。讓你的客戶失望一次,少賺點錢,蒙受一些損失,總之項目失敗就是失敗了。既然你沒能管理好你的團隊和項目,那為什么不干脆把這些問題暴露出來呢?
細化你的目標,精細化管理。如果你把任務定的太多,完成日期又制定得太高遠。那這個任務計劃基本上定了也是白定,因為你并不知道這是否符合實際情況。但是我相信如果你只是計劃今天下午做什么,你的計劃會更準確而且更容易完成。
步步為營,了解團隊的真實進度。在軟件業中,不能只看書面的進度報告,必須對提交的代碼進行測試確保其符合開發需求且運行正常。
制定合理的目標,明確所面對的問題。如果公司總是需要使用“透支模式”來完成目標,那說明管理者根本不了解整個團隊的工作節奏和能力。這時候項目經理得說服自己要“慢下來”,開發速度沒有預期中快,沒關系,接受事實并積極調整。
盡管“透支模式”是一種不健康的、低效且愚蠢的做法,但是我們承認有時候它確實是唯一的解決辦法。但是請記住,不到萬不得已不要開啟“透支模式”,盡管可以把它當成最后的殺手锏,但從長期效果來看,這是以團隊的凝聚力和對管理者的信任為代價的。
我們可以杜絕“透支模式”嗎?
“透支模式”的造成往往是由于規劃失誤、溝通不暢和領導不當。想想由此造成時間和物質上的巨大浪費,是時候停止這樣的惡性循環了。
對于管理者來說,當不得不使用“透支模式”時候,請把這個當做一個個人工作上的失誤,并好好反思。
對于團隊里的其他人,請善加利用正常工作的時間,請做到保證溝通,集中精力,讓每分鐘都算數!
譯文鏈接: http://blog.jobbole.com/67247/