设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 7845|回复: 5
打印 上一主题 下一主题

[转帖]中国与印度软件开发之比较(一个让我看完很有感触的帖子)

[复制链接]
跳转到指定楼层
1#
发表于 2007-2-23 08:49:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很老的帖子了,看完后颇有感触,发上来与大家分享

中国与印度软件开发之比较
以管窥豹──印度神话 作者:"Kino"
--------------------------------------------------------------------------------

    我在工作中,接触到印度软件公司开发出来的软件: 整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是! 印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。而中国人在那里琢磨数据结构、算法,界面人员就还没编码就想着是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的生涯感到一种无趣?
    我们现在处于深深的自卑当中,感到中国的软件工程水平的低下已经是牵涉到民族劣根性的问题了。
      1、他们的软件教育水平: 我们招聘印度人,给应聘者出了一份与国内差不多的试卷,有基础概念和编程题目。 等到他们完成后,我们这些中国的自认高手惊呆了!他们的编程题目简直象是抄袭的?程序结构,注释,变量命名就不说了吧,全部都是极其类似!反观中国的牛人、高手,每个人有自己的一套。到了新的岗位,先把前任的程序贬损一通,然后自己再开发更多的问题的代码来代替。我的公司统计,一个软件中有4个以上 CSocket版本,> 每个人都觉得别人做得差,自己再搞一套。中国人,就是这个样子,还会辩解说“我们这样有创造性”。 其实软件发展,早就走过了求伯君那个编码英雄的年代,程序员已经是个坐办公室的蓝领了。你具备拧好一个螺丝钉的能力就可以了。Code是最低级的事情了。
      2、他们许多公司的项目经理根本就不懂技术。 中国的项目经理如果不能在技术上压服下属,那么下属将与他搞鬼,越是高手越喜欢搞鬼,根本不知道作软件的终极目的是从别人兜里掏钱,而在内部搞不团结。技术高手都会纠集一些对他技术上崇拜的菜鸟,与管理层作对。而印度的软件经理根本就不懂正在做的东西,许多甚至直接就是MBA,或者是领域专家 (工业设计、地理专家等),而不是编码的专家。但是却能够领导大群素质良好的程序员把工作做好,没有内部不团结的情况。许多印度的程序员加入一个公司很长时间,都不知道自己整天编的代码是干什么用的。给他们的任务可能就是一个函数的声明以及该函数要实现的功能。我们呢?
      3、他们的编程人员的流动率达到30%! 他们的编程人员流动率(包括内部项目之间的流动)高达30%,可以想见他们的文档
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-6-5 23:11:23 | 只看该作者
3Q3Q3Q
3#
发表于 2009-6-14 22:41:16 | 只看该作者
2,QC(就是QA)独立于研发部门,专门检查研发部门的开发流程是不是按照既定流程走.如果QC觉得流程不对,他会直接上报高层, 项目肯定就此停止.

此点深有同感, 以前做项目时系统的WEB界面由新加坡的人开发,完成后发现和流程搭不上边,开发人员对实际操作流程陌生,是开发的一大忌,因为不知道用户想要些什么,做出来的东西四不象.

点击这里给我发消息

4#
发表于 2013-4-13 20:05:03 | 只看该作者
这篇文章写得好,学习了。
5#
发表于 2013-4-19 17:11:33 | 只看该作者
学习
6#
发表于 2014-4-27 22:49:35 来自手机 | 只看该作者
红尘如烟真心不错。来自: Android客户端
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-4 20:22 , Processed in 0.097229 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表