做軟件這行,加班就是家常便飯。做了這么多年程序員,我還真沒聽哪個說公司不加班的,碰見好的不時、偶爾加班,差的就是無盡的加。加班是那么的邪惡、令人作嘔,但又無法抗拒,它仿佛就像嫖客患上梅毒——擺脫不了的,只不過早晚的事。有什么辦法,誰叫你選擇做程序員的,既然做了代碼工人,那就萎縮地任命吧,別想逃避,除非你不想要這個飯碗。
我們為什么會加班?這是每個做程序員的都會提的問題。其實加班很多都是源于工期與任務的不匹配,軟件這個特殊的行業,本身存在太多虛擬的東西。我們的設計,構造在哪里?在代碼里;代碼又在哪里?在人的腦袋里;在腦袋里的是什么?是你的想象、臆造。
客戶永遠看不見軟件實施過程中的生產環節,因為軟件不像生產磨具、牛奶那樣存在一個可視、直觀的作業流水線,軟件的創作流水線很多就是存在于程序員的大腦中,客戶唯一可以直觀看見的東西就是計劃文檔,進度報告,實施過程描述等。看著這些圖表勾勒、文字描述,客戶是無法想象出工期結束你到底能交付什么樣的東西?你做的東西是否就是他所想要的?生產中你是否存在偷工減料?等等諸如此類的各種想法,他不想看你給他的需求分析,軟件設計,系統流程,當前更不想去看你用ABC拼湊出的code。在這樣的無奈中,如果你與客戶建立了良好的相信度,那還好辦,若不是,那他當然只有擔憂了,因為誰都不愿意花了票子,買個假貨、次品。他現在可以相信的就是你的誠信,你唾液橫飛吹噓出來的那些成功案例。
我經歷的項目里,很多工期都是定在3-4月間,唯一做個一個1年多的地稅項目,那都是老板的強大背景,不然是不可能的。客戶付錢越多,擔心的越大,它害怕自己的票子白白流失,如果真的是那樣,他的日子就不好過了,弄不好有可能要掉腦袋的。因為客戶不可視的生產過程,加上對創建方的綜合實力憂慮,他當然會在招標期間縮減整個項目的周期。這樣他可以減少太多無助的等待,越早看見你的產出,才能及早地辨別出軟件的吻合程度,對于不佳地方也能更快地指出。
客戶預定的工期縮減,必然造成承建公司加大人力成本的投入,那你的老板最終可獲得的最大利潤必然減少。老板們都是金錢的“嗜血鬼”,他才不會傻乎乎地聽你使喚,投入更多資源。他會裝糊涂不知,直接告訴你,“時間就是這么多,合同都簽訂了,沒法改。如果你不能按時完成,不是時間的不足,而是你的能力所致,水平有限“。最終結果就是項目經理(或項目負責人)們為了表現自己的非同一般,必定調整那些合理的開發計劃。
為了能按時交工,schedule中的工期被縮減,每個step中的任務量,被迭代、整合,每個執行任務的source依舊是那些。面對這樣的plan,傻子都看得出來,一天8小時的工作時間如何能完成,一周5天的工作日如何夠用。加班吧,項目經理被老板的幕后推手拽出來了(我曾經就是扮演這樣的角色),他開始用自己虛偽的言論蠱惑你,“兄弟們,這段時間大伙辛苦點,好好干,等熬過這段,項目成功了,那我們日子就好過了,年輕輕的,這點苦算什么啊,想當年。。。。。”,再聽下去,應該有人跳起來抽他巴掌啦,還是不說了。說白了,項目經理這是在告訴你這班你是加定了,就像大街上的妓女一樣,你想要,爺們兒要上,你不想要,爺們兒也要來。付了錢,賣了身,你還能選嗎?
魯迅說,“時間就像海綿里的水,只要愿擠,總會有的”,現代達人們,將其杜撰為“時間如女人的乳溝,只要你擠,都會有的”。有了這些神助的言論,老板們當然不會放過,這樣他們壓榨員工剩余價值就有憑據了嘛。加班吧,免費加,干好拉,我請大伙吃飯,要是不干的,卷鋪蓋,走人。
我們為什么需要加班,應該這班就是給人加的,你是人嗎?我是,那就是加吧,甭廢話!!
(注:本人文章均為原創,轉載請注明出處!20100615寫于深圳。)