加班到底有什麼用

加班

最近在閱讀溫伯格的《程式設計師開發心理學》,這本44年前的書,其中的很多探索和觀點,現在看來依然鮮活而不過時。它開創了以人為本的軟體開發研究方法,是軟體從業者思想啟蒙的鉅著,技術人生的必讀經典。我在我的訂閱號“程式視界”的每週一書欄目裡推薦了它,回覆10067可以檢視。

當我想討論加班到底有什麼用時,《程式開發心理學》中的一些內容如同彈幕一樣從眼前浮現,啟發了我。

放眼周圍,到處都是加班的程式設計師。我原來在零壹廣場時,有時披著月光到路邊打車,計程車司機就會和我聊天,說你是華為(華為在我們對面有個研發中心)的吧……其實,我不是的。很多公司都加班,這是軟體開發從業者的噩夢。

我應聘時被人問過“你怎麼看待加班這件事”這個問題,我面試別人時也問過這個問題。有的人這麼回答:“我希望能在正常的工作時間內有效的完成工作,如果情況需要,也可以適度加班”。有的人這麼回答:“我就是因為受不了加班才從上家公司離職的”。

這次我不想討論這些,我只想理一理另外一個問題:加班到底有什麼用?

儘管多數程式設計師對加班深惡痛絕,但加班並不是毫無作用。首先它有很多負面作用:

  • 讓程式設計師厭惡眼下的工作
  • 讓程式設計師厭惡傳遞加班指示的領導
  • 讓程式設計師厭惡所在的團隊
  • 讓程式設計師厭惡所在的公司
  • 讓程式設計師無法對他需要照顧的家人交代
  • 讓程式設計師懷疑他所從事的這一行是否能長久幹下去
  • 降低工作效率
  • 浪費公司資源(水、電、辦公用品等)
  • 耽誤正常工作
  • 造成“正常工作時間瞎胡混,加班趕白天落下的進度”這種工作方式
  • 有效降低程式設計師的工作積極性
  • 交付低質量和埋了各種雷的產品

其次,實際上,不管對個人還是對公司,它也可能多多少少有一些“積極”作用:

  • 造成一種假象,讓領導覺得大家都在忙,心裡踏實
  • 造成團隊凝聚力、執行力高的假象
  • 不能按時交付時,向老闆和客戶展示努力的過程,給個不是交代的交代
  • 對於依賴工時的任務,是有效的
  • 有助於那些不推不動的人產出點東西
  • 對於海綿一樣的新手或極度渴望學習的程式設計師,可以學到一些知識、技能、經驗
  • 磨練程式設計師的心性,讓程式設計師變得敷衍或者淡然
  • 影響績效

從另一個維度來說,加班有沒有作用,就看這次加班,這個人是接納的,還是拒絕的。假如阿猿樂意通過加班來完成某些事情,那自然是有效果的,因為這樣的加班有明確的目的性,阿猿是自發地奔向它的目的。此時的加班,不覺其苦,反倒有愉悅之感,只恨時間飛逝不能多做停留。

《程式開發心理學》在“積極性、培訓及經驗”一章裡有這麼一段話:

過於努力地去查詢錯誤,與根本不去查詢同樣壞,甚至還要更壞。實際上,往往要等到程式設計師已經決定放棄從而不再承受壓力之後,許多程式錯誤才能被排除掉。給程式設計師施加高壓,以期他們能夠很快地排除某個程式錯誤,這種做法已經被證明是最差的策略——儘管截至目前,這仍是最常被採用的策略。

44年過去了,溫伯格的話還沒過時,我們還天天在用這種“壓一壓就出活”的策略,想想真是令人唏噓。


更多精彩文章,參看“漫談程式設計師”專欄。

困惑、成長、發展、增值、新知,盡在微信訂閱號“程式視界”:

程式視界