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

程序员的外包经验:印度、中国和菲律宾 外包在软件业很常见,各种规模的公司都在用,每年要吸纳大量就业。 但是,外包的曝光量很少,大家似乎都不太关心,很少有人谈论。这导致许多人不了解外包到底是怎么回事。 1、 我有很多与亚洲外包供应商合作的经历。这篇文章我想来谈谈,多年来将软件项目外包到印度,中国和菲律宾的经验。 我以前的工作是辉瑞公司的软件架构师,一共干了 14 年,曾经负责过亚太地区的软件架构。 2、 辉瑞公司的软件开发策略很简单... 阅读详情
一个在美国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图,就知道项目计划是怎么回事了;
填一下表格就是管理;
吃一顿饭就是沟通。
没有对质量整体的认识,不了解其为什么这么做,大家就根据自己的过去经验"理解"、"推测"、"认识"别人,有这么巨大的认识差距就不足为怪了。
目前,公司在质量体系方面的培训与推行力度的不断加强,印度所经验的不断推广,在很多方面,如流程建设、预测、质量控制、度量系统,我们已经初步了解该怎么做。但我们还要不断地宣传、不停地松土,让所有的人承认自己无知,只有这样,我们才能由"无知"变为"有识"。
"艺低人胆大",今后,我再也不想听这种大胆的豪言壮语?quot;我们每月代码1万行"!

 
import-im6.q16: attempt to perform an operation not allowed by the security policy `PS‘ @ error/cons 这六个 policy 是使用 XML 格式描述的安全策略。要将其中的限制注释掉,在每个 policy 开始和结束的标记之间添加注释标记“ 阅读详情

相关推荐

grpc安装与简单demo测试

grpc安装: 由于工作需要,最近在学google的rpc开源框架;由于本人菜鸟一枚,而且是从Windows开发转到Linux;由于之前版本控制使用的是svn,没有使用过git,所以从GitHub上下载代码是通过浏览器下载zip格式的压缩文件,折腾了好几天了,发现了各种坑,各种缺少库,各种不知道怎么把这个库给装机器上。对于一个不熟悉Linux的人来说,这个体验简直糟糕透了。没办法了又在机器上装了...

old__captain的博客 4833

java冷知识:代码行数多少才算大项目?

注:以下摘自:《软件工程概论》 郑人杰、殷人民编 java项目的大小衡量标准(以代码行作为计量标准的): 微型:只是一个人,甚至是半日工作在几天内完成的软件; 小型:一个人半年内完成的 2000 行以内的程序; 中型: 5 个人在 1 年多的时间内完成的 5000-50000 行的程序; 大型: 5-10 人在两年内完成的 50000-1000...

危险、的博客 2万+

手把手教你用STM32单片机DIY一个简易PLC(附完整电路图与PCB文件)

本文详细介绍了如何利用STM32单片机DIY一个简易PLC控制器,涵盖硬件设计、电路图解析、PCB布局优化及固件框架实现。通过完整的电路图和PCB文件,帮助读者从元器件选型到工业级优化,逐步构建可靠的PLC系统,特别适合工业自动化爱好者和学习者实践。

weixin_42527160的博客 572

不知不觉代码已经超过1万行了

自从接触这个模型管理的网站已经快5个月了,实际着手开发也有快4个月了,这两天老板已经逼着我出结果了。今天,真的有点累了,停下来休息一下也是可以的吗,。顺便看了一下代码量,没想到不知不觉中,项目中所写的代码已经超过1万行了。如果算上平常测试以及练手所写的代码,估计这四个月,写得代码应该有差不多2万行了吧。 哈哈,平均下来每天有快200行的代码量了,其中有实际应用的也接近100行了。作为一...

dong51736的博客 934

计算机网络-自顶向下方法 第三章课后习题答案(第七版)

复习题 R1. a) 就叫这个协议为简单传输协议STP(Simple Transport Protocol)。在发送方,STP从发送进程接收不超过1196字节的数据块、目标主机地址和目标端口号。STP向每个块添加一个4字节的头,并将目标进程的端口号放在头中。STP然后将目标主机地址和结果段提供给网络层。网络层将段交付给目的地主机的STP。目的主机基于STP检查段中的端口号,从段中提取数据,并将数据传递给由端口号标识的进程。 b) 在发送方,STP从发送进程接收不超过1192字节的数据块、目标主机地址和目标端

Erekilu的博客 2万+

【雷达信号处理实战】从原理到代码:脉冲多普勒(PD)处理全流程解析与MATLAB仿真

本文深入解析了脉冲多普勒(PD)雷达信号处理的核心原理与全流程。通过剖析多普勒效应、脉冲压缩与慢时间FFT等关键技术,并结合详细的MATLAB仿真代码,手把手指导如何从信号建模、回波模拟到最终生成距离-多普勒谱,实现运动目标的精确测距与测速,直观展示了相参积累带来的显著性能增益。

pca5navigator的博客 954

中国与印度软件工程师之比较

在工作中,接触到印度软件公司开发出来的软件: 整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是! 印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。而中国人在那里琢磨数据结构、算法,界面人员就还没编码就想着是Outlook式的还是Visual Studio式的界面

pgz_007的专栏 1574

望获实时Linux与国产芯片协同:打造LinuxCNC数控机床的全栈国产化方案

本文探讨了如何通过望获实时Linux与飞腾、龙芯等国产芯片的深度协同,为LinuxCNC数控机床打造全栈国产化方案。望获实时Linux通过中断隔离等核心技术,提供亚微秒级确定性响应,解决了传统Linux系统实时性不足的痛点,使LinuxCNC得以稳定驱动高精度机床。该方案实现了从硬件、操作系统到应用软件的全栈自主可控,为工业控制领域提供了高性能、可定制的国产化选择。

weixin_29291069的博客 648

腾讯程序员最爱 C++,每年写 3 万行代码,70% 的技术 Leader 仍在持续编码

整理 | 王晓曼出品 | 程序人生(ID:coder _life)3 月 18 日下午,腾讯对外发布 2020 年度《腾讯研发大数据报告》,披露了 2020 年腾讯在研发投入、研发效能及...

程序人生的博客 1609

STM32基于软件模拟IIC进行AHT21B温湿度采集

通过学习软件IIC来进行实操AHT21B采集温湿度。

Liu-FE的博客 3700

分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件

分子动力学模拟学习1-采用AmberTools21的MCPB.py构建金属蛋白的top文件

weixin_45011386的博客 3826

中印程序员对比:是什么让我们觉得印度程序员很厉害?

目前这个世界上,大约有200多个国家和地区,在这些国家和地区里面,我觉得有一个国家是最喜欢和中国进行比较的,那就是印度三哥。三哥可以说在各方面都喜欢和中国进行对比,连人口都要赶超我们。 那么作为一个程序员,我挺关注在IT界,两个国家的软件状况。在之前很长一段时间里,国内很多人传言印度人的软件开发能力可是吊炸天,如同他们的阅兵一样开挂,事实真的这样吗?我们就来分析对比一下在欧美国家中工作...

一一哥 4602

CarSim仿真快速入门(十八)-CarSim2021中的混合动力和纯电动系统

CarSim和TruckSim包括用于电动汽车(BEV)和混合电动汽车(HEV)的动力总成系统。电动和混合电动系统可与所有现有驱动系统配合使用,例如:FWD,RWD,AWD和多轴驱动系统。混合动力/电动系统模型还包括电池管理控制。CarSim或TruckSim中的默认动力总成是为闭环速度控制器提供的备用动力总成。要安装和使用完整的动力总成,请从Vehicle: Assembly库或Vehicle: Lead Unit 库链接到Powertrain数据集。在“动力总成”界面上,从下拉列表控件中选择以下三个选项

小明师兄的博客 7455

我的 6 年外包经验:印度、中国和菲律宾

(给程序员的那些事加星标)零、导读Troy Hunt 是一个澳大利亚的程序员,技术博主,获得过 Microsoft Regional Director 和 MVP 的荣誉,但他并不是微软...

程序员的那些事 4267

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

印度程序员和中国程序员的区别

From: http://www.open-open.com/home/space-2869-do-blog-id-8783.html 一个在美国IBM 工作过2 年,在印度公司工作了4 年的项目经理与我公司资深软件开发经理有这样一段对话。  印方经理问:"你们每月生产多少行代码?"   我方经理掂量了很久,谦虚地说:"人均代码1 万多行吧,不到2 万行" 。   印方经理听

zjtchow的专栏 870

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

印度软件外包凭什么比中国强

http://maowoo.spaces.live.com/blog/cns!9527268F2811D191!147.entry印度软件外包凭什么比中国强全世界都在说印度的软件产业如何发达,管理水平如何高。我也是抱着学习的态度来到印度。 不得不说,第一印象是印度还很落后。我到的城市,班加罗尔(bangalore),印度的IT重镇,机场很简陋,比国内的一些火车站差多了。

猫呜的java世界 2895

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Struts+Hibernate入门实例(Eclipse版)
下一篇: java设计模式收集
lzb821
博客等级 码龄20年 12粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值