10x程序員:是神話還是現實?
曾幾何時10速是光驅的代名詞,而10速程序員也是當今軟件行業討論的熱門話題,我想在這方面分享一下觀點。
老實說,我也不知道10x程序員的確切定義,我認為它指的是超高效的程序員??赡懿粫成涞缴a率的10倍,而是達到接近或超過10倍的顯著水平。
基于我在為初創公司以及為企業提供大型軟件產品時所取得的一些成功,包括與一些***開發人員的合作工作經驗,我來分享一些關于這個主題的見解。
10x程序員
在功能,安全性,性能和可擴展性方面,與現代的軟件相比,20、30年前開發的軟件要簡單得多。另一方面,那時只有少數幾個庫或框架可用于實現功能。
因此,20 - 30年前編寫的軟件涉及編程方面的工作是相對少的,在該上下文中定義10x程序員相對容易。為
實現10x的同一組功能的核心編程工作量與常規程序員之間的差異,來看下圖所示:
當今的10x工程師
在進入細節之前,讓我們明確一點:軟件開發是一個復雜的過程,編程只是為現代軟件做出貢獻的細分領域之一。
隨著軟件的用量增加,特別是互聯網上,消費者和企業都已經大規模使用,軟件變得非常復雜,從頭開始構建產品可能顯得比較瘋狂。老實說,除非它是一個完全新的平臺或操作系統,否則開發現代軟件所需的核心編程與原有的工作相比并不那么強烈。
雖然編程知識和工作仍然非常重要,但構建優秀軟件(無錯誤,安全并可銷售)所需的工作量需要更細致的工程。
因此,在今天的背景下,10x的程序員可能不會在行業中帶來太多價值,但10倍的工程師會在開發過程中產生非常深厚的影響。
很好地利用工具
軟件開發是一個復雜的過程,涉及許多不同的工作。除了編碼之外,還涉及從記錄過程到格式化數據,從閱讀日志數據,到發送報告,從自動測試,到手動測試,從復雜調試,到手動調查問題等等的努力。
通過使用適當的工具與平臺(符合客戶預算與其他約束),可以***化提高工作效率。
編輯器
開發軟件涉及一個或多個編輯器,其中一些也稱為IDE(集成開發環境)?,F代IDE(比如Visual Studio或Eclipse)提供了一大坨的強大功能,可以使開發人員高效工作,但大多數開發人員都不知道這些功能怎么用起來。
流行的IDE有商業也有免費插件(如Resharper),這些都可以顯著提高開發人員的工作效率。除了IDE之外,其它編輯器如NotePad ++,MarkdownPad等在開發環境中也非常有用。
公有云和在線服務
使用第三方實用程序和在線服務,如讀取或搜索大型日志文件,HTTP調試程序,如Fiddler,構建與部署工具等。
有屬于自己的工具
10x工程師可以開發自己的工具集來執行重復的操作,而外部可能無法找到相應的軟件產品。
在很多情況下,軟件公司的企業主似乎并不想對開發人員的工具投入太多,但使用正確的工具箱可以實現驚人的生產力。
對于軟件開發人員來說,他們是最昂貴的人才,為他們花費正確的工具是值得的。
作為.NET開發團隊負責人,我按照***的.NET編碼實踐開發ASP.NET Core和Visual Studio入門模板幫助團隊提高了三倍的整體工作效率。
不重新發明輪子
軟件行業在過去三十年已經非常成熟。開發人員試圖通過編碼解決的幾乎所有問題都已經解決,并且可以作為API(作為二進制或Web服務)使用,其中一些是商業的,而另一些是開源、免費的。
此外,開源框架還提供了很大的靈活性,可以根據用戶的需要了解底層API行為或自定義。
能(連續)寫出精美的工程級代碼
編寫出色的軟件需要一個良好的架構,不僅要遵循良好的設計模式和原則,還要擅用現代基礎架構。精心設計的代碼不僅可以更快地編寫新功能,還要顯著減少錯誤。
然而,優秀的軟件工程是需要不斷改進的。
在我的職業生涯中,我在不少軟件項目中看到了大量低質量的代碼,技術債務不斷累加。
一個5年前開始的簡單項目充滿了劣質設計的丑陋代碼,需要20多人來處理開發周期(他們花80%的時間實際上是在修復bug)。
我發現,這種可怕情況背后的主要原因之一是人們的“恐懼”。
組織,尤其是企業實體,主要擔心變化。軟件開發在工具,框架和工程方面是一個的快速變化的學科,需要不斷挑戰才能到達正確的地方。
變化會讓人們害怕,但它并不像聽起來那么危險,尤其是在軟件行業(只要有合適的工具和人員)。但如果沒有按預期完成,那么項目將會在某一天被完全放棄,這不會花費太多時間~
作者:Ashraf Alam Mar
編譯:小謙
來源:https://dev.to/ashrafalam/10x-programmers-myth-or-reality--4ge5