整理 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
提問:你印象中的程序員工作是怎樣的?相信會有人回答:敲一天的代碼、修一天的 Bug,日復一日的披星戴月吧——一直以來,這就是我們對程序員的傳統印象。
但事實似乎與我們想象的有些出入:據 DevOps 公司 Software 的第一份代碼時間報告顯示,大多數開發人員每天的編碼時間根本就不到一小時。
每天編碼不到 1 小時,周三最高效
伴隨著軟件領域逐年激烈的競爭,全球各大技術公司每年在開發人員身上的投資越來越多,他們協調分布在世界各地和跨時區的數百個項目和團隊,爭先為客戶創造最好的價值,只為引領行業的創新步伐。
在這過程中,還有很多公司“掉隊”了:工程團隊在開發過程中遇到障礙和瓶頸,將一個想法投入生產可能需要幾個月甚至幾個季度。究其根本,在于開發人員很難全神貫注地將時間全部用來編程:無盡的會議、不斷被同事中斷、等待流程通過的繁瑣…無法專注投入于編程的程序員,工作效率可想而知。
為此,Software 公司統計了全球社區中 25 萬多名開發人員的相關數據,得出他們平均每天的編碼時間為 52 分鐘——從周一至周五,工作中的編碼時間總共約為 4 小時 21 分鐘。
(注:Software 將編碼時間定義為在編輯器或 IDE 中積極編寫或編輯代碼所花費的時間,且為了過濾掉兼職開發者,Software 的分析僅限于在過去 30 天中至少有 7 天編寫過代碼的開發者。)
在這之中,每天編碼耗時超過 1 小時的開發人員僅有 40%,每天編碼時間超過 2 小時的僅占約 10%。
除了真正花在編碼上的時間,Software 發現開發人員每天還會花費約 41 分鐘在其他代碼工作上,例如閱讀代碼、審查拉取請求和瀏覽文檔等。
接下來,Software 還就編碼時間的主要發生時段,分別以一天和一周為維度做了進一步分析:
-
在一天中,只有 10% 的編碼發生在上午 9 點到 11 點之間,大約 45% 的編碼發生在下午 2 點到 5 點區間內,還有 12% 的編碼發生在工作時間之后的下午 5 點到晚上 7 點。
-
在一周之中,開發人員普遍會在周三達到一個效率高峰,平均編碼時間能達到 55 分鐘——同一數據在周五只有 46 分鐘。顯然,即將放假的周五是最不受歡迎的編碼工作日。不過這并不意味著開發人員周末就會完全“放飛”:Software 調查發現,大多數開發人員會在周末繼續編碼,周六和周日的平均編碼時間約為 18 分鐘。
若誠如 Software 調查結果所示,開發人員每天的編碼時間不足一小時,那他們剩余的工作時間都哪去了?如上文所說,大多都被分布在了許多其他事項中:規劃項目、審閱文檔、開會統籌、協作討論。
高效工程師:每天 100-150 行代碼
當然,如果只用編碼時間或代碼行數來評判一位開發者的工作效率,或許有些過于片面。
早在 2017 年,google AdMob 全棧工程師 Raymond Farias 的一番發言就曾在開發者圈中引起巨大爭議:
“我的同事告訴我,根據以往的調查證明,一名高效的工程師每天能寫 100-150 行代碼。我一開始嘲笑他的估計值肯定低了很多,結果我匯總了我一個月的代碼數據進行求和,并除以 20(周末不上班)得出的平均數,居然真的等于 150 !!!”
為了驗證這一說法的真實性,CSDN 當時也在論壇上發起了相關話題討論:“以代碼為主要工作的程序員,一天寫多少代碼才算達標?”結果,征集到的回答幾乎與 Raymond Farias 的說法沒有出入:
-
很多時候都在分析問題,查看代碼,寫代碼越來越少了。
-
如果寫的話,基本上每天 100 到 200 行,但是更多的時候在開會、開會、開會。
-
真正優秀的程序員都拿著高工資,其本上不用怎么寫代碼,如果你還拼命在寫代碼,說明離“優秀”還有一段距離。
顯然,這一數據與人們傳統印象中的程序員相差甚遠,但事實就是如此:即便代碼在精不在多,不能否認的是,依舊有很多公司并沒有有效部署其開發團隊,反而安排了太多的繁瑣會議和緩慢的審查流程,致使開發人員很難找到可以專心投入的編碼時間。
為此,Software 建議有這類現象的開發公司可從以下三個方面進行改變:
1、改善日常工作流程:查找破壞團隊開發流程或阻礙開發人員效率的癥結所在,改進 DevOps 實踐以減少等待時間并改進日常工作。
2、讓 DevOps 可視化:測量系統級 DevOps 指標,例如交付速度和后期返工等,了解推進過程中的障礙因素,減少會議和低效的審核流程。
3、用數據持續改進:工程團隊應為改進工作預留開發時間和周期,以提高團隊生產力,包括償還技術債務、遷移、重構和重組。
最后想了解一下,你是否如文中報告所說每天編碼時間不滿 1 小時?你每天能寫多少行代碼呢?
參考鏈接:
https://www.software.com/reports/code-time-report






