正常的軟件項目中,項目的資源需求會隨著項目的進行逐漸升高,然后在后期迅速的回落,對于程序員和測試來說,主要的工作內容在項目的執行階段,也就是中期到中后期。

我們在計劃項目的時候,自然是不會計劃到加班這樣的事情的,一般都會按照正常的8小時/天的任務來進行排期。但是,項目總是有他的特殊性,例如:客戶要求某個時間節點必須交付,那么工期縮短了,對于項目負責人來說只有三個選擇:要么降低質量標準,要么減少需求,要么加班。

測試程序員

但是,質量是底線,雖然可以降低,但是總有一根紅線不能觸碰,需求是客戶或者產品經理說了算,并不是說砍掉就能砍掉的。所以,大部分時候,經過各種拉鋸戰后,還是只有加班。

對于前端和后端程序員來說,研發的中后期是加班比較多的時候。因為在前期時,產品經理自以為用戶的需求已經挖掘得比較透徹了,研發基本就是按部就班的照著既定的計劃研發,即使出現需求的變化,由于研發才剛剛開始,所以需求變化的代價很少,所以加班時候不多。到了中期和中后期,需求變化的代價越來越大,研發過程中可能發現需求中的一些不合理之處,從而產生了大量的溝通成本和調整成本,這時加班就開始越來越多,這個過程會一直延續到測試階段。

而對于測試來說,只要研發開始大量加班了,就說明產品的質量可能有風險,那么測試階段就沒有好過的。如果情況良好,在測試階段的中期,這個加班情況會有所緩解,但是很多時候,這種加班情況會一直持續到上線前。

測試程序員

所以,沒有熬過夜的程序員一定不是一個好測試。

當然,加班對于程序員來說其實也是一種歷練。曾經我也是比較反對加班的那一類人,能早點溜就早點溜。也有很多人說,加班時候的質量是得不到保證的,加班時候的效率很差等等,我承認,加班做出來的項目質量一定不高,但是個人覺得不是因為加班本身導致的,而是項目緊張到必須趕工的時候,那么一定不可能像不加班時那么的周全,可能單元測試能省就省,設計文檔能省就省,自然就質量差了,這并不是加班的人的原因。