为什么国内软件开发比国外要落后那么多

国内外软件开发上的差距与分析
服务器君一共花费了209.047 ms进行了5次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

在开始任何其他文字之前,首先有必要正视一个根本现实:国内外软件开发的水平是有差距的。这一结论的最直接证据是每一轮新技术的发起者基本上都是国外的人或公司,从方法论(CMMI,敏捷等)到各种框架(近来很热的Hadoop等)再到新的编程语言都是如此。

总的来看这类差距似乎可以概括为“原创的缺失”,大多时候,我们只是处在一种“跟随者”的角色上。RUP出来后我们跟谁RUP,敏捷出来我们跟谁敏捷,云计算出来后我们跟随云计算,大致如此。

年纪小的时候,会单纯的以为造成这种局面的主要原因是个人技术能力不足或努力不够。但现在想来,这反倒是次要原因。

单以单兵能力来看,国内外的程序员群体未必就有很大的差距。这点可以反过来看,那么多开源的库,看过代码后,那个是国内程序员看不懂并完全写不出来的?

如果说既能看懂,有足够的时间也可以自己写出来,那么大致上就不是个人技术能力的问题。这样事情就变的有些微妙,我们也就需要在更高的视点上审视一下促成一件事情的因子。

一件事情的成败大致可以用四个维度去考量:

  • 有没有意识去做?-->创新
  • 有没有能力去做
  • 有没有时间去做?-->环境
  • 有没有动力持续去做?-->意愿和环境

排除第二点能力之外,其余三点可以大致概括为:勇为天下先的意识(创新)和创新得以生长的泥土(意愿和环境)。这几者彼此影响,不可分割。

一提创新,很多人可能会想到其瓶颈是没有想法,进而认为差距的主要原因是意识问题。但这很可能是错的,就我自身的观感,程序员这个群体里,现实的情形应该是想法很多,但受种种制约,实践下来的不多。

现实的需要激发了创新,也提供了实践创新的场所和养分,脱离实际需要的创新是走不远的。这似乎只能寄希望于本土软件企业的崛起,为程序员提供相应的环境(时间+实践创新的场所),接下来如果程序员这个群体再有实践自身追求的意愿,那么事情将会改观。

国内外差距的一个间接证据是国内软件开发的工程化的程度过于薄弱。软件这东西过度工程化是不行的,但不工程化也一定是不行的。先不论CMMI这种大型方法论,就说最简单的软件工程数据收集。

在这点上国外比较容易找到各种数据,比如下面这样的表格:

代码行/天?最低值-最高值(典型值)
软件类型10,000代码行的项目100,000代码行的项目250,000代码行的项目
航空电子15-150(30)3-45(7)3-30(6)
应用系统120-2,700(450)30-1050(90)15-750(75)
命令与控制30-450(75)7-90(15)6-75(12)
嵌入式系统15-300(45)4.5-75(11)3-60(9)
公众因特网/系统90-1500(225)15-300(45)15-225(30)
内部内联网/系统225-2700(600)45-1050(120)30-750(90)
微代码15-120(30)3-30(6)3-15(4)
过程控制75-750(150)15-150(45)13-130(30)
实时系统15-225(30)3-45(7)3-45(6)
科学系统/工程研究75-1125(150)15-225(45)12-150(30)
套装软件60-750(150)15-150(30)10-120(30)
系统软件/驱动程序30-750(90)7-150(15)6-120(13)
电信软件30-450(90)7-90(15)6-75(7)

即使是在日本,也有一个叫IPA这样的机构在定义各种指标,并持续收集数据。而国内似乎还没人做这类事情。这样的话对软件开发个体而言,负面影响可能并不直观,但从整体来看却也是一种切切实实的差距。

这点上很难靠个人来推进和改善,需要有一种组织(软件协会?)来持续推进才有可能改观。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1620,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1620

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《JavaScript DOM编程艺术(第2版)》 基思(Jeremy Keith) (作者), 桑布尔斯(Jeffrey Sambells) (作者), 魏忠 (合著者), 杨涛 (译者), 王建桥 (译者), 杨晓云 (译者), 等 (译者)

《JavaScript DOM编程艺术(第2版)》内容简介:JavaScript是Web开发中最重要的一门语言,它强大而优美。无论是桌面开发,还是移动应用。JavaScript都是必须掌握的技术。W3C的DOM标准是开发Web应用的基石。已经得到所有现代浏览器的支持,这使得跨平台Web开发成了一件轻松惬意的事。《JavaScript DOM编程艺术(第2版)》是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。

更多计算机宝库...