你的老板會因為你拼命編寫代碼而感謝你嗎?
程序員熱衷于長時間地工作。我想說的是,你就承認(rèn)吧,你的工作/老板并沒有讓你這樣做,你自己要這樣做而已。當(dāng)然,我知道,也許并非所有程序員都喜歡長時間的編程。不過肯定的是,隨著加班成為業(yè)內(nèi)的普遍現(xiàn)象,至少一半的程序員必須喜歡加班,不是嗎?
我早已聽到以下這類借口。“不,不是那樣的,我們只是喜歡炫酷的技術(shù)活,而且不想遺留未解決的問題。實際上,加班是一件好事,它讓我們變得出色!”
我認(rèn)為,你不能只見樹木,不見森林。從某個角度來說,你這樣做并非為了自己,而是為了“某個人”。無須質(zhì)疑,他也許是個高尚的人,但你并不是他的奴隸。從其他角度來說,你有多少次加班,是為了解決問題,研究新技術(shù),編碼實現(xiàn)某些東西,以及在截止時間之前完成任務(wù)?但是,你在業(yè)務(wù)上是機智過人的程序開發(fā)者,你在幫助公司獲得成功。公司管理者已經(jīng)向你說明了公司的經(jīng)濟狀況——必須這樣做,公司依靠你。我想說的是,除非這個管理者現(xiàn)在就在你旁邊,半夜2點還在陪你 聊天,否則他的話將一文不值。
讓我來講述一個朋友曾經(jīng)跟我說過的故事。這個故事是關(guān)于一個天才程序員的,姑且叫他John吧。
John是一個百萬程序員當(dāng)中才出現(xiàn)一個的超級明星。他理解和編寫代碼的能力高超,工作效率是其他任何人的20倍。有一天,公司拿到了一項短交期的大項目。客戶提供了一本厚得讓所有人沮喪的規(guī)格說明書。John出手相助,他把說明書帶回家,此后三天沒有人有關(guān)于他的消息。他回來上班的時候,樣子十分憔悴,但他看懂了整本說明書并完成了項目的基本框架。除了一小部分不可能完成之外,說明書的其余部分,甚至連客戶自己也不甚了解的需求,John也完成了。真讓人吃驚!
當(dāng)我第一次聽說這個故事時,感受頗深,我問了第一個問題“那john現(xiàn)在何處?”我朋友回答——“他死了,生活太艱難了!”或許用編程過勞死來形容更加合適。這個故事令人意外的是——John才30歲而已。
程序員從分享死亡競賽故事來獲得反常的快樂。甚至當(dāng)我們帶著厭惡的情緒去這樣做的時候,這種厭惡也帶著一絲得意,以此慫恿同事去做得“更好”。但這有點像那些穿著短褲的家伙,他們的短褲短到你都看得到他們的內(nèi)褲;也有點像一些把抽煙當(dāng)時尚的人,他們和他們的朋友覺得這很酷,其他人卻覺得愚蠢。
使糟糕的情況更糟
我可以理解偶爾付出一些額外努力以及一兩天加班到半夜的必要性。但是,當(dāng)偶爾變成經(jīng)常,當(dāng)老板不再因為你的努力而經(jīng)常感謝你,而是習(xí)以為常時,我們就遇到了麻煩。老板希望程序員經(jīng)常加班,這不僅是你的悲哀,也是整個行業(yè)的。人類就像狗一樣,非常容易受到正面和負(fù)面強化的影響。整個行業(yè)的發(fā)展受到長年因過度加班而死亡的悲劇影響,直到某個階段,在那個階段甚至還獎勵這種行為。我們每次陷入長時間的爭論中,都持續(xù)消極地加劇了這種趨勢。
這不能幫助我們管理團隊。你只需要讓一個人做主,其他人遵守。內(nèi)疚帶來平等——“我們不能讓我們的伙伴獨自去做困難的事情,我們得幫幫忙”。遵守的人越多,那些拋下同伴的人壓力就會越大,直到整個團隊半夜里聚在一起喝可樂,吃披薩。但他們?nèi)绾稳菁{一個同樣的人進入他們的世界,因為在這里也有一個因特立獨行而著名的程序員。當(dāng)我們還是學(xué)生時,我們樂于把所有事情都推給某個人處理,然后在校內(nèi)做我們想要做的事;但當(dāng)我們走上工作崗位時,一切都要靠我們自己。真讓 人困惑。
有趣的是,有時候這些大量的努力甚至并沒有得到正常合理的追蹤記錄,好像它反而讓項目看起來很糟糕一樣。所以他們“作假帳”,正如客戶只關(guān)心每個人每周工作40小時(或者他們拿的是40個小時的工資),也許還會關(guān)心項目在目前的進度,但他們從不在意小組每個成員花費在項目上的另外40個小時。好吧,或許他們會在“第二套假賬”中追蹤記錄的團隊成員的真正努力。雖然會計會因為此類造假而鋃鐺入獄,但在IT業(yè)內(nèi),沒有人會反對這種造假的要求。
可接受的進度成果
大多數(shù)敏捷開發(fā)過程都會就可接受的開發(fā)進度進行討論。不過,我也見過有些甚至自認(rèn)為靈活的團隊會花幾個小時的時間坐下來一起討論交流如何讓程序更加高效合理,等等,你懂的。盡管團隊成員的思維依舊敏捷,你卻不敢說出其他東西。
每當(dāng)我想起這東西,我總想到律師。你就像一個剛?cè)腴T的律師,付出了大量的努力和時間,這是你在這個行業(yè)中獲得成功的常規(guī)途徑。沒有一個程序員想要跟律師做比較,但情況經(jīng)常很相似,除非你不希望跟程序開發(fā)人員一樣通過長時間的加班取得進步(就跟律師一樣,除非你在4大咨詢公司打工,也可以成為一名律師)。所以,律師跟程序員,哪個是呆子?
關(guān)于一周工作時間超過40小時導(dǎo)致生產(chǎn)力下降的研究呈現(xiàn)出令人不安的規(guī)律性。作為程序員,如果你的創(chuàng)造力下降了,你的失誤就會增加,你就會遺漏現(xiàn)存的問題,等等;直到到達某個階段,這個階段中,你做錯的東西比做對的東西還要多。當(dāng)你花了很多的時間在同樣的活動中時,我是否應(yīng)該特別提到健康問題。關(guān)于飲食,你只能靠可樂存活很長一段時間——可憐的John甚至活下來不到40小時。
你現(xiàn)在能清楚我在反對長時間的工作和面臨死亡威脅的行軍了嗎?你的睡眠時間和睡眠質(zhì)量達標(biāo)了嗎?或許最近某一天我會告訴你我如何收到叫醒電話(wake up call),這是一個有趣的故事。把貓趕在一起,很容易與在相同的方向下讓程序員取得預(yù)期的成果這種情況相比較,這是我對我們的人(程序員)又愛又恨的地方。但我希望過段時候后,所有聰明的程序員要一個明確的立場,堅決消除十分糟糕和違背生產(chǎn)力的業(yè)內(nèi)趨勢之一。正如我所提到的,聰明的程 序員不喜歡長時間工作,也不會因為迫于壓力而加班,他們把更多的時間用于享受生活。