This is an article forwarded by my colleague

jabber (jabber)
本文发表在 rolia.net/zh 相约加拿大网上社区枫下论坛
中国软件业的劣根性 我在工作中,接触到印度软件公司开发出来的软件:整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的程序一看,拖沓冗长,水平不怎样。我们自己的一些程序员就有怪话了,说他们水平真低。但是!印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文件。而中国人在那里琢磨数据结构、算法,界面人员就还没写程序就想着是Outlook式的还是Visual Studio式的界面。到最后就成为Code高手,对某些特定的开发工具精通,但是就是不能保证能够把一个软件稳当、完整的开发出来。 举个简单的例子:软件中需要一个列表,用来表示我们处理的事务。该类表在业务繁忙的时候将变得很大。中国人就用双向串链,抱着《数据结构》书在那里写链表的类别。印度人开了一个大数组,然后就开始干。为什么印度人不用串链,他们说: 1、你们给出的设备最少具备512M内存,浪费一些没有什么。 2、数组方式访问方便、效率高。 看出了一拿到东西就吭哧吭哧写Code,和好好进行软件分析的不同了吗? 正好前几天我有几个同事从印度回来和我们交流,那家公司是CMM4级公司.我感受的几点: 1,流程重于项目 2,QC(就是QA)独立于研发部门,专门检查研发部门的开发流程是 不是按照既定流程走.如果QC觉得流程不对,他会直接上报高层,项目肯定就此停止. 3,所谓的项目经理(PM)一般也是从程序员升上来的,并不是所谓的不懂技术,一般都至少有四年以上的经验 4,PM主要就是制定开发计划,负责协调,填写各种表格. 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是最低级的事情了。他们许多公司的项目经理根本就不懂技术。中国的项目经理如果不能在技术上压服下属,那么下属将与他搞 鬼,越是高手越喜欢搞鬼,根本不知道作软件的终极目的是从别人口袋里掏钱,而不是在内部搞不团结。技术高手都会纠集一些对他技术上崇拜的菜鸟,与管理层作对。而印度的软件经理根本就不懂正在做的东西,许多甚至直接就是MBA,或者是领域专家(工业设计、地理专家等),而不是程序的专家。但是却能够领导大群素质良好的程序员把工作做好,没有内部不团结的情况。许多印度的程序员加入一个公司很长时间,都不知道自己整天写的程序是干什么用的。给他们的任务可能就是一个函数的宣告以及该函数要实现的功能。我们呢? 他们的编程人员流动率(包括内部项目之间的流动)高达30%,可以想见他们的文件水平如何。他们的产品不依赖任何一个人,谁都可以立即辞职,产品的开发还是会正常进行。而中国,是老板怕总工程师。技术骨干拥兵自重,抗拒管理。任何制定好的计划,都有可能被技术人员推翻或者跟你消极怠工。 他们的开发计划能够做到小时级别。如果一个印度公司的项目经理没有上班,那么他的下属将可能不知道作什么。他们的计划一般都定到天,每个基层开发人员每天的工作量就是8小时。而我们能够给出月度计划的公司就很少,而给出的月度计划要么不可能实现,要么就可能被取消。开发人员被粗略的给个任务,他在月初,可以慢慢琢磨是做成什么样子,然后上上网,聊聊天。到了月中和月末,就开始熬夜写程序。 看到每年,从各大学不尽高手滚滚来,我们是不得不要招人,同时又是不抱希望。我公司现在有意以后将核心软件开发外包给印度公司,中国人?做做界面吧,中国人做界面会极尽奇技淫巧,搞得花里胡俏的。BTW,我公司非外资企业,大家不要误会我们有什么种族歧视。但是我们现在就是对自己歧视,自卑得很。中科院那么多研究院,连个能用的操作系统都搞不定。北大开发一些东西,比如什么青鸟CASE,就是给一帮人评职称的。杨芙清院士整天搞来搞去,搞出了什么东西?北大,清大的人最难管理,强得看不见人。中国的程序员骂微软,追Linux是全世界最狠的,可是我们除了汉化Linux,做了什么东西出来。 CDE是瑞典人写的,Linus是芬兰的,GNome是墨西哥人写的。哎,我们曾经是多么的瞧不起印度人。 最近游戏橘子出了一款新游戏叫「天堂」,大家有注意到吗?我玩了一下。发行方式和经营方向都还不错,找了一个代言人「范晓萱」;拿游戏光盘不用钱(只要在7-11买东西)使用时数卡(在7-11有售,每12小时15元);电视广告,杂志、报纸… 不过,技术方面太差了,画面差,程序能力差,bug多,企划也不行,如果uo是90分的话,那天堂只有10-20分。 这是台湾游戏的命运,用小钱制作,没有真正的开发,过分强调执行面而不注重技术面。这个游戏若照一般的说法,应该是最好的模式了,在7-11的大力支持下,强力的后盾让他们有了最好的销售管道和财力。可是,却忽略了一个游戏最重要的部分:「可玩性」。对我来说,这是舍本逐末的做法。既觉可惜,又觉可恶。 可惜的是,还是花了不少人力,财力,却没做出象样的产品;可恶的是,骗了消费者,又只看钱不好好在游戏品质上精进。最后的情况是:玩家玩没多久,就会放弃了。尤其有其它那么好玩的外国网络游戏在竞争。看来,台湾的游戏软件还有好长一段路要走呢。 就是中国人的悲哀(台湾也一样),不管两岸未来统一或独立,身上流的都是恶质的血(应该说是基因才对)谁都不服谁,都想干老大,很少有团队精神这一点在基础科学上已输给西方国家我们只能再历史课本上喊喊中国人的三大发明,真是可笑我看未来在软件应用科学上,输给印度人也是必然的唉~ 感同身受............
更多精彩文章及讨论,请光临枫下论坛. 网址: rolia.net/zh
(#21762@0)
2001-1-15 -05:00

回到话题: This is an article forwarded by my colleague

回到论坛: HOME枫下论坛枫下论坛主坛工作学习IT杂谈

URL:   
http://www.rolia.net/zh/post.php?f=0&p=21762