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