It行業從業十幾年,雖然接觸的人并不多,但算上網絡上有點交往的人,也不算太少,閱讀過無數代碼,很容易得出這樣的感悟,國內it行業能說的人太多,能做的人太少,能說大意就是能說會道,說起來頭頭是道,從架構到體系到模塊到接口都能說得很專業,但實施起來就不行,不但架構做不好,接口定義不清,就連小小模塊也未見得可搞定,這樣的人實在是太多,之前一直以為一個項目組多幾個人總能加快點速度,現在終于明白,一個項目組加幾個不合適的人不但不能加速反而要降速,甚至直接導致項目開發失控、失敗。關鍵模塊如果讓一個不稱職的人去負責,最終該模塊可能需要耗費核心人員更多時間去修改,甚至要重寫,輕則導致項目延時,重則導致項目失敗。
實施一個成功的it項目(只說技術不說市場),概括起來就是一句話:找合適的人做合適的項目。說起來容易做起來難啊,每個人都有他的領域,如果找來一個擅長a領域的讓他做b領域的項目也未必做得好,雖然有的人學習能力超強,但總歸是需要時間積累經驗的。見過聽說過很多開發失敗的例子,莫不如此,曾幫人家優化一個電信計費項目,原實施的人只會用數據庫,所有的計算全用數據庫實現,速度比其對手慢一個數量級以上,將計算需要的數據預裝入內存,之后全在內存里面查找計算,速度一下提高了上百倍,修改后速度領先其對手好幾倍,其實這個修改很容易,只要幾天時間就搞定了,還包括熟悉他們的數據及規則。 還幫別人看過一個棋牌的項目,原項目組十幾個人搞了1年多,整了40多萬行代碼,結果bug不斷,一直不能穩定運行,項目組無人能搞得定,我看了之后下的結論是重寫,他們傻眼了,還以為改一個項目的時間肯定要少,畢竟寫了那么多代碼,他們那些外行哪里知道,修改一個漏洞無數的工程哪有重寫快啊,這是典型的找了一群不恰當的人做了一個不恰當的項目,幾百萬投入打了水漂,要是讓一個有能力的人設計把關,他那棋牌項目100萬足夠開發得出來了。
剛畢業那會做項目的時候帶過幾個水平較差的手下(都是俺領導招的人),他們最常說的話是“優化”,我把某某地方“優化”了一下,呵呵,外行要聽到這個還以為真的是優化呢,其實很多時候他只是改寫了一下,是不是算優化還值得商量,大多數時候都算不上優化,有的時候還改錯引入了更多bug。對高手來說更喜歡說重構,我把某某模塊重新設計了一下,以前模塊有哪些缺陷,重新設計一下之后這些缺陷就不存在了,還有某某好處,等等,高手著眼于大局,低手只能看到一個小角落,高手優化關鍵之處,低手優化無關緊要之處。看豆瓣網技術發展,就是一個不斷重構的過程,看qq從98年開始到現在的蜂鳥內核,大的重構就3次了,完全重寫3次了。最近迅雷終于官方承認v6開發失敗,我之前在群里表達過我的觀點,我估計他們v6是開發失敗了,所以一直以v5頂著,現在等到v7出來終于承認了,這種自詡市值超100億美刀的公司這么長時間的開發還能失敗,就不要說小公司小團隊了,見光死的項目很多,未見光死的項目更多。
國內真正懂得開發的老板很少,大多數老板覺得一個人開5w 10w的月薪太高了,這個待遇找1w的能找好幾個呢,其實他們不知道,it行業一個重要的人能頂100個普通的人,甚至不可比較,因為一個普通的人去做一個項目可能根本不能完成,成功為0,1:0這個比值是無窮大啊,可惜等老板們失敗了幾個項目之后才能悟出這個道理,it項目做得好和做不好的差別不是差一點的問題,而是1和0的問題。俗人總是忙忙碌碌,天天維護自己前一天制造的bug,看起來很敬業,高手總是懶懶散散,因為100天后可能出現的問題都已經了然于胸,于是整天看起來無所事事時,不懂的老板很可能青睞于前者而打壓后者。也正因為能說的人太多,懂行的老板又太少,所以使得整個行業充斥著浮躁和急功近利,很多關鍵職位其實只是個鸚鵡在頂著,有能力的人被壓制,悲哀啊。千里馬難找,伯樂更難找啊。