為趕專案上線,如何告訴團隊成員該加班?

發表於2013-08-07

大家都知道:軟體專案的加班可能真是有百害而無一利,但總還有些時候,有些人有僥倖心理,或是現實情況實在無法讓步,比如專案必須在某個日期上線;在這些情況下,應該跟團隊溝通些什麼?Quora資深軟體工程師Edmond Lau在自己的一篇部落格中,給出了自己的看法。這篇部落格名為《為了滿足專案上線日期要求,我該怎麼告訴我的團隊工作更多時間?》。

文章一開始,Edmond指出:

在試圖告訴團隊要加班之前,一定要確保一點:為了保證上線日期,你有一個切實可行的計劃。否則,從長遠來看的最佳策略是:根據團隊當前開發能力和效率,重新定義要上線的功能;或者將截止日期重新調整為更現實的時間。

接下來,Edmond列舉了自己的親身經驗。他曾參與過兩個持續多月大型專案,而且團隊成員都是高手,專注投入在這兩個專案上。為了在某個日期之前上線,工程經理要求團隊加班工作,每週60到70個小時。可是專案最後還是沒有按時完成。Edmond這樣回顧專案的後果:

這樣的方式讓一些團隊成員筋疲力盡,有些人後來離開了,其他人用了很久才恢復過來。這兩個專案的情況都無法判斷:加班是否真能加快進度,加班的決策在當時也許很合理,但是長遠來看,兩隻團隊都深受其害。我們從這兩個專案中學到慘痛的教訓:不管你多麼希望專案在某個日期前完成,都對它能否做到這一點毫無幫助。不要將積極思考與現實的樂觀主義混為一談。

Edmond列舉了幾個加班無助於專案儘快交付的原因:

  • 工作更多時間,每小時的效率將會降低。

如果你的團隊已經習慣了每週40小時工作的生活節奏,而且一年來都是如此,那麼很可能他們加班的效率會低於平常,甚至可能產生負面影響。疲累和睡眠減少會傷害認知功能,而且降低工作質量。

他還列舉了150年以來的研究文獻,證明這一點,而且有些文獻甚至說明:如果加班過多,

有問題的工作累計帶來的負面影響,會導致專案完成日期延遲,甚至比同樣的團隊按照每週40小時的工作節奏完成得還要晚。

  • 很可能你現在落後的時間進度比你以為的還要多。

在工程中,做出準確的專案估算非常難以做到。進度已經晚了,說明上個月的工作就估算得不夠。所以,可能過去的工作估算少了,更有可能的是:整個專案都估算少了,包括剩下幾個月的工作。

我們在專案開始時估算得要比專案結束時準確,因為開始時的工作重點放在可以深入理解的工作之上;到結束時,團隊常常低估整合測試用去的時間> ,而且每個沒有預料到的問題都會讓進度延後一週甚至更多。這些效應疊加起來會產生更多延遲。

他引用了《人月神話》裡面的話:

特別是沒有為系統測試留出足夠時間,這會帶來災難性後果。因為延遲是在專案日程結束時來臨的,除非交付日期快到了,沒人會意識到進度上的問題。

  • 額外的工作時間會讓團隊精疲力竭。

Edmond引用了《人件 | Peopleware 》中的一個症狀:“undertime”,也就是說:跟隨加班而來的,常常是員工為了要補償生活方面的損失,而在工作中耗費時間去做與工作無關之事。

我們的經驗指出:額外工作時間的積極影響被大大誇大了,而其負面影響卻從未有人考量。負面影響可能十分嚴重:錯誤、倦怠、失誤不斷增多、補償用的“undertime”等等。

  • 額外的工作時間會傷害團隊士氣。

在Edmond看來,加班之前,可能團隊每個人都有自己的方式來完成每週40小時的工作,而且還能保證團隊的凝聚力。一旦要加班,可能某些人就要多完成一些不能多加班的人要做的事情,這會影響彼此之間的關係,以前開心的團隊,現在可能就不開心了。

  • 管理向截止日期的衝刺,需要耗費更多管理開銷。

為了管理額外工作而舉行更多站立會議和其他會議,這很常見,因為你希望團隊要彼此溝通,保證每個人都在做正確的事情。然而,這種額外的溝通開銷常常不會放在工作估算中。

  • 向截止日期的衝刺,會刺激產生更多技術債務。

Edmond認為:為了趕進度而加班,幾乎不可避免地會令得團隊找捷徑。而且在面臨更多專案壓力的情況下,這些技術債務很可能越積越多,將來一定要付出更多成本償還。

不過,總有些現實情況不可避免,真到那時候,Edmond建議在溝通時要強調一下因素。

  • 要理解為什麼進度落了這麼遠,找出根本原因,還要與團隊溝通。

沒趕上進度,是因為人們偷懶,還是因為專案要比想象的複雜,要佔用更多時間?如果不能理解根本原因,也就不能有信心同樣的問題不會在未來幾個月出現。

 

  • 向團隊說明更可行的專案計劃和時間進度,說明為什麼要加班才能真正趕上上線日期,還要說明怎麼做。僅僅告訴團隊他們落後了還不夠,如果不能得出更詳細、更明確的計劃達成目標,這就是一個警告訊號,說明你比你以為的情況更落後。
  • 確保團隊每個人都能理解、認同你的新進度安排。如果關鍵成員不相信你的時間表可行,那就得好好想想:你可能無法在新的指定日期前完成你想完成的工作。要是無法做到所有人都認可,那麼可能只有某些人認同加班,除了團隊中會有不公平的感覺之外,可能你還是無法達成最後完成日期。
  • 重點放在專案、團隊或是組織的整體工作目標上,說明為什麼按時上線如此重要。如果你無法把團隊融合在一起,這就是另一個警訊:說明不是所有人都像你這麼有動力去加班。

最後,Edmond指出:

如果,在接下來衝刺的兩個月時間裡,你發現實際進度比修正後的還要延遲,那就準備放棄這個衝刺吧。接受現實,知道你可能是在馬拉松的半程發起了衝刺,而終點線比你想的要遠得多。不再可能讓團隊更努力去解決問題了。減少損失,不妨想想怎麼制訂一個應急計劃應對後續問題。

錯過截止日期很糟糕,但要是錯過了截止日期,而且讓團隊精疲力盡,而且沒有應急計劃,這就更糟糕了。

 

這篇部落格來自Edmond在Quora上回答的一個問題,還有很多其他人對這個問題做出了自己的回答。

 

相關文章