為了項(xiàng)目上線而加班,真有必要嗎?
大家都知道:軟件項(xiàng)目的加班可能真是有百害而無一利,但總還有些時(shí)候,有些人有僥幸心理,或是現(xiàn)實(shí)情況實(shí)在無法讓步,比如項(xiàng)目必須在某個(gè)日期上線; 在這些情況下,應(yīng)該跟團(tuán)隊(duì)溝通些什么?Quora資深軟件工程師Edmond Lau在自己的一篇博客中,給出了自己的看法。這篇博客名為《為了滿足項(xiàng)目上線日期要求,我該怎么告訴我的團(tuán)隊(duì)工作更多時(shí)間?》。
文章一開始,Edmond指出:
在試圖告訴團(tuán)隊(duì)要加班之前,一定要確保一點(diǎn):為了保證上線日期,你有一個(gè)切實(shí)可行的計(jì)劃。否則,從長遠(yuǎn)來看的最佳策略是:根據(jù)團(tuán)隊(duì)當(dāng)前開發(fā)能力和效率,重新定義要上線的功能;或者將截止日期重新調(diào)整為更現(xiàn)實(shí)的時(shí)間。
接下來,Edmond列舉了自己的親身經(jīng)驗(yàn)。他曾參與過兩個(gè)持續(xù)多月大型項(xiàng)目,而且團(tuán)隊(duì)成員都是高手,專注投入在這兩個(gè)項(xiàng)目上。為了在某個(gè)日期之前上線,工程經(jīng)理要求團(tuán)隊(duì)加班工作,每周60到70個(gè)小時(shí)??墒琼?xiàng)目最后還是沒有按時(shí)完成。Edmond這樣回顧項(xiàng)目的后果:
這樣的方式讓一些團(tuán)隊(duì)成員筋疲力盡,有些人后來離開了,其他人用了很久才恢復(fù)過來。這兩個(gè)項(xiàng)目的情況都無法判斷:加班是否真能加快進(jìn)度,加班的決策在當(dāng)時(shí)也許很合理,但是長遠(yuǎn)來看,兩只團(tuán)隊(duì)都深受其害。我們從這兩個(gè)項(xiàng)目中學(xué)到慘痛的教訓(xùn):不管你多么希望項(xiàng)目在某個(gè)日期前完成,都對它能否做到這一點(diǎn)毫無幫助。不要將積極思考與現(xiàn)實(shí)的樂觀主義混為一談。
Edmond列舉了幾個(gè)加班無助于項(xiàng)目盡快交付的原因:
- 工作更多時(shí)間,每小時(shí)的效率將會(huì)降低。
如果你的團(tuán)隊(duì)已經(jīng)習(xí)慣了每周40小時(shí)工作的生活節(jié)奏,而且一年來都是如此,那么很可能他們加班的效率會(huì)低于平常,甚至可能產(chǎn)生負(fù)面影響。疲累和睡眠減少會(huì)傷害認(rèn)知功能,而且降低工作質(zhì)量。
他還列舉了150年以來的研究文獻(xiàn),證明這一點(diǎn),而且有些文獻(xiàn)甚至說明:如果加班過多,
有問題的工作累計(jì)帶來的負(fù)面影響,會(huì)導(dǎo)致項(xiàng)目完成日期延遲,甚至比同樣的團(tuán)隊(duì)按照每周40小時(shí)的工作節(jié)奏完成得還要晚。
- 很可能你現(xiàn)在落后的時(shí)間進(jìn)度比你以為的還要多。
在工程中,做出準(zhǔn)確的項(xiàng)目估算非常難以做到。進(jìn)度已經(jīng)晚了,說明上個(gè)月的工作就估算得不夠。所以,可能過去的工作估算少了,更有可能的是:整個(gè)項(xiàng)目都估算少了,包括剩下幾個(gè)月的工作。
我們在項(xiàng)目開始時(shí)估算得要比項(xiàng)目結(jié)束時(shí)準(zhǔn)確,因?yàn)殚_始時(shí)的工作重點(diǎn)放在可以深入理解的工作之上;到結(jié)束時(shí),團(tuán)隊(duì)常常低估整合測試用去的時(shí)間> ,而且每個(gè)沒有預(yù)料到的問題都會(huì)讓進(jìn)度延后一周甚至更多。這些效應(yīng)疊加起來會(huì)產(chǎn)生更多延遲。
他引用了《人月神話》里面的話:
特別是沒有為系統(tǒng)測試留出足夠時(shí)間,這會(huì)帶來災(zāi)難性后果。因?yàn)檠舆t是在項(xiàng)目日程結(jié)束時(shí)來臨的,除非交付日期快到了,沒人會(huì)意識到進(jìn)度上的問題。
- 額外的工作時(shí)間會(huì)讓團(tuán)隊(duì)精疲力竭。
Edmond引用了《人件》中的一個(gè)癥狀:“undertime”,也就是說:跟隨加班而來的,常常是員工為了要補(bǔ)償生活方面的損失,而在工作中耗費(fèi)時(shí)間去做與工作無關(guān)之事。
我們的經(jīng)驗(yàn)指出:額外工作時(shí)間的積極影響被大大夸大了,而其負(fù)面影響卻從未有人考量。負(fù)面影響可能十分嚴(yán)重:錯(cuò)誤、倦怠、失誤不斷增多、補(bǔ)償用的“undertime”等等。
- 額外的工作時(shí)間會(huì)傷害團(tuán)隊(duì)士氣。
在Edmond看來,加班之前,可能團(tuán)隊(duì)每個(gè)人都有自己的方式來完成每周40小時(shí)的工作,而且還能保證團(tuán)隊(duì)的凝聚力。一旦要加班,可能某些人就要多完成一些不能多加班的人要做的事情,這會(huì)影響彼此之間的關(guān)系,以前開心的團(tuán)隊(duì),現(xiàn)在可能就不開心了。
- 管理向截止日期的沖刺,需要耗費(fèi)更多管理開銷。
為了管理額外工作而舉行更多站立會(huì)議和其他會(huì)議,這很常見,因?yàn)槟阆M麍F(tuán)隊(duì)要彼此溝通,保證每個(gè)人都在做正確的事情。然而,這種額外的溝通開銷常常不會(huì)放在工作估算中。
- 向截止日期的沖刺,會(huì)刺激產(chǎn)生更多技術(shù)債務(wù)。
Edmond認(rèn)為:為了趕進(jìn)度而加班,幾乎不可避免地會(huì)令得團(tuán)隊(duì)找捷徑。而且在面臨更多項(xiàng)目壓力的情況下,這些技術(shù)債務(wù)很可能越積越多,將來一定要付出更多成本償還。
不過,總有些現(xiàn)實(shí)情況不可避免,真到那時(shí)候,Edmond建議在溝通時(shí)要強(qiáng)調(diào)一下因素。
- 要理解為什么進(jìn)度落了這么遠(yuǎn),找出根本原因,還要與團(tuán)隊(duì)溝通。
沒趕上進(jìn)度,是因?yàn)槿藗兺祽?,還是因?yàn)轫?xiàng)目要比想象的復(fù)雜,要占用更多時(shí)間?如果不能理解根本原因,也就不能有信心同樣的問題不會(huì)在未來幾個(gè)月出現(xiàn)。
-
向團(tuán)隊(duì)說明更可行的項(xiàng)目計(jì)劃和時(shí)間進(jìn)度,說明為什么要加班才能真正趕上上線日期,還要說明怎么做。
僅僅告訴團(tuán)隊(duì)他們落后了還不夠,如果不能得出更詳細(xì)、更明確的計(jì)劃達(dá)成目標(biāo),這就是一個(gè)警告信號,說明你比你以為的情況更落后。
-
確保團(tuán)隊(duì)每個(gè)人都能理解、認(rèn)同你的新進(jìn)度安排。
如果關(guān)鍵成員不相信你的時(shí)間表可行,那就得好好想想:你可能無法在新的指定日期前完成你想完成的工作。要是無法做到所有人都認(rèn)可,那么可能只有某些人認(rèn)同加班,除了團(tuán)隊(duì)中會(huì)有不公平的感覺之外,可能你還是無法達(dá)成最后完成日期。
-
重點(diǎn)放在項(xiàng)目、團(tuán)隊(duì)或是組織的整體工作目標(biāo)上,說明為什么按時(shí)上線如此重要。
如果你無法把團(tuán)隊(duì)融合在一起,這就是另一個(gè)警訊:說明不是所有人都像你這么有動(dòng)力去加班。
最后,Edmond指出:
如果,在接下來沖刺的兩個(gè)月時(shí)間里,你發(fā)現(xiàn)實(shí)際進(jìn)度比修正后的還要延遲,那就準(zhǔn)備放棄這個(gè)沖刺吧。接受現(xiàn)實(shí),知道你可能是在馬拉松的半程發(fā)起了沖刺,而終點(diǎn)線比你想的要遠(yuǎn)得多。不再可能讓團(tuán)隊(duì)更努力去解決問題了。減少損失,不妨想想怎么制訂一個(gè)應(yīng)急計(jì)劃應(yīng)對后續(xù)問題。
錯(cuò)過截止日期很糟糕,但要是錯(cuò)過了截止日期,而且讓團(tuán)隊(duì)精疲力盡,而且沒有應(yīng)急計(jì)劃,這就更糟糕了。