當(dāng)人們在進(jìn)行一項體力工作時,你很容易評估他們工作的努力程度。你可以看到他們的身體動作,看他們流了多少汗水。也可以去看他們的工作成果:磚墻越砌越高,地上的洞越來越大。對努力工作的認(rèn)可和獎勵是人類一個非常基本的本能,這也是為什么我們對耐力運動如此著迷的原因之一。然而,在管理一些技術(shù)創(chuàng)造型的員工時,這種對體力上的努力工作的本能欣賞卻變成了一個問題。高效率的知識工作者通常看起來并不像是在努力工作。
早在2004年,我還是個工作在一家有線電視公司計費和配置系統(tǒng)的初級開發(fā)者。像所有的大型系統(tǒng)一樣,它由許多相對獨立的部分組成,分別由不同個人或小團(tuán)隊負(fù)責(zé)。模擬電視配置系統(tǒng)和數(shù)字電視配置系統(tǒng)幾乎是完全分開的,分別由不同的團(tuán)隊負(fù)責(zé)。
模擬電視團(tuán)隊已經(jīng)決定在早期的微軟Biztalk平臺上開發(fā)他們的系統(tǒng),由我們公司的四個伙伴和微軟的一個團(tuán)隊共同開發(fā),并負(fù)責(zé)在生產(chǎn)環(huán)境中運行。他們工作都非常努力,并且經(jīng)常工作到夜晚,甚至周末加班。每個人都會放下自己正在做的事情去幫助解決產(chǎn)品問題,經(jīng)常是幾個家伙圍在一張桌子周圍,提出哪里可能 會出現(xiàn)問題以及如何修復(fù)這些問題的建議。他們的工作氛圍非常活躍,僅憑這一點,任何人都能夠看出,不僅是整個團(tuán)隊,而是他們每一個人都真的真的非常努力工作。
數(shù)字電視配置系統(tǒng)開發(fā)團(tuán)隊卻是完全不同的。代碼大部分是由一個叫戴夫的家伙編寫的。我當(dāng)時是這個團(tuán)隊的一名初級維護(hù)開發(fā)者。起初,我在理解代碼的過程中遇到了很多麻煩,因為它并不是用一個很長的程序來包含所有的內(nèi)容,取而代之的是許許多多小的類文件和僅包含幾行代碼的方法。我的幾個同事都抱怨戴夫把代碼搞得過于復(fù)雜。但戴夫把我招致麾下,并建議我閱讀一些面向?qū)ο?a href="http://www.3532n.com/v/tag/1315/" target="_blank">編程方面的書籍。他教給我設(shè)計模式,SOLID編程原則以及單元測試。不久,我便開始能夠理解這些代碼,而且我越研究它就越欣賞它的優(yōu)雅設(shè)計。在生產(chǎn)環(huán)境中它周而復(fù)始的運行,沒有出現(xiàn)任何錯誤。代碼改變起來也相當(dāng)容易,因此,實現(xiàn)新的特性并不困難。單元測試則意味著要保證生產(chǎn)環(huán)境中盡可能少地出現(xiàn)bug。
這樣做的結(jié)果就是,我們看起來好像根本沒有努力工作。我每天下午5:30準(zhǔn)時回家,周末從不加班,我們也不會擠在一起去猜測一些失敗的生產(chǎn)系統(tǒng)可能會遇到的問題。表面上看起來就像是分配給我們的任務(wù)一定是比分配給模擬電視團(tuán)隊的任務(wù)容易得多。實際上,兩個團(tuán)隊的需求是非常相似的,只是我們擁有一個設(shè)計和實現(xiàn)地更好的軟件系統(tǒng),更好的支持基礎(chǔ)架構(gòu),尤其是單元測試。
管理部門宣布他們將根據(jù)個人的工作表現(xiàn)加薪,當(dāng)輪到我和老板談話時,他說只有給那些真正努力工作的人加薪才算是公平,而我們的團(tuán)隊看起來似乎并不太關(guān)心公司的發(fā)展,不能和那些犧牲了自己的休息時間來工作的人員去比較。
這家有線電視公司是一個非常少見的實驗室,你能夠?qū)玫能浖O(shè)計和壞的軟件設(shè)計、好的團(tuán)隊行為和壞的團(tuán)隊行為之間的效果有一個直觀的比較。大多數(shù)組織并不能夠進(jìn)行這樣的比較。你很難判斷那些汗如雨下、工作到深夜并在周末加班、一直奮斗在一線的家伙是展示了他們在做一件真正復(fù)雜的系統(tǒng)工作時的偉大承諾,還是只是表明了他們的失敗。除非你能夠負(fù)擔(dān)得起請兩個或者更多的競爭團(tuán)隊來解決同樣的問題,但是你永遠(yuǎn)也不會知道哪個公司會愿意這樣做。相反地,那些整天朝九晚五、坐在角落里、看似花費很多時間瀏覽網(wǎng)絡(luò)的家伙們呢?是只是因為他們非常精通編寫穩(wěn)定可靠的代碼還是因為分配給他們的工作比別人的更簡單?從常人的眼光來看,第一個家伙是在真正努力工作而第二個沒有。努力工作值得表揚,而懶惰卻是不好的,不是嗎?
我認(rèn)為努力工作的表象往往意味著失敗。在一個高壓,中斷驅(qū)動的環(huán)境下,通常是不能夠進(jìn)行高質(zhì)量的軟件開發(fā)的。長時間工作通常也并不是一個好主意。有時解決一個困難問題的最好的方式就是停止思考,出去散個步,甚至最好去睡個覺,讓你的潛意識去解決它。我最喜歡的書籍之一,是由20世紀(jì)一位領(lǐng)軍的英國數(shù)學(xué)家G. H. Hardy撰寫的《A Mathematician’s Apology | 一個數(shù)學(xué)家的辯白》,他在這本書里描述了他的日常生活:每天上午工作四個小時,然后看一整個下午的板球。他說一天中,超過四小時艱難的腦力工作是毫無意義并且徒勞的。
我想要對管理者說的是,應(yīng)該根據(jù)結(jié)果及可運行的軟件來評判人們的工作,而不是通過他們看起來的努力程度來判斷。與直覺相反,你最好不要和開發(fā)者們坐在一起,這樣你才能夠?qū)λ麄兊漠a(chǎn)出有一個更好的、不受常規(guī)或直觀指標(biāo)影響的了解。遠(yuǎn)程工作非常有好處,你只能根據(jù)產(chǎn)出來衡量他們的貢獻(xiàn),而不是簡單地看他們是否每天8小時都坐在桌前對著IDE噼里啪啦敲鍵盤,或者是否“熱情地”圍在彼此桌前提供“有效的”建議。
-
程序員
+關(guān)注
關(guān)注
4文章
956瀏覽量
30942
發(fā)布評論請先 登錄
芯盾時代SDP助力企業(yè)應(yīng)對核心機(jī)密泄露危機(jī)
程序員最常見謊言
堆和棧的區(qū)別
軟通國際亮相2025沙中開源與AI科技峰會
奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官
開鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會圓滿落幕!
飛凌嵌入式ElfBoard-常用編輯器之Vim編輯器
程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)
CY7C68013A無PID和VID,如何制作PDF?
如何在 樹莓派 上編寫和運行 C 語言程序?
零基礎(chǔ)入門:如何在樹莓派上編寫和運行Python程序?
Gemini Vision + Raspberry Pi 化身“數(shù)字導(dǎo)盲犬”?
基于XIAO ESP32C6的HA空氣質(zhì)量檢測儀設(shè)計
一名努力工作的程序員和懶惰的程序員的區(qū)別
評論