“程式設計師、開發者、軟體工程師們他們每天到底在幹什麼?到底花多少時間寫程式碼?”這個問題你是不是也有點好奇呢?近日,Retool 就對 600 名軟體工程師(包括 ICs 和管理人員)做了個調查,報告結果令人吃驚。
執行別人的程式碼
據參與此項調查報告的工程師們表示,“多半時間我們都在執行別人的程式碼”。
他們表示,自己所能想像到的軟體工程師生命中的某一天,通常會想到在文字編輯器中編寫全新的程式碼、構建新功能、修復 Bug 等。但在 2022 年,絕大多數軟體工程師都在執行其他人的程式碼 —— 建立在開源庫之上,或重用公司程式碼庫其他部分或線上教程中的程式碼。
近 90% 的人認為開原始碼必不可少
眾所周知,近年來開源不斷受到追捧,熱度一直很高,但開原始碼對現代程式碼庫至關重要的程度卻令人驚訝。在此次調查的工程師中,近 90% 的人(29% 的人表示非常重要,54% 的人表示比較重要)認為開原始碼對他們的日常工作來說至少是必不可少的。此外,僅不到 1% 的人自信地表示這不是必要的。
超 80% 的開發者每月至少 1 次將開放原始碼引入程式碼庫
Frequency with which engineers pull open-source code into codebase
如果在 Node 上構建應用程式,從技術上講,這就其實就是一直在使用開原始碼,但依賴性比這更深。該調查資料顯示,超過 80% 的開發人員每月至少一次(通過 StackOverflow 或其他方式)積極地將開放原始碼引入他們的工作,近 50% 的開發人員每週至少一次,初級工程師的比例略高於高階工程師。
初級開發者比高階開發者複製更多的程式碼
此前,就有StackOverflow 模因資料顯示,開發人員正在複製大量程式碼,不僅來自網際網路,還包括複製內部程式碼片段及重用自己編寫的程式碼。而此次調查報告的資料也恰恰應證了以上結論。值得關注的是,初級開發人員比高階開發人員複製更多的程式碼,這與使用開放原始碼的形態是一致的。
開發者更希望少花時間做測試更改
如今,隨著 Vercel、Netlify 等工具大量湧現,部署應用程式卻反而變得越來越複雜。與過去相比,軟體在世界上所佔的比例要大得多,這帶來了對正常執行時間和可靠性的期望,而這在過去可能並不存在。
通過對軟體進行更多的測試,發現整合測試需要幾個小時才能執行,且很難構建,需要假資料、模擬和存根。你不得不在不同的作業系統、黑暗和光明模式、瀏覽器,甚至不同種類的 Mac 晶片中來回切換去探索。
隨著這些構建過程變得更加複雜,尤其是有更多的測試,軟體工程師將不得不把更多的時間花在等待機器執行上。比如,SQL 查詢在大型表上執行需要很長時間,資料庫同步很慢,構建一個完整的 repo 可能需要 20 分鐘:所有這些都會佔用寶貴的時間。
此次調查資料就顯示,軟體工程師真的更願意花更少的時間來測試更改,希望能花時間做的最重要的事情,這對個人貢獻者和管理者都適用。
日常面臨的最大挑戰:人為障礙
如果生活只是編寫程式碼,事情就會簡單一些。但在該調查中,軟體工程師們表示,人為的障礙,如專案方向的顛覆性轉變、程式碼審查延遲,或試圖找出誰擁有哪段程式碼,是他們每天面臨的最大挫折。
資料顯示,38% 的工程師表示,等待人員(例如等待程式碼審查、需求)是日常工作中的一個重要問題。特別是,程式碼從軟體工程師的大腦進入生產需要花費將近一整週的時間,這一資料可能與你的公司做得如何有關。
在“ICs 獲得單個 pull 請求程式碼審查的時間量”這一資料中,57% 的開發人員表示,通過程式碼審查獲得 pull 請求需要 4 個小時以上,26% 的開發人員表示需要一天以上的時間。
此外,有超過 30% 的開發人員表示,弄清楚誰確切擁有一段程式碼以及獲取上下文的相關需求可能需要半天以上的時間。可以預見,在大型公司中,延遲確定程式碼所有權的情況更為常見:員工人數超過 1K 的公司中,21% 的開發人員表示,確定誰擁有一段程式碼通常需要超過一個工作日的時間,相比之下,員工人數較少的公司,延遲確定程式碼所有權的情況不到 10%。
超 30% 的開發者希望花更少的時間招聘/面試
隨著軟體工程師人才的緊缺,很多公司都在積極吸引各類人才,但這項招聘負擔卻都落在了目前在職的工程師身上:面試、人際關係網或其他方面。
該調查資料顯示,超 30% 的開發者表示他們更願意花更少的時間招聘和麵試。
在大公司看到的同樣模式在這裡也適用:在員工超過 1K 的公司,幾乎一半(45%)的開發人員希望在招聘上花費更少的時間,這比員工少於 250 人的公司的開發人員高出 50%。
這種差異可能純粹是因為公司規模較大的組織可能會有更長、更艱鉅的面試過程,但在絕對規模之外,增長率可能會在這方面發揮重要作用。快速發展的公司需要快速僱傭工程師,而且沒有那麼多的員工來承擔日益增加的面試和招聘負擔。
68% 的人發現在辦公室工作效率更高
受到疫情的影響,全球企業都在調整辦公節奏。此次調查資料也顯示,許多開發人員發現自己在辦公室工作效率更高,至少在一定程度上是這樣。
在有全面辦公室政策(即不允許遠端)的公司工作的軟體工程師說,他們覺得親自工作效率更高(68%)的可能性是在沒有全面辦公室政策的公司工作的軟體工程師(34%)的兩倍。
此外,調查還發現,工程師平均每週只有大約 10 小時的“深度工作”時間。這個結果也是由於上面提到的干擾項:面試、等待程式碼審查、測試和構建,甚至弄清楚誰擁有什麼程式碼。事實上,初級工程師的平均時間要多得多,可能比高階工程師多 20%,因為他們需要處理的管理內容更少。
綜述
隨著企業對開源軟體的日益依賴,在促進軟體技術開發的同時,也會出現不少缺點和擔憂。特別是在開源規範尚未完全跟上當今軟體生態發展節奏的前提下,來討論開發者們所面臨的問題是更具重要意義的。
所以,以上調查報告,可以很好的讓我們瞭解到軟體工程師們、開發者們在日常時間管理方面,日常所面臨的一些問題,這對構建整個開源生態健康發展也有很好的考察意義。也歡迎廣大開發者對該調查結果發出自己的觀點,在留言區評論互動。
點選檢視完整報告:https://retool.com/reports/st...