一个在美国IBM 工作过2 年,在印度公司工作了4 年的项目经理与我公司资深软件开发经理有这样一段对话。

印方经理问:"你们每月生产多少行代码?"  
我方经理掂量了很久,谦虚地说:"人均代码1 万多行吧,不到2 万行" 。  
印方经理听后,眼睛瞪得圆圆的:"喔!你们已经远远超过国际最高水平了。"  
我方经理惴惴不安地反问:"你们的呢?"  
印方经理很认真地回答:"我们公司目前的效率为每人每月300 行。"  
这是一个真实的故事,我想换了其他人(包括以前的我)也会给出同样的答案。  
为什么与软件大国有这么大的差距呢? 
首先我们没有生产率的概念。大多数人是这么算的,一天编400 行-500 行代码还不是小菜一碟。一个月有30天,这样每月1万多行还不是轻松搞掂? 
殊不知,这个伟大的假设有两个致命的错误:第一、没有考虑需求分析、概要设计、详细设计、单元测试、集成测试、系统测试的时间,也没有考虑文档的时间,甚至都有可能不知道有这些过程。  
这不是笑话,试问:我们有需求分析吗?我们有单元测试吗?我们有编程规范,但我们遵守了吗?  
我们的代码花花绿绿,风格千奇百怪――  
我们不是有"开发完了,还没有设计文档的经历"吗? 
我们不是有"要转中试了,所有人才开始埋头苦干写文档"的经历吗?  
我们不是有人在文档中写过,"该软件对人畜没有伤害"吗?  
当然,我们更不可能想到有review 的时间,根本考虑不到质量控制?  
我们最熟悉写程序、系统测试、维护,其他的都是多余。这是典型的小公司游击战的做法,一个人搞一个小软件,不需要任何流程,没有任何质量体系,除了写代码,测试以外,什么都不需要,非常自由,自以为" 牛得不行",这很 easy ,那很容易,"管理是罗嗦,流程是麻烦",但实际的结果是什么样大家都知道。  
第二、一天能写 400 -500 行代码,并不表示,你平均每个月能写 12000 -15000 行代码,道理很简单,一个人 100 米速度是12秒,并不表示他的3000米速度是6 分钟。我们不是机器人,写软件需要思考,写嵌入式软件尤其需要质量。  
印度工程师是人,中国软件工程师也是人,我们的代码生产率与水平能高到哪里去呢?正如大家都是凡人,你突然说你比子弹还快,一蹦3 层楼高。  
这真是"无知"者"无畏"?  
其实我们的生产率很低,自己不觉得罢了,很多人并不相信我司的公开数字――月产代码才120 行?如果算一算所有的人力,所有阶段的时间,我们就不会惊奇这个数据了。不信的话,我们拿一个产品算一算!或许我们的经理自己都不知道在这个产品投了多少人力。华为有职业化的软件开发管理人才吗?目前几乎没有,或许我们真的有月产 2 万行的编程高手,也有很多自以为能写2 万行代码的" 泡沫"高手,但我们没有真正专业的软件人才!  
目前我们公司的销售情况很好,卖得很火。但这是项目开发成功了吗?不是,可能更多的是市场的成功,以及产品预研立项人员
的成功。生命周期内还要花那么多维护费用,这怎么能算成功?如果我们造飞机,我们可能自己都不敢坐。衡量项目成功的标准与要素是什么?很多人并不知道。印度发展最快的Infosys 公司告诉我们:衡量项目成功的标准是"质量、成本与进?quot; ,达到这一目标的重要条件是"流程、技术、人"。  
我们做计划时,只有进度,或许会考虑一下成本,但从来没有考虑过质量。我们知道项目开发的质量活动是什么吗?我们不知道;
我们知道我们的质量目标吗?我们也没有;我们知道如何控制我们的质量吗?我们没有干过。  
所以我们才无所畏惧,百折不饶。但如果我们知道"折"一次要花100 万,我们还会无所畏惧地"百折"吗?再回头看看一些业界标准:某印度合作公司通过了 CMM5 级,联合开发项目的生产率为每月 400 行。其中编码阶段,印度工程师每天可以写 200 至900行代码。  
在4 个月的联合开发过程中――  
在编码速度上,我方优秀工程师与对方差不多,但别人教会了我们如何保证代码规范以及编程风格的一致;  
在阅读协议标准方面,对方的速度是我们的4 -5 倍;  
在设计方面,对方有明显的优势;  
在质量控制,我们与他们就没有办法比较了;  
在预测方面,对方估计工作量为36人月,我方估计为22人月,实际数为35人月。  
通过对比,我的结论是:我们富有,因为我们有很多bug ;我们快速,因为我们没有质量体系。  
有些人还以为――  
会使用配置工具sourcesafe,就知道什么是配置管理;  
会画CANTT 图/PERT 图,就知道项目计划是怎么回事了;  
填一下表格就是管理;  
吃一顿饭就是沟通。  
没有对质量整体的认识,不了解其为什么这么做,大家就根据自己的过去经验"理解"、"推测"、"认识"别人,有这么巨大的认识差距就不足为怪了。  
目前,公司在质量体系方面的培训与推行力度的不断加强,印度所经验的不断推广,在很多方面,如流程建设、预测、质量控制、度量系统,我们已经初步了解该怎么做。但我们还要不断地宣传、不停地松土,让所有的人承认自己无知,只有这样,我们才能由"无知"变为" 有识"。  
"艺低人胆大",今后,我再也不想听这种大胆的豪言壮语:“我们每月代码1 万行"! 

谈程序员的出路

