在開始任何其他文字之前,首先有必要正視一個根本現實:國內外軟件開發的水平是有差距的。
這一結論的最直接證據是每一輪新技術的發起者基本上都是國外的人或公司:
從方法論(CMMI,敏捷等)到各種框架(近來很熱的Hadoop等)再到新的編程語言都是如此。
總的來看這類差距似乎可以概括為“原創的缺失”,大多時候,我們只是處在一種“跟隨者”的角色上。
RUP出來后我們跟誰RUP,敏捷出來我們跟誰敏捷,云計算出來后我們跟隨云計算,大致如此。
年紀小的時候,會單純的以為造成這種局面的主要原因是個人技術能力不足或努力不夠。
但現在想來,這反倒是次要原因。
單以單兵能力來看,國內外的程序員群體未必就有很大的差距。
這點可以反過來看,那么多開源的庫,看過代碼后,那個是國內程序員看不懂并完全寫不出來的?
如果說既能看懂,有足夠的時間也可以自己寫出來,那么大致上就不是個人技術能力的問題。
這樣事情就變的有些微妙,我們也就需要在更高的視點上審視一下促成一件事情的因子。
一件事情的成敗大致可以用四個維度去考量:
有沒有意識去做 --》創新
有沒有能力去做
有沒有時間去做 --》環境
有沒有動力持續去做 --》意愿和環境
排除第二點能力之外,其余三點可以大致概括為:勇為天下先的意識(創新)和創新得以生長的泥土(意愿和環境)。
這幾者彼此影響,不可分割。
一提創新,很多人可能會想到其瓶頸是沒有想法,進而認為差距的主要原因是意識問題。
但這很可能是錯的,就我自身的觀感,程序員這個群體里,現實的情形應該是想法很多,但受種種制約,實踐下來的不多。
現實的需要激發了創新,也提供了實踐創新的場所和養分,脫離實際需要的創新是走不遠的。
這似乎只能寄希望于本土軟件企業的崛起,為程序員提供相應的環境(時間+實踐創新的場所),
接下來如果程序員這個群體再有實踐自身追求的意愿,那么事情將會改觀。
國內外差距的一個間接證據是國內軟件開發的工程化的程度過于薄弱。
軟件這東西過度工程化是不行的,但不工程化也一定是不行的。
先不論CMMI這種大型方法論,就說最簡單的軟件工程數據收集。
在這點上國外比較容易找到各種數據,比如下面這樣的表格:
即使是在日本,也有一個叫IPA這樣的機構在定義各種指標,并持續收集數據。而國內似乎還沒人做這類事情。
這樣的話對軟件開發個體而言,負面影響可能并不直觀,但從整體來看卻也是一種切切實實的差距。
這點上很難靠個人來推進和改善,需要有一種組織(軟件協會?)來持續推進才有可能改觀。
-
軟件開發
+關注
關注
0文章
624瀏覽量
27390 -
工程師
+關注
關注
59文章
1571瀏覽量
68592
發布評論請先 登錄
相關推薦
評論