频道直达:新闻 - 组网 - 安全 - 服务器 - 存储 - 系统 - 应用 - 开发 - 数据库 - 前沿 - 技术人 - 培训 - 求职 - 读书 - 教程 - 专题 - 产品 - 案例 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

中国程序员和印度程序员的对话:无知者无畏

作者: 小鱼儿 出处:博客园 2007-10-26 13:03    砖    好    评论   进入论坛
阅读提示:本文作者通过印度公司项目经理和我方软件开发经理的对话,反映出两方程序员在完成项目上的具体实现差距,供大家参考!您可以对文中提到的工作中存在的缺陷,发表自己的看法。

【引自小鱼儿的博客】一个在美国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公司告诉我们:衡量项目成功的标准是“质量、成本与进度”,达到这一目标的重要条件是“流程、技术、人”。

我们做计划时,只有进度,或许会考虑一下成本,但从来没有考虑过质量。我们知道项目开发的质量活动是什么吗?我们不知道;我们知道我们的质量目标吗?我们也没有;我们知道如何控制我们的质量吗?我们没有干过。
所以我们才无所畏惧,百折不饶。但如果我们知道“折”一次要花100万,我们还会无所畏惧地“百折”吗?再回头看看一些业界标准:某印度合作公司通过了CMM5级,联合开发项目的生产率为每月400行。其中编码阶段,印度工程师每天可以写200至900行代码。

在4个月的联合开发过程中――

在编码速度上,我方优秀工程师与对方差不多,但别人教会了我们如何保证代码规范以及编程风格的一致;

在阅读协议标准方面,对方的速度是我们的4-5倍;

在设计方面,对方有明显的优势;

在质量控制,我们与他们就没有办法比较了;

在预测方面,对方估计工作量为36人月,我方估计为22人月,实际数为35人月。

通过对比,我的结论是:我们富有,因为我们有很多bug;我们快速,因为我们没有质量体系。

有些人还以为――

会使用配置工具sourcesafe,就知道什么是配置管理;

会画CANTT图/PERT图,就知道项目计划是怎么回事了;

填一下表格就是管理;

吃一顿饭就是沟通。

没有对质量整体的认识,不了解其为什么这么做,大家就根据自己的过去经验“理解”、“推测”、“认识”别人,有这么巨大的认识差距就不足为怪了。

目前,公司在质量体系方面的培训与推行力度的不断加强,印度经验的不断推广,在很多方面,如流程建设、预测、质量控制、度量系统,我们已经初步了解该怎么做。但我们还要不断地宣传、不停地松土,让所有的人承认自己无知,只有这样,我们才能由“无知”变为“有识”。

“艺低人胆大”,今后,我再也不想听这种大胆的豪言壮语:“我们每月代码1万行”!

【责任编辑:火凤凰 TEL:(010)68476606】

专题
2008中国互联网大会
见证中国网络安全二十年
程序员如何成长?
龙芯要做中国的“奔腾”
第七届中国信息安全大会
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看81024次)
·UML类图详解 (查看72498次)
·C++是垃圾语言?! (查看42631次)
·C#技术开发指南 (查看40232次)
·UML统一建模语言 (查看39205次)
·Java编程开发手册 (1198个砖)
·Java基础教程 (431个砖)
·C#技术开发指南 (311个砖)
·.NET开发手册 (254个砖)
·PB开发教程 (223个砖)
·Java编程开发手册 (658个好)
·Java基础教程 (578个好)
·.NET开发手册 (282个好)
·PB开发教程 (213个好)
·Delphi开发技术手册 (200个好)
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。