为IT程序员量身定制的12个目标——很经典

我的25年嵌入式生涯--周立功 (很值得一读)

技术七年之感受

成为Java高手的25个学习目标--经典

程序员每年要做的十件事

一年轻女董事长对同龄人的忠告:不想穷的要看看

如何让IT人远离慢性疲劳

长期操作电脑需要养成的好习惯

IT程序员,为什么会无奈苦逼

Java 的工作原理

IT人程序员着装穿衣7大盲区,教你穿得更帅气更精神更个性!

Java语言的辉煌,还能延续多久?

印度程序员和中国程序员的区别相关推荐

  1. 为什么美国程序员工作比中国程序员工作轻松、加班少?

    先问是不是,再问为什么. 难道美国的程序员就不加班吗?他们就一天八小时工作,还想来就来,想走就走?非工作时间完全找不到人?还有什么食物饮料都免费提供? 让我来告诉你真实的情况吧,还- 真是这样的 加班 ...

  2. 中国程序员超 5000 万?北上广等一线城市 IT 岗位已开始饱和过剩?

    作者 | 纯洁的微笑 来源 | 纯洁的微笑(ID:keeppuresmile) 中国程序员数量有多少,一直是一个谜. 中国有多少程序员? 这两天在知乎上闲逛,看到这样一个问题比较感兴趣,我们来一起研究 ...

  3. 中国程序员如何升职加薪,也许我们该学学印度人

    中国程序员如何升职加薪,也许我们该学学印度人 程序员 程序人生 阅读10879  近几年越来越多的印度人在美国硅谷占据要职,其中比较著名的有谷歌 CEO 桑德.皮查伊,微软 CEO 萨蒂亚.纳德拉,A ...

  4. 程序员的认知-中国程序员为什么跳槽

    2019独角兽企业重金招聘Python工程师标准>>> 一些人总是发出一些错误的声音,形成了劣胜优汰可怕的现象.他们在误导着中国,把我们的后继军训练成软件蓝领?D?D?D?D胸无大志 ...

  5. Python 分析在德的中国程序员,告别 996 ?

    作者 | 李辉 责编 | 胡巍巍 出品 | 程序人生(ID:coder_life) 今年5月27日, 一位据说在德国的中国程序员@将记忆深埋在微博公布: "半年时间,100多TB数据, 利用 ...

  6. 迷茫的程序员和中国软件业

    2001年对于IT行业进入寒冬,中国的程序员们先打起了喷嚏. 2001年年关,<软件世界>记者刘兴波关于程序员薪水问题的文章<质疑中国软件业"高薪制">及后 ...

  7. 2022年全球程序员薪资排行榜单来了!中国程序员薪酬排名......

    上一篇:赞!ChatGPT能接入微信了 身处互联网,或多或少都听说过,美国程序员的薪资非常高. 至于到底有多高?以前没多想,直到看到了2022年全球程序员薪资排行榜--我坐不住了. 而且在这份榜单中, ...

  8. 为什么美国程序员不用加班,而中国程序员就只能996?

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  9. 也说中国程序员的悲哀

    上网搜一下"中国程序员的悲哀",能搜出一大箩抱怨.我这里也抱怨悲哀几句.大概中国的国情就是这样吧,重市场轻技术,然后做技术的眼红市场,结果技术也做不好.只要能赚到钱,做得再烂都无所 ...

  10. Python分析在德的中国程序员,告别996?

    作者 | 李辉 责编 | 胡巍巍 出品 | 程序人生(ID:coder_life) 今年5月27日, 一位据说在德国的中国程序员@将记忆深埋在微博公布: "半年时间,100多TB数据, 利用 ...

最新文章

  1. This和Super关键字的对比
  2. 网络连接错误 failed to handler mux client connection
  3. 【原创】Struts2.5.12版本中使用通配符*
  4. Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中
  5. C# GC 垃圾回收机制原理
  6. MySql优化 (2009-08-28 系统架构师大会) 演讲ppt
  7. react-native构建基本页面5---调用拍照摄像头
  8. scala中实现break与continue功能
  9. php larval开发规范,Laravel 开发规范摘要
  10. 孕妇饮食禁忌隐私政策
  11. C语言程序设计学习笔记:P3-判断
  12. 程序员应该每天写代码
  13. 2022年“研究生科研素养提升”系列公益讲座在线测评题目
  14. 嵩天python爬虫百度云盘_基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第一周:requests库...
  15. 消费服务平台“小黑鱼科技”完成5000万美金融资,资方含光速美国、晨兴资本等多家知名机构...
  16. Hive(6):数据定义语言(DDL)案例
  17. java助教面试自我介绍_助教面试自我介绍参考
  18. 分贝通SAAS企业大数据体系建设经验分享
  19. 蚂蚁变大象:浅谈常规网站是如何从小变大的(四)
  20. css3实现一个闪电效果

热门文章

  1. dflow入门2——Slices
  2. 5G+如何改变社会--读书有感
  3. android画板过程分析,Android涂鸦画板原理详解——从初级到高级(二)
  4. 远程连接时本机的键盘变成了快捷键,键盘无法打字,但是远程桌面可以进行输入
  5. java 成员变量 默认_为什么Java成员变量有默认值,而非成员变量没有?
  6. 删除文件时提示正在被使用无法删除问题/删除dll文件
  7. 7. Zigbee应用程序框架开发指南 - 时间处理
  8. shell解析HTML
  9. linux设置合上电脑,CentOS7设置笔记本合盖不休眠
  10. python表格绘制斜线表头_【Excel系列05】表格中如何制作斜线表头