為了專案上線而加班,真有必要嗎?

2022-05-03 08:09:10 字數 2245 閱讀 2030

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最後,edmond指出:

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

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

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

infoq中文站的讀者中一定有不少專案經理和管理人員,面對類似問題,你們是怎麼處理的?

不要為了專案而專案

為了專案而專案,是很多人讓我吃驚的習慣,類似的例子還有為了創業而創業。為了創業而創業什麼意思呢?發達國家很多人,是先有了乙個激動人心的想法和思路,然後為了實現這個想法,發覺必須要創業才能實現它。而中國很多人不是這樣,中國很多人是先想著當老闆賺錢,覺得要賺錢必須創業,然後再去想創業該做什麼好呢?其實我...

為了更新而更新。

確實很久沒寫東西了。多少記兩筆吧。基本上,剛加了兩天班。到家沒幾分鐘。進度很一般。沒完成主要的任務。現在,看 的時候,感覺,比之兩年前剛進公司時,又好像進了一層。能有些大局觀。對於,寫得很差的語句,沒有了眼中進刺的感覺。上下文,更容易聯絡起來。最近,又轉入了公司的開發平台。帶新人。混日子。假日,過得...

為了你們,而活著。

看到一篇部落格 我是如何成為程式設計師的 裡面提到以下觀點 多提問,充滿好奇心,充滿熱情 要努力學習一種語言,而不是web框架 努力工作 運用網際網路,多參加技術會議,多用twitter和部落格。多參加社交活動,向大家展示你對工作充滿熱情,是團隊的光榮 可選項 把自己置於絕望的境地,除了成功,別無選...