程式設計師的工作不能用「生產效率」這個詞來衡量

2021-06-16 22:46:48 字數 1539 閱讀 6068

程式設計師的工作不能用「生產效率」這個詞來衡量

employee-productivity

通過反覆的交談,bill caputo最終說服了我,讓我相信了一些不可思議的事情。這些事情改變了我整個看問題的方式,也讓我重新思考如何更好的工作。

軟體開發中沒有「生產效率」。

幾乎正如10年前 martin fowler 發現的, 用生產效率來衡量軟體開發工作沒有任何意義。原因就在於,它們不屬於同一範疇。換句話說,生產效率不具有作為衡量軟體開發工作的適用性。「今天創造了多少 **/軟體?」這是乙個沒有意義的問題。即使可以這樣測量,軟體開發工作上的生產效率也不能以任何有意義的方式估計出它的商業價值。

這是因為,軟體開發這種工作並不一定非要生產出 什麼東西。讓我來舉個例子:比如說,碰巧有兩個程式設計師分別在開發兩個完全一樣的專案,他們在同一天被分配了相同的任務。第乙個人,弗蘭克,回到電腦前,寫 出了乙個有1000行**的框架,完美的解決了問題。**規範書寫,全面測試,有詳細的文件描述部署和操作的流程。第二個程式設計師,皮特,轉身去了公園,在 **,他一邊喂鴿子一邊思考問題。大概在下午4:45分,皮特溜達回辦公室,刪掉了200行**,並部署了他的修改…問題就這樣解決了。

這兩個程式設計師,今天的「生產效率」誰的更高?答案是:這無關緊要。緊要的是,皮特解決了問題,同時為團隊消減了長期維護的成本。弗蘭克同時也解決了問題,但他因為生產了**,提高了維護成本,所以,(在其它方面完全等效的情況下)他的方案差一些。而把皮特稱作更有「生產效率」,則完全從實效性上扭曲了這個比喻。

我認為,優秀的程式設計師,他所做的事情應該是去除問題。而相對的則是生產出什麼。所以,技術上的生產產物,例**,文件,資料等,對於實現「去除問題」的目標來說,都是必要但有害的。這就是為什麼有時候,這最有效的解決方案是5分鐘的交流溝通。

對 這種思考模式最有力的支援:當你用這種思維去看待軟體開發後,很多棘手的、能看得到但無法測量的問題突然間變得很容易理解。例如,為什麼當程式設計師和他們的 客戶隔離開時會顯得缺乏效率。難道讓他們避免打攪不會提高工作效率嗎?答案是不會,按常理這會使他們更有效率…但也會造成他們更沒效率。因為他們的工作是 為客戶解決問題,與客戶的隔絕導致他們無法找到問題,確定問題。相反,跟有問題的人保持溝通能更有效的解決問題,甚至有時候你一天8小時手指根本不需要碰 鍵盤。

好的程式設計師和壞的程式設計師之間10倍之差的「生產效率」又是從何說起?每個人都說這是事實,但事實上沒有人能直接的測評。我們 的理論同樣能解釋這個問題。相比起工作效率來說,「解決問題」是一種更容易「調控」(金融詞彙)的東西,使得產生乙個數量級差別的效果很容易實現。解決問 題需要的是資訊和洞察力。你要麼有,要麼沒有。不需要原材料,沒有生產能力限制。並不是差的程式設計師打字速度慢。並不是如果他們努力就能做得更好。他們是缺 乏這種高效解決問題的眼界和必要的資訊。也許無法測量好程式設計師和差程式設計師在生產效率上的差別的原因就在於沒有東西可測量。

還有很多現象都可以用這個理論來解釋。如果你去找,一定能發現一些。最近我一直在蒐羅這方面的案例….試一試,看看這個理論是否也體現在你的工作中。每當發現自己在說提高「生產效率/工作效率」時,問問自己是否是在用正確的方式解決問題。銘記在心:如果不通過生產任何東西就能解決問題,那生產出的任何東西都是一種浪費。

[英文原文:

[中文原文:

程式設計師的工作環境與效率

很贊同 joel on software 中 bionic office一文所說,辦公環境需要比大部分員工的家中環境更舒適。否則老闆只能招聘哪些還住在簡陋公寓的員工,他們才有可能下班後情願留在辦公室繼續工作。我認為程式設計師的辦公環境的幾個條件 程式設計師的辦公桌最好可以併排坐下2人,以便pair ...

程式設計師必備的提公升工作效率的方法

最近一段時間,網際網路行業的996.icu新聞鬧得沸沸揚揚,很多公司都要求上班996,如此高強度的工作下必定是公司也給員工分配了足夠分量的工作量,並且當前網際網路行業競爭激烈,不加班幾乎不太可能,至少未來很長一段時間是如此,況且人生苦短,當然要留出點時間及時行樂啊。想要工作內容少,就不能保證高工資。...

程式設計師如何提高生產力,程式設計師如何提高工作效率

分享 我總結的提高程式設計師生產力的方法 被 打斷 是破壞程式設計師生產力的罪魁禍首。程式設計師在被打斷後一般不能做到立刻重新開始程式設計。被打斷之後繼續程式設計通常程式設計師需要重新看一遍 才能進入到程式設計的思維環境中,才能想起來被打斷之前的思維邏輯,再從被打斷的點重新開始。這個過程大概要花 3...