印度是如何做软件开发的

我在工作中,接触到印度软件公司开发出来的软件:

整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是!印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。

而中国人在那里琢磨数据结构、算法,界面人员就还没编码就想着是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%,可以想见他们的文档水平如何。他们的 
产品不依赖任何一个人,谁都可以立即辞职,产品的开发还是会正常进行。而中国,是老板怕总工。技术骨干拥兵自重,抗拒管理。任何制定好的计 
划,都有可能被技术人员推翻或者跟你消极怠工。

4.他们的开发计划能够做到小时级别。如果一个印度公司的项目经理没有上班,那么他的下属将可能不知道作什么。他们的计划一般都定到天, 
每个基层开发人员每天的工作量就是 8小时。而我们能够给出月度计划的公司就很少,而给出的月度计划要么不可能实现,要么就可能被取消。开发人员被初略的给个任务,他在月初,可以慢慢琢磨是做成什么样子,然后上上网,聊聊天。到了月中和月末,就开始熬夜编码。

看到每年,从各大高校不尽牛人滚滚来,我们是不得不要召人,同时又是不抱希望。我公司现在有意以后将核心软件开发外包给印度公司,中 
国人?做做界面吧,中国人做界面会极尽奇技淫巧,搞得花里胡哨的。BTW,大家不要误会我有什么种族歧视。但是我们现在就是对自己歧视,自卑得很。中科院那么多研究院,连个能用的操作系统 
都搞不定。

北大开发一些东西,比如什么青鸟CASE,就是给一帮人评职称的。杨芙清院士整天搞来搞去,搞出了什么东西?B大,T大的人最难管理,牛得看不见人。中国的程序员骂微软,追 Linux是全世界最狠的,可是我们除了汉化Linux,做了什么东西出来。CDE 是瑞典人写的,Linus是芬兰的,GNome是墨西哥人写的。哎,我们曾经是多么的瞧不起印度人......

印度是如何做软件开发的相关推荐

  1. 女生适合做软件开发工作吗?优势在哪里?

    不知道大家在念书的时候,有没有留意到这样一种现象,工科类的院校女生可以说是凤毛麟角,有的专业几乎是清一色的男生,就算是有女生,也只有一两个. 难道女孩子都就读于文科类的院校了吗?其实不是,不少理科类的 ...

  2. 做软件开发,客户难找?接单难?怎么办?

    做软件开发,客户难找?接单难?怎么办? 做软件开发,客户难找?接单难?怎么办?随着网络的迅速发展,使得越来越多的人通过网上接单赚钱.那么,究竟要怎么才能让自己拥有的这些技能实现价值变现,通过一品威客平 ...

  3. 一个玩游戏的失足青年,转行做软件开发的挣扎过程(1)

    14年的IT从业经历,中专毕业后在小镇上开过网吧.在网吧一年多的时间里,天天陪人玩游戏,后来去读了一个三流计算机专业,毕业后转做软件开发,最近五年转入游戏开发行业! 从网吧小老板到转行软件开发 1 开 ...

  4. 本文写给广大正在做软件开发的、曾经做过软件开发的以及即将做软件开发的女同胞们。同时也希望男同胞们能够给女同胞多一些理解和包容,多一些关心和帮助,让女同胞能在软件开发的路上走的更远一点,走的更好一

    本文写给广大正在做软件开发的.曾经做过软件开发的以及即将做软件开发的女同胞们.同时也希望男同胞们能够给女同胞多一些理解和包容,多一些关心和帮助,让女同胞能在软件开发的路上走的更远一点,走的更好一些.  ...

  5. 35,40 甚至 50 岁转行做软件开发晚吗?看这几个成功故事

    常有人说 30 或 35 岁不适合做开发写代码了.那 35 岁以后转行做软件开发还可行么? 35.40 甚至 50 岁之后才开始学习编程,年龄会不会太大了?让我们来看看 10 个成功转行软件开发的真实 ...

  6. 每个程序员必看:如何在40岁后继续做软件开发?

    导读: 这是一个 42 岁的开发者所写经验分享文章.并且列出一些他 18 年多身为软件开发者的经验谈.许多部分看完后都会希望自己当时就能够了解,所以很推荐不论是新手或是老手都要好好阅读这一篇文章. 故 ...

  7. 做软件开发10年了,我准备转行了,做自媒体

    文|洪生鹏 编辑|静子 微信公众号:洪生鹏 最近读了<能力陷阱>这本书后,感触很多. 一般来说,做人,最重要的是要有自知之明,量力而行,量体裁衣,明白自己该做什么,能做什么,该如何做.然后 ...

  8. python能做软件开发吗-学习Python软件开发能做什么?

    原标题:学习Python软件开发能做什么? 近年来,Python语言可以说是快速抢占了人们的眼球.它以其代码简短.可读性强.适合迅速开发而广泛应用等优点让许多学员想要学习,很多人会问,学习python ...

  9. 毕业生该不该做软件开发这一行?

    计算机行业这一行每年都毕业无数的同学,大多数都抱着美好的愿望想在这个行业扬名立万,但是你适合吗? 我觉得能够在这个行业混的比较好,首先是喜欢.第二是认真. 如果自己做不到,不要做这个行业了,毕竟是青春 ...

最新文章

  1. 《机器学习》 周志华学习笔记第七章 贝叶斯分类器(课后习题)python 实现
  2. 奇妙的数学动图,美到令人窒息!
  3. 二维数组作为函数参数
  4. 互联网人才流向说明了什么
  5. ae正在发生崩溃_AE错误:正在发生崩溃的解决方法,原创问题解决方案
  6. 近期计算机视觉算法竞赛汇总—总奖池超300万人民币
  7. 网信办:2021年全国受理网络违法和不良信息举报1.66亿件
  8. 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
  9. Java大数据-Week2-Day1 面向对象基础
  10. tab栏切换制作(原生js版本)
  11. [转载] python 字典的get()pop()方法的区别
  12. 项目:识别Twitter用户性别
  13. html中语音聊天怎么实现,微信小程序语音聊天功能怎么实现?
  14. 【计算机组成原理】数据通路
  15. 请教点击按钮时获得文本框中的字符进行操作问题
  16. 萨里大学计算机博士申请,4.11微分享丨本科直博拿下港中文CSE全奖博士,师兄带你敲开申请大门...
  17. 史上最全的常用开发工具类收集(持续更新中)
  18. STIL和WGL的例子文件
  19. scala当中的文件操作、网络请求和隐式转换
  20. 从315晚会曝光网秦谈企业社会责任

热门文章

  1. 使用JavaScript Fetch API发送HTTP请求
  2. SDL2源代码分析5 更新纹理(SDL UpdateTexture )
  3. Mysql 配置同局域网下连接
  4. mysql游标遍历数据
  5. 动画软件spine和Animation2D插件学哪个好?
  6. NFC服务器在Linux,NFC-Linux知识交流-51CTO博客
  7. Photoshop怎么给图片添加简介信息或者版权信息
  8. COM编程入门Part Ⅰ- 什么是COM和如何使用COM [译]
  9. java time 格式_java时间格式的简单整理
  10. 成为阿里P7移动架构师到底有多难?不是吧阿sir