程式員這個行業裡,加班多似乎已經成為一種共識。
好多人是抱著即將“水深火熱”的心情加入這個行業的。
在任何行業中,不加班是一定不可能的,那程式員可能少加班嗎?
答案是有的時候是可能的,但也是艱難的。
在看具體手段前,我們先來看一下加班的原因。導致加班的核心原因可以分為三類:
- 人為的行政上的原因。這可以進一步劃分為兩類情境:一類是,在有的公司裡,不加班被等價於工作不努力。所以不管需不需要,那怕磨洋工也先加了再說。一類是,在有的公司裡,利潤和工作時間成比例關係,所以潛在的公司會推動多加班。
- 商業原因。這說的是,很多時候程式員會直接收到到某個議程,但議程本身不太合理,這樣就只能加班來趕。議程本身很多時候是根據產品上市時間這類商業因素定的,而確定產品上市時間時,企劃人員可能根本不太清楚開發工作本身究竟需要多少工作量,其中偏差就只能靠程式員的加班來彌補。
- 技術原因。這裡的技術說的是估算技術和需求開發技術。有的時候即使是項目組自己做估算,決定議程,但由於需求自身的不清晰,或者估算方法的不恰當,也還會出現無法搞定承諾議程的情形---也得加班。
這樣分析過後,我們會發現:程式員雖然是很多決定的後果承擔者,但卻並沒有太多發言權。
行政原因導致的加班更多起源於經營層。
商業原因導致的加班更多起源於市場人員。
真要解決這兩類問題,在特定時間和地點下,程式員作為一個群體事實上需要一個對話渠道,但這太複雜,根本不是技術問題。
只有技術原因導致的加班上,程式員才有一點發言權,但這種發言權存在與否更多取決於專案經理。估算本身,先不談什麼進階的技術,只要做足夠的分解,收集曆史資料,並讓程式員參加估算,結果都會變的比較靠譜。通常離程式現場越遠的人,其估算越不靠譜。
最後補充一個有意思的事情:
從發言權的角度看,大多時候:行政原因 > 商業原因 >技術原因。
形象點講是:經營層的發言權 > 市場人員 > 技術人員。
但一旦決定不合理,報複起來,次序就會反過來:程式真由於技術原因搞不定了,市場人員沒辦法。市場人員真搞不定了,經營層也沒辦法。
------------------------------------------------------------------------------------------------------------------------------------
理想流 + 軟體 = 《完美軟體開發:方法與邏輯》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和邏輯推演本質,追求真理。