選單

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

整理 | 鄭麗媛

出品 | CSDN(ID:CSDNnews)

提問:你印象中的程式設計師工作是怎樣的?相信會有人回答:敲一天的程式碼、修一天的 Bug,日復一日的披星戴月吧——一直以來,這就是我們對程式設計師的傳統印象。

但事實似乎與我們想象的有些出入:據 DevOps 公司 Software 的第一份程式碼時間報告顯示,大多數開發人員每天的編碼時間根本就不到一小時。

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

每天編碼不到 1 小時,週三最高效

伴隨著軟體領域逐年激烈的競爭,全球各大技術公司每年在開發人員身上的投資越來越多,他們協調分佈在世界各地和跨時區的數百個專案和團隊,爭先為客戶創造最好的價值,只為引領行業的創新步伐。

在這過程中,還有很多公司“掉隊”了:工程團隊在開發過程中遇到障礙和瓶頸,將一個想法投入生產可能需要幾個月甚至幾個季度。究其根本,在於開發人員很難全神貫注地將時間全部用來程式設計:無盡的會議、不斷被同事中斷、等待流程透過的繁瑣…無法專注投入於程式設計的程式設計師,工作效率可想而知。

為此,Software 公司統計了全球社群中 25 萬多名開發人員的相關資料,得出他們平均每天的編碼時間為 52 分鐘——從週一至週五,工作中的編碼時間總共約為 4 小時 21 分鐘。

(注:Software 將編碼時間定義為在編輯器或 IDE 中積極編寫或編輯程式碼所花費的時間,且為了過濾掉兼職開發者,Software 的分析僅限於在過去 30 天中至少有 7 天編寫過程式碼的開發者。)

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

在這之中,每天編碼耗時超過 1 小時的開發人員僅有 40%,每天編碼時間超過 2 小時的僅佔約 10%。

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

除了真正花在編碼上的時間,Software 發現開發人員每天還會花費約 41 分鐘在其他程式碼工作上,例如閱讀程式碼、審查拉取請求和瀏覽文件等。

接下來,Software 還就編碼時間的主要發生時段,

分別

以一天和一週為維度做了進一步分析:

在一天中,只有 10% 的編碼發生在上午 9 點到 11 點之間,大約 45% 的編碼發生在下午 2 點到 5 點區間內,還有 12% 的編碼發生在工作時間之後的下午 5 點到晚上 7 點。

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

在一週之中,開發人員普遍會在週三達到一個效率高峰,平均編碼時間能達到 55 分鐘——同一資料在週五只有 46 分鐘。顯然,即將放假的週五是最不受歡迎的編碼工作日。不過這並不意味著開發人員週末就會完全“放飛”:Software 調查發現,大多數開發人員會在週末繼續編碼,週六和週日的平均編碼時間約為 18 分鐘。

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

若誠如 Software 調查結果所示,開發人員每天的編碼時間不足一小時,那他們剩餘的工作時間都哪去了?如上文所說,大多都被分佈在了許多其他事項中:規劃專案、審閱文件、開會統籌、協作討論。

每天敲程式碼不到 1 小時,程式設計師每天都在做什麼?

高效工程師:每天 100-150 行程式碼

當然,如果只用編碼時間或程式碼行數來評判一位開發者的工作效率,或許有些過於片面。

早在 2017 年,Google AdMob 全棧工程師 Raymond Farias 的一番發言就曾在開發者圈中引起巨大爭議:

“我的同事告訴我,根據以往的調查證明,一名高效的工程師每天能寫 100-150 行程式碼。我一開始嘲笑他的估計值肯定低了很多,結果我彙總了我一個月的程式碼資料進行求和,併除以 20(週末不上班)得出的平均數,居然真的等於 150 !!!”

為了驗證這一說法的真實性,CSDN 當時也在論壇上發起了相關話題討論:“以程式碼為主要工作的程式設計師,一天寫多少程式碼才算達標?”結果,徵集到的回答幾乎與 Raymond Farias 的說法沒有出入:

很多時候都在分析問題,檢視程式碼,寫程式碼越來越少了。

如果寫的話,基本上每天 100 到 200 行,但是更多的時候在開會、開會、開會。

真正優秀的程式設計師都拿著高工資,其本上不用怎麼寫程式碼,如果你還拼命在寫程式碼,說明離“優秀”還有一段距離。

顯然,這一資料與人們傳統印象中的程式設計師相差甚遠,但事實就是如此:即便程式碼在精不在多,不能否認的是,依舊有很多公司並沒有有效部署其開發團隊,反而安排了太多的繁瑣會議和緩慢的審查流程,致使開發人員很難找到可以專心投入的編碼時間。

為此,Software 建議有這類現象的開發公司可從以下三個方面進行改變:

1、改善日常工作流程:查詢破壞團隊開發流程或阻礙開發人員效率的癥結所在,改進 DevOps 實踐以減少等待時間並改進日常工作。

2、讓 DevOps 視覺化:測量系統級 DevOps 指標,例如交付速度和後期返工等,瞭解推進過程中的障礙因素,減少會議和低效的稽核流程。

3、用資料持續改進:工程團隊應為改進工作預留開發時間和週期,以提高團隊生產力,包括償還技術債務、遷移、重構和重組。

最後想了解一下,你是否如文中報告所說每天編碼時間不滿 1 小時?你每天能寫多少行程式碼呢?

集虎卡,開鴻運!最高拆522元驚喜福袋!