加拿大华人论坛 加拿大生活信息ZT中国与印度软件工程师之比较
在加拿大
中国与印度软件工程师之比较在工作中,接触到印度软件公司开发出来的软件: 整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是! 印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。而中国人在那里琢磨数据结构、算法,界面人员就还没编码就想着是Outlook式的还是Visual Studio式的界面。到最后就成为Code 高手,对某些特定的开发工具精通,但是就是不能保证能够把一个软件稳当、完整的开发出来。 举个简单的例子: 软件中需要一个列表,用来表示我们处理的事务。该类表在业务繁忙的时候将变得很大。中国人就用双向链表,抱着《数据结构》书在那里写链表的类。印度人开了一个大数组,然后就开始干。为什么印度人不用链表,他们说:1、你们给出的设备(小型机),最少具备512M内存,浪费一些没有什么。2、数组方式访问方便、效率高。 看出了一拿到东西就吭哧吭哧作Code,和好好进行软件分析的不同了吗?正好前几天我有几个同事从印度回来和我们交流,那家公司是CMM4级公司. 我感受的几点: 1. 流程重于项目 2. QC(就是QA)独立于研发部门,专门检查研发部门的开发流程是不是按照既定流程走.如果QC觉得流程不对,他会直接上报高层, 项目肯定就此停止. 3. 所谓的项目经理(PC)一般也是从编码人员升上来的,并不是所谓的不懂技术,一般都至少有四年以上的经验 4. PC主要就是制定开发计划,负责协调,填写各种表格. 5. 所有的东西(包括草稿)都有文档. 6. 详细文档要求达到只有这个文档就可以编码的程度,一般写文档时间占60%,编码时间极少 7. 有各种详细的review(同行评审),项目组内的,项目组之间的,客户的... 8. 计划很详细,的确能达到小时级,但是实际情况还是误差比较大,所以他们也有加班. 先学习UML和Rose以及RUP,不要总是要找着证据。在中国的软件开发水平下,很难给你一个好的例子,OK?中国人总是要看到一个东西有了试验田,而且稻子长得好,才换稻种。要知道在国外上述的软件开发模式的应用,大可以看看Rational网页上的story。Just do it! 一句话,中国的软件开发水平低得很。赶不上印度人,印度的软件公司可以让高中生编代码,它的软件工程水平可想而知。当然,你如果是个很牛的程序员。估计够呛,因为中国的气氛中,很牛的程序员都很难接受软件工程的。你可以测试一下自己, 看看自己适不适合现在学习软件工程: 1、你是不是不能忍受一个编程序不如你的人做你的项目经理?2、你是不是觉得你的老板对客户吹牛皮、夸大自己而感到不舒服? 3、你是不是一个拿到一个需求脑袋里第一念头就是如何实现的人? 4、你是不是很崇拜Stallman,Linus,很讨厌Microsoft? 5、你是不是曾经在深夜编码的时候,突然感觉到一种乏味,对Code的生涯感到一种无趣? 以管窥豹──印度神话 我们现在处于深深的自卑当中,感到中国的软件工程水平的低下已经是牵涉到民族劣根性的问题了。 他们的软件教育水平: 我们招聘印度人,给应聘者出了一份与国内差不多的试卷,有基础概念和编程题目。 等到他们完成后,我们这些中国的自认高手惊呆了!他们的编程题目简直象是抄袭的?程序结构,注释,变量命名就不说了吧,全部都是极其类似!反观中国的牛人、高手,每个人有自己的一套。到了新的岗位,先把前任的程序贬损一通,然后自己再开发更多的问题的代码来代替。我的公司统计,一个软件中有4个以上 CSocket版本, 每个人都觉得别人做得差,自己再搞一套。中国人,就是这个样子,还会辩解说“我们这样有创造性”。 其实软件发展,早就走过了求伯君那个编码英雄的年代,程序员已经是个坐办公室的蓝领了。你具备拧好一个螺丝钉的能力就可以了。Code是最低级的事情了。 2、他们许多公司的项目经理根本就不懂技术。 中国的项目经理如果不能在技术上压服下属,那么下属将与他搞鬼,越是高手越喜欢搞鬼,根本不知道作软件的终极目的是从别人兜里掏钱,而在内部搞不团结。技术高手都会纠集一些对他技术上崇拜的菜鸟,与管理层作对。而印度的软件经理根本就不懂正在做的东西,许多甚至直接就是MBA,或者是领域专家 (工业设计、地理专家等),而不是编码的专家。但是却能够领导大群素质良好的程序员把工作做好,没有内部不团结的情况。许多印度的程序员加入一个公司很长时间,都不知道自己整天编的代码是干什么用的。给他们的任务可能就是一个函数的声明以及该函数要实现的功能。我们呢? 3、他们的编程人员的流动率达到30%! 他们的编程人员流动率(包括内部项目之间的流动)高达30%,可以想见他们的文档水平如何。他们的产品不依赖任何一个人,谁都可以立即辞职,产品的开发还是会正常进行。 而中国,是老板怕总工。技术骨干拥兵自重,抗拒管理。任何制定好的计划,都有可能被技术人员推翻或者跟你消极怠工。 4、他们的开发计划能够做到小时级别。 如果一个印度公司的项目经理没有上班,那么他的下属将可能不知道作什么。他们的计划一般都定到天,每个基层开发人员每天的工作量就是8小时。而我们能够给出月度计划的公司就很少,而给出的月度计划要么不可能实现,要么就可 能被取消。开发人员被初略的给个任务,他在月初,可以慢慢琢磨是做成什么样子,然 后上上网,聊聊天。到了月中和月末,就开始熬夜编码。--
评论
网友言论集/在蒙城找工作需要文凭, 水平, Canadian-style CV, 运气, 毅力, 手机, 座机带留言设备, 英语, 法语, Google, formal dress, 皮鞋. 以上是我找到professional job 时所具备的条件和东西. For your reference only. 如有雷同,或巧合,更是找工必须.回复: ZT中国与印度软件工程师之比较you are pretty right! I think this is because the British education background lets the Indian know more about business logic. While Chinese education put more emphasis on partial intelligent games. The governors wants flunkies other than real leaders, so they avoid to tell their students real knowledge. But this hurts the Chinese nation.After talking with some Chinese software engineers and some Indian software employees, I have no confidence with Chinese software industries.
评论
回复: ZT中国与印度软件工程师之比较抱歉,很难同意你的看法。我在印度软件公司做过,没有觉得印度的软件工程师和中国的软件工程师在技术上有什么大的区别(口才确实有区别)。如果有区别的话,这种区别是基于个人的而并非某一个国家的。另外在前一个公司,由于母公司觉得印度方面的软件质量不高,所以终止了那些印度vendor公司的合同,并减小了印度子公司的规模,而把重心转移到中国。所以印度软件神话只是一个迷信。你只有真正和印度人一起工作过你才能做出客观的评价。事实上,根据我和菲律宾的软件工程师的接触,菲律宾的软件工程师水平也不低。我没接触过越南人,但我的结论是能进入软件这行的,水平不会在国家间有明显的区别。
·生活百科 业主自住保险涨得这么快!
·生活百科 在澳洲可以零元买吗?一位阿姨推着一车食物从超市走出。保安