提高自己,迎接好的未来。


在开始任何其他文字之前,首先有必要正视一个根本现实:国内外软件开发的水平是有差距的。

这一结论的最直接证据是每一轮新技术的发起者基本上都是国外的人或公司:

从方法论(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://blog.csdn.net/leezy_2000

国内外软件开发上的差距与分析相关推荐

  1. 浅评ChatGPT在软件开发上的辅助能力(附GPT-4对比)

    01 背景 ChatGPT于去年正式公测后,凭借其强大的自然语言处理能力迅速获得业内广泛关注,特别是辅助软件开发上,初步表现出了令人满意的能力,然而正当业内积极探索引入ChatGPT后的新工作模式之时 ...

  2. 血淋淋的 BUG:波音在软件开发上错在哪里?

    到了 2019 年,新飞机还会从天上掉毁,是一件让人不可想象的事情.然而这样的事情,最近接连发生了两起. 去年 10 月,一架波音 737 Max 8 喷气式客机撞向印度尼西亚的爪哇海,造成 189 ...

  3. 血淋淋的BUG:波音在软件开发上错在哪里?

    作者 | Tina 编辑 | Natalie 到了 2019 年,新飞机还会从天上掉毁,是一件让人不可想象的事情.然而这样的事情,最近接连发生了两起. 更多优质内容请关注微信公众号"AI 前 ...

  4. 简谈socket在直播软件开发上的应用

    若大的互联网系统,本着去繁就简单的原则,可以把互联网系统拆分成物理层,数据链路层,网络层,传输层,会话层,表示层,应用层这七大模块.每层模块彼此之间就像积木一样,即不知晓互相的细节,却又层层依赖,组成 ...

  5. 论软件开发之后的发展趋向

    随着社会的进步和科技的发展,计算机越来越广泛的应用于社会的各方面.人们对计算机应用的需求越来越大,质量要求越来越高,这推动了计算机应用往大型化.复杂化发展.计算机应用的大型化.复杂化,对应的计算机软件 ...

  6. [转]软件开发项目计划编制过程

    本文转自:http://pm.csai.cn/contract/No209.htm及相关 来源:希赛网 作者: 卢琳生 [2005/04/27] 摘要 本文简要说明了软件开发项目的计划的要素.计划编制 ...

  7. 时代中的软件开发:基于BS架构的低代码

    编者按:本文对C/S架构与B/S架构做介绍与对比,分析为什么新时代下B/S架构的办公软件成为必然,再说说基于B/S架构的低代码平台,看看它在软件开发上展现了什么亮点. C/S架构与B/S架构的区别 C ...

  8. 爱奇艺Android客户端软件开发实战(全套)

    Android客户端软件开发_10.下载模块的流程分析以及详细流程图等.avi 141.2M Android客户端软件开发_11.多线程断点续传分析和流程图.avi 91.3M Android客户端软 ...

  9. SNF软件开发机器人产品白皮书

    软件开发机器人 产品白皮书 使用说明书 模块名称:软件开发机器人 模块编号:12 项目负责人:王金斗 所属部门:技术中心 文档编制: 编制日期:2018-02-02 文档审核:王金斗 审核日期: 文档 ...

最新文章

  1. Beautiful Subarrays (01字典树 瞎搞)
  2. display 的 32 种写法
  3. a 标签中调用js的几种方法
  4. f12控制台如何查看consul_如何打印consul的错误信息
  5. GUID基本概念以及C#、SqlServer中GUID基本用法
  6. java 中 byte[]、File、InputStream 互相转换
  7. CentOS7安装python3.6.6(解决所有安装异常情况!!!)
  8. VC++ MFC 学习资料
  9. 汇率的思维导图模板下载方法
  10. .c与.cpp的区别解析
  11. 数据技术大融合,HSTAP数据库有多少想象空间?
  12. 0x01【一台】电脑如何同时登录【两个】微信?
  13. [FreeBSD] pf+altq实战[转]
  14. 《Android 开发入门与实战(第二版)》——6.10节本章小结
  15. OctaPhenyl POSS/八苯基POSS (Ph-POSS)/八苯基笼型倍半硅氧烷(OPPOSS)/八苯基官能化POSS/八苯基硅倍半氧烷/八苯基取代的POSS
  16. 期货开户交易交易风格各异
  17. 怎么写安卓手机脚本_史上最牛掰按键精灵手机版教材
  18. 二分查找法-floor和ceil函数实现(C++)
  19. 莲:什么?朕的大清亡了?
  20. 【以太网交换安全】--- 交换机流量控制/DHCP Snooping/IP Source Guard

热门文章

  1. 【转】Dynamics CRM 365零基础入门学习(二)Dynamics 插件注册的基本流程
  2. java 读取 image_如何在java读取sql里头读取image格式的数据转换成图片格式
  3. 【牛客 - NC93】设计LRU缓存结构(模拟)
  4. *【CodeForces - 280C】Game on Tree(期望模型,期望的线性性)
  5. 【CodeForces - 340B 】Maximal Area Quadrilateral (计算几何,枚举,有坑)
  6. *【51nod - 1459】迷宫游戏(记录双向权值的Dijkstra单源最短路)
  7. 【HDU - 1326】Box of Bricks(模拟水题)
  8. Linux如何搭建服务器eb,Linux下CRMEB环境搭建
  9. linux非权限安装bioperl,bioperl的安装
  10. oracle开放视图,Oracle视图