在近期的一次會議上,有高層談到以前在中國以爲本身作得很牛,但與美國同行接觸後卻發現與人家存在很大的差距,這一點我在外企工做時也有過一樣的體會。真正與外國同行接觸後纔會知道什麼是差距,在這篇文章中我從軟件開發工程師的角度以「痛點」的形式來談一談我所認爲的差距。算法
技能之痛
編程
至關數量的軟件開發工程師(後面簡稱爲工程師)認爲除了與編碼相關的內容外,其餘技能都不重要。在這種意識的引導下,很容易出現的一個廣泛現象是技術能力不錯,但開發能力卻不行。這種現象的另外一種表現是:單幹能夠,合做不行。編程語言
技術能力是指個體對某些技術知識掌握的深度和廣度,而開發能力除了包含技術能力外,還涵蓋個體在項目運做過程當中所需掌握的其餘能力。
ide
高效的團隊必定離不開經過知識管理將個體所掌握的知識經過分享而沉澱下來。分享途徑無外乎經過必定形式的文字和(或)圖,這就要求工程師掌握使用象Word、PowerPoint、Excel、Visio(和UML)這類工具的基本能力,並具有良好的寫做與表達能力。表面看來這種能力與編碼能力無關,於是也得不到工程師的廣泛重視,也所以成了一個痛點。其實,寫做與表達能力與編程水平息息相關,由於它們都在考驗咱們的邏輯思惟和概念能力。忽視掌握必要工具軟件的工程師難道覺得編程語言是知識分享的萬能工具?
工具
個體具有良好的溝通能力是項目順利運做的基石。不良溝通表現爲:工程師在團隊合做中更多采用被動詢問而非主動彙報、不會辯論、對於他人指出的錯誤表現得「自尊」和狡辯而非感謝或認可、對於被邀請的各種審查活動(如設計審查、代碼審查、文檔審查)不是積極響應而需別人催促。在團隊中,若是技術管理者不能很好地引導,個體溝通能力的缺少很容易在團隊中引起「一言堂」或「無政府主義」問題,工做效率低下則是必然。
學習
專業精神之痛
網站
很多工程師對於本身的職業缺少精神上的追求,工做起來不求專業,只求「代碼能工做就行」。這類工程師容易將經驗與資歷等同,覺得工做年份越長就越有經驗,實則否則。工做年份越長資歷是越老,但若是專業水準沒有在過程當中不斷提升的話,所得到的經驗極可能趨零。編碼
什麼是專業?專業是指咱們應以業內所普遍達成的共識去從事軟件開發活動。這裏的「業內」並不是只指「國內的」,而是指「國際的」;「專業」也並不是單指技術內容(好比,編程語言、算法等),還包含軟件項目運做中的其餘各個方面(好比,開發方法、建模工具、流程、質量保證手段等)。要作到專業作事必定離不開不斷地學習,只有這樣才能瞭解行業的動向。
spa
軟件行業雖然沒有「銀彈」,但仍存在很多有效改善開發質量與效率的方法。只有抱着專業作事的態度去工做,咱們纔有可能去實踐這些方法,並在實踐過程當中思考這些方法的內涵與不足,進而爲本身的工做量體裁衣。千萬不要認爲「反正業內沒有銀彈,我要去學那麼多方法幹什麼?」
設計
強調專業作事的根本目的,是使咱們的作事方法更科學。與我所瞭解的美國、俄羅斯這些國家的工程師相比,我國工程師的專業化還有很長的路要走。
速度之痛
除非你徹底承認中國近些年以GDP爲導向的經濟發展策略,不然極可能得反思一下軟件行業所鼓吹的「惟快不破」策略,尤爲是互聯網領域。
在商業環境中,「快」能得到不少競爭優點,這毋庸置疑。工程師的價值雖得(最終)體如今商業產品上,但千萬不要忘記了咱們始終是一名工程師,在實現商業價值的道路上不斷提升本身的專業水準不管如何都不該被忘記。工程師始終要明白,公司的發展與自身的職業發展並不是徹底統一。若是在公司的發展過程當中咱們的專業水準並無「水漲船高」,那除了說明咱們在吃老本外,還代表咱們極可能是在「拖後腿」。在這種情形下,即便公司蒸蒸日上地給咱們發薪水,但從個體職業發展的角度說來,公司發展其實與咱們「一毛錢關係都沒有」。我想不致於有人認爲本身之後只會在這一家公司幹吧!若是真是那樣想,你能保公司幾十年存在?屆時萬一得無奈地離開公司,單薄的專業水準又如何在人才市場與他人競爭?
對「惟快不破」的誤解所帶來的不良後果是,有些工程師爲了快速實現軟件功能而忽略了專業精神。他們一味地爲了速度而築下高額的「技術債」,甚至在「速度」的幌子下過得問心無愧。
若是將「惟快不破」改成「惟效率與質量不破」或許更不容易造成誤解。一說到「快」,給人的感受每每是投入更多的時間就能達成目的,容易讓人忽視作事的方法與效率。與之不一樣的是,強調效率須要咱們考量投入時間的產出比,且暗示作事的方法只有對路才能得到效率;強調質量則提醒咱們儘可能別作「豆腐渣」之事,而這隱含的內容是咱們必須專業作事,即便欠下了「技術債」它也時刻提醒着咱們那是必定要還的。
軟件行業的長期被動加班成爲了速度之痛的一個縮影,它讓很多工程師過着有工做沒生活的日子。軟件行業要避免偶爾、短時間的加班是不可能的,但長期的被動加班絕對是個問題。不重視效率與質量的「勤勞」除了是在浪費外,更是一種透支未來的短視行爲。
視野之痛
視野之痛體如今工程師在從事技術工做時,忽視瞭解國外的發展情況。他們由於不知道同質開源項目的存在而走上「從新發明輪子」的道路,甚至發明出「三角形的輪子」;也由於對英文資料缺少閱讀的耐心而不去了解相關國際標準、訂閱開源項目的mailing list和專業網站的newsletters等。
狹窄的視野很容易讓人自滿,覺得軟件開發就是那麼簡單,最後致使成長慢、意識與技能「不入流」。
以個人經驗來看,工程師若是不能很好地閱讀英文資料則要達到高技術水平實在很難,視野狹窄也恐成必然。另外,編程活動中的命名環節其實對咱們的英語水準提出了必定的要求,否則很容易動名詞不分而寫出只有本身容易讀懂的程序,或常出現命名時找不到合適的單詞去精確表達程序意圖。
持續發展之痛
以上各痛點的最終結果又給咱們帶來了持續發展之痛。其表現爲:少有人會在項目中經過文檔提高開發效率;鮮有人會持續改善軟件的設計質量;大部分人只關注短時間完成工做,而忽視短時間行爲所帶來的高額隱性成本。
持續發展之痛使得工程師很難輕裝上陣,工做精力過多花費在重複、低級的雜事上,而非用於學習和思考。最終結果是將工做變成了「青春飯」,辛苦但卻看不到美好的將來。
全部痛點能夠歸結爲意識的陳舊,或雖有意識卻無力於將其轉變爲能力!(注:意識是一種行爲,而非能力)
固然,這些「痛」與我國的社會大環境有着緊密的聯繫。但不管是怎樣的環境,總有人作得出色,或許他們身上有咱們所沒有的內容。是什麼?只有本身去想、去悟,成長之痛! 即便大環境好了、你們都很「專業」,職場的「金字塔」老是擺在那的。誰能向上走?走多遠?全靠我的,沒有shortcut!只不過每一個人都平等地擁有向上走的機會與權力!