无知者无畏——中国程序员和印度程序员的对话
2006.11.17 宇信鸿泰
一个在美国IBM工作过2年,在印度公司工作了4年的项目经理与我司资深软件开发经理有这样一段对话。
印方经理问:“你们每月生产多少行代码?”
我方经理掂量了很久,谦虚地说:“人均代码1万多行吧,不到2万行”。
印方经理听后,眼睛瞪得圆圆的:“喔!你们已经远远超过国际最高水平了。”
我方经理惴惴不安地反问:“你们的呢?”

印度的软件开发工作间
印方经理很认真地回答:“我们公司目前的效率为每人每月300行。”
这是一个真实的故事,我想换了其他人(包括以前的我)也会给出同样的答案。
为什么与软件大国有这么大的差距呢?
首先我们没有生产率的概念。大多数人是这么算的,一天编400行-500行代码还不是小菜一碟。一个月有30天,这样每月1万多行还不是轻松搞掂?
殊不知,这个伟大的假设有两个致命的错误:
第一、没有考虑需求分析、概要设计、详细设计、单元测试、集成测试、系统测试的时间,也没有考虑文档的时间,甚至都有可能不知道有这些过程。
这不是笑话,试问:我们有需求分析吗?我们有单元测试吗?我们有编程规范,但我们遵守了吗?
我们的代码花花绿绿,风格千奇百怪——
我们不是有“开发完了,还没有设计文档的经历”吗?
我们不是有“要转中试了,所有人才开始埋头苦干写文档”的经历吗?
我们不是有人在文档中写过,“该软件对人畜没有伤害”吗?
当然,我们更不可能想到有review的时间,根本考虑不到质量控制?
我们最熟悉写程序、系统测试、维护,其他的都是多余。这是典型的小公司游击战的做法,一个人搞一个小软件,不需要任何流程,没有任何质量体系,除了写代码,测试以外,什么都不需要,非常自由,自以为“牛得不行”,这很easy,那很容易,“管理是罗嗦,流程是麻烦”,但实际的结果是什么样大家都知道。
文章录入:老参谋 责任编辑:老参谋
