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