问题的另一半:东方的程序员如何看西方的程序员?
世界东部地区(印度/中国/菲律宾)主要向西方世界(美国和欧洲)提供外包服务。
您是否有与离岸团队合作的经验?如果是,情况如何?
您是否对东方的程序员抱有任何一般化的想法或观点(例如,他们是否合作,他们准时交付还是从事高质量的工作?)。这些是基于什么的?
问题的另一半:东方的程序员如何看西方的程序员?
世界东部地区(印度/中国/菲律宾)主要向西方世界(美国和欧洲)提供外包服务。
您是否有与离岸团队合作的经验?如果是,情况如何?
您是否对东方的程序员抱有任何一般化的想法或观点(例如,他们是否合作,他们准时交付还是从事高质量的工作?)。这些是基于什么的?
Answers:
嗯,有趣的观点。
我只想丢下我的。
我住在印度(我是印度人),从11/12开始就从事编程工作。到目前为止,我所拥有的只是一门高中教育,到目前为止,有趣的是,我已经做了两件事,我在印度计算机学院任教,现在我发展了自由职业者(并为自己赢得了一个非常知名的客户的项目)
因此,从我的立场来看,我认为两件事是正确的:
当然是人,但这里的印度人对生活和教育的态度与众不同,在我教的几个月中,我看到父母把孩子推入IT领域只是因为他们认为这会给他们赚钱或其他,我也教过学生完成/完成Bsc和工程学学位的课程,满分为100,有98分不能用C编写几行代码。(忘记质量代码)。
在这里的州立计算机科学课程中,他们将Turbo C作为课程的一部分,对大多数人而言,C ++是C,但仅cout
用于打印。
在开发方面,有了这类毕业生,您会期望找到大量的“工程师”来编码可怕的东西。我遇到了没有源代码控制的小型“公司”,他们甚至都不知道什么是单元测试。
可悲的是我有这么多话要说,这让我很痛苦。但是这里的每个人都不是这样。我们中有很多人,也许人们能给人留下深刻的印象。大声笑
某种程度上,即使在这里取得成功也意味着要转移到其他地方,因为没有真正的成长空间和能力来磨练您的技能。当然,这里有来自IIT和其他顶尖大学的聪明人,他们确实知道他们的知识(最终他们也搬出去了)
但最重要的是,我认为这里的IT教育非常可悲。
免责声明:我住在东欧中部,由我自己决定是东方还是西方:-)因此,我从事从西欧外包给我们国家的项目,并且受到更多西方同事和管理层的质疑关于我们的能力,类似于印度人在这种情况下必须经历的事情。
OTOH我一直在与几个印度和一些俄罗斯开发商合作进行两个主要项目。第一个还涉及完全由印度分包商开发的组件,该组件很容易成为我曾经接触过的最恐怖的邮政编码(我不能说“我曾经阅读过的最恐怖的代码”,因为看到最大的单个代码源文件的大小超过600 KB(或AFAIR大约3万行),我迅速将其关闭,只能祈祷我永远不需要触摸它。我的祈祷被听了。
后者(我目前正在研究)已分包给3家不同的公司,其中一些公司聘用了几名印度程序员。在过去的1.5年中,我们一直在清理这一结果,在可预见的未来,还有大量工作要做。
在我的个人生活中,我在前世时代在印度生活了3个月以上,所以我可能比普通西方人对印度及其居民了解更多。我个人非常喜欢印第安人。
我的个人经验是,程序员之间也可以观察到西方人和印度人之间普遍存在的同样明显的文化差异。印第安人通常非常勤奋地执行扔给他们的任何具体任务,但不一定会看到甚至感觉到需要了解大局。这很容易导致软件质量低下。
另一个潜在的问题是印第安人在文化上根深蒂固的抵抗,拒绝接受任何要求,因为我认为这被他们认为是不礼貌的。如果您去一家印度杂货店索要毛毯/珠宝/鱼翅/等等,店主会说“是的,先生,请稍后”,然后将他的儿子送到附近的其他商店取货,自豪地向您展示。这确实是一种良好的商业惯例。但是,如果将其应用于以固定的不可能时间表分包软件开发项目,则结果可能是灾难性的。尽管这只是我的推测,但我没有具体证据表明这是否确实是将西南软件开发外包给印度的一个因素。
在我们当前的项目中,徒劳的努力的一个主要例子是绩效监控方案的实施。想法是传递收集性能统计信息的对象。但是,事实证明,该解决方案导致应用程序运行缓慢,以至于从未真正使用过。但是,它在代码中的剩余部分留给我们清理。实际上,这意味着将一个额外的对象参数传递给代码中的所有(约6000个)方法。做到这一点的人甚至在每种方法的Javadoc中添加了一条注释,并指出已添加了用于性能评估的额外参数!现在,我只能惊叹于那个家伙的勤奋,通过所有6000种方法来完成他的工作,并忠实地将Javadoc注释插入到各处。OTOH,a)如前所述,该方案从未在实践中使用,
我并不是说所有这一切都是印度可怜的开发人员的错(除了Javadoc的滥用以外)。国际海事组织(IMO)更多的是管理人员在不监视结果,不进行严格的验收测试并确保适当的代码和文档质量的情况下,无意识地将项目外包的错误。更不用说基于小时的付款方案了,它肯定不会使任何分包商都对节省开发时间感兴趣。
但是,我认为很难找到西方的开发人员来以相同的一致性级别执行相似的任务而没有任何抱怨。
在当前项目中,我们还将测试任务分包给了一组印度测试人员。就个人而言,我们仅与其中之一联系,所以不知道它们总共有多少。但是,这个人是测试人员的瑰宝,是任何项目中的宝贵资产。除了勤奋和透彻之外,他还提出了许多问题以了解全局,经常进行超出预期的测试,并准确地,描述性地报告发现的问题。
Another potential issue is the culturally ingrained resistance of Indians to say no to any request, as I believe it is considered rude by them.
“东方人”总是说“是”的这种倾向已经在其他有关东西方文化差异的文章中指出。我多年前读过的一篇文章解释说,当一些远东人回答一个问题时,他们的主要目的是暗示他们理解这个问题,而不是一定要同意受这个问题的束缚。该文章来自90年代,主要针对美国和日本企业之间的差异。
我已经处理了三个(大部分)“委托”给离岸(东半球)资源的项目。在这三起案件中,有一个在俄罗斯东部使用了一个小组(或者可能只有一个人,只处理了一个,但不确定他从事过多少工作)。他们/他做得很好,并且项目进展非常顺利,除了需要在UI上进行工作以解决英语为第二(或第三种)语言的人们在措辞上遇到的一些小问题。
另外两个是一个完全不同的故事。无论是不是偶然,在这两种情况下,程序员都在印度。在一种情况下,基本上他们所做的一切最终都只能当作原型对待-可以(在某种程度上)用于测试可能的设计,但是必须丢弃并替换他们编写的所有内容以获取生产级代码。他们似乎是我认为“ ISO 9000思维方式”的例证。他们表现出几乎宗教上对政策和程序的遵守,但几乎完全缺乏对应该解决的问题的洞察力。他们的代码可能是我见过的最笨拙的代码。
在另一种情况下,该项目最终被放弃。这曾经是最近晋升的副总裁的脑力激荡的计划,我可以肯定的是,从第一天起,他的想法就是减少支出,同时仍然能够告诉他他的想法正在积极发展。尽管我们获得的代码完全没有用,但是很难责怪承包商,因为我们从来没有花费任何精力来管理项目,甚至只是使他们成为可用的规范。他们的代码起初很差,当显然没有人关心时,质量迅速下降。
人民就是人民。有些程序员是好程序员,有些程序员是坏程序员。随着时间的流逝,一些不良的程序员可以成为优秀的程序员,而其他一些不良的程序员则永远不会从中受益。
这里的位置往往不是一个因素。但是也许机会。
我在问八岁的时候,GW Basic中的“ Bad Syntax Error OK OK”是什么意思。我在计算机上长大。并非每个人都具有这种优势。但是,时代在变化,今天的八岁孩子比昨天的八岁孩子拥有更多的技术。
但是重要的是,实现编程不仅仅是了解如何使用计算机。它比这更深入。以下是将优秀程序员(和只需要时间的程序员)与真正的不好的程序员分开的一些关键特征:
最重要的是,好的程序员也是好的沟通者。最好的程序员是可以说服他人的人。他们是可以耐心地与另一个同行讨论问题直到找到解决方案的人。
最大的挑战是沟通。
无论面临什么挑战,都不要刻板印象自己或他人。您和其他任何人一样有潜力,反之亦然。请记住,您可以做任何您真正想做的事!
我是一名21岁的印度本科生,毕业于计算机科学与工程专业的四年制学位课程。
写这篇文章的初衷是说印度不仅仅是一个外包中心。我希望西方国家会这样看,而不是吸收人才,西方国家应该在印度建立更多的枢纽。前面有一些令人反感的内容,但是如果您了解大范围的内容,您将理解我要说的话。
印度的教育处于非常令人不安的状态,每年产生的劳动力没有或绝对是可怕的技术技能。就创新或企业家精神而言,教育系统根本没有竞争力。这使我们陷入了巨大的尴尬境地,例如最近在当地开发的10美元电脑(原来是一台廉价的基于Android的中文平板电脑,仅由一家印度公司维护),或者更早提出了另一项技术突破(后来证明是拇指驱动器)。教育机构完全脱离了现实的技术世界,对以创新为名的学生重新发明轮子的兴趣更加浓厚。教育机构,每个人都讨厌他们。
来到您至少希望学习一些热门开发技能的地方:
除我的教育机构外,我还接触过印度的一些培训机构。编程和软件开发发生在两个级别,即应用程序级别开发和系统级别开发。
对于应用程序开发,印度大多数应聘者都被公司大量招募,以争取成为程序员的替补席并获得更多项目。归根结底,质量的妥协是因为招聘过程非常愚蠢,有时人才浪费是通过让人们擅长于自己的工作来完成,例如创建Java框架以及仅创建简单的WinForm和ASP.NET UI等愚蠢的事情。 (尽管不确定,我正在谈论新的招聘,有些人声称这是新的招聘)。如果不考虑良好的软件工程实践,则可以由7年级学生完成这种编码。
但是同时,也有一些对事物怀有浓厚兴趣的独立程序员和开发人员。他们就像无名英雄,他们失去了所有希望,对改变世界最不感兴趣。他们想要的就是充分利用自己的技能,所以这一切都与金钱和出国有关。尽管我们的课程完全限于系统软件(使用TurboC !!!进行4年的C编程,但是愚蠢而模糊的C ++,而没有在C语言中使用cout的正确的面向对象概念,则不是C ++,使用gcc进行ASM和更多C编程),而在公司中,我们大多是负责进行应用程序开发(ASP.NET,WinForms,J2EE)。基本上,由计算机科学工程师担任软件工程师的工作。是的,了解计算机科学会有所帮助,但不了解适当的软件工程会严重阻碍该过程,从而使整个系统急剧下降。#失败。
我会举一个简单的例子。我加入了一个培训学院来完成我的最后一个项目,他们希望我创建一个ASP.NET网站,这将是一个库存系统(酒店预订,CRM之类的东西)。是的,这不是一件容易的事,但我认为不值得从事一个项目。它将彻底改变方向,这些项目在现实生活中天生是巨大的。由3人一组在6个月内交付,您将了解由此导致的缩减规模的不可用系统的种类。这些学院没有太过强调,它们对“不要害怕学生告诉他们太多”和“给出概述,让他们自己学习其余知识”更感兴趣。最后,人们在项目中开发的东西甚至不是经过充分测试的原型,
我讲了自己的主题,即语音指导的实时导航系统。我正在使用WPF,Google Maps API和我能使用的所有最新技术。为了获得良好的软件工程实践,我使用了源代码控制和MVVM,并将全面介绍我所知道的其他内容。我今年21岁,毕业。我想在我这个年龄,西方人仍处于学习阶段,并在晚些时候成为毕业生。这使西方毕业生变得更好,更博学。我们有数量但没有质量。
在印度,一般来说,我对我的项目所做的工作水平不希望达到本科生最后一年的水平。但是,我会这样做,因为我想这样做。同时,我们小组中的其他人也很乐于在ASP.NET中进行项目,制作5-7页,运行数据库查询,填写网格视图并且对安全性一无所知。地狱,即使是那些自由职业者的网站也有更好的职位发布(YouTube克隆,Google即搜即得+ X = Y混搭)。
六个月后,您会发现在公司中将您的业务外包给公司的那些人,您也会在这里找到我。喜欢他们的人比喜欢我的人十比一:(
确切地说,在我整个教育生涯和大约500多名熟人中,我确实看到有4位具有我认为与他们一起从事项目工作的专业水平)
最终,所有印度毕业生都将写出很好的文档,因为这是理论,但不要指望他们提供任何万无一失的代码。
对于系统软件,情况也是如此。我的一个朋友正在使用Android NDK,并且正在一家公司进行实时项目。他很幸运得到了这个项目,我很羡慕他,但是这种水平的工作也发生在印度。我学院的另一位大四学生在最后一年的项目中仅使用2个廉价的网络摄像头就开发了一个kinect克隆(多点触摸鼠标,就像少数族裔的报道)。同样,还有其他人从Internet复制代码,并以某种方式获得重新发明轮子的学位。
我的最后一句话,不要指望整个印度的质量都受到损害,也不要认为印度人是廉价的软件维护者,并且只适合外包维护工作。
另外,不要指望在商标方面具有良好教育背景的人编写好的软件。印度的教育体系全部以理论为导向,不注重实践,有时,更多地了解或愿意知道更多信息可能会使受到恐吓的老师陷入困境。尽管如此,优秀的程序员希望在更美好的职业中寻求绿色的牧场,而不仅仅是一份好工作,还有其他人希望找到一份好的“工作”,在本田市内开车,在中国大陆吃饭,从此过上幸福的生活。 。
我更喜欢奥迪。:)
警告,即将到来的概括。所表达的观点并非所有人共享。实际上,作者甚至可能都不相信它们。
西方开发商害怕东方开发商。我们一次又一次地听到我们的工作最终将被外包。这对任何关系都是不好的开始。更糟的是,我们经常被提醒我们的教育水平较低。东方开发商更便宜,更聪明,并且会忍受更多麻烦。我们与东部开发商的专业经验无关紧要,因为它充满了恐惧。
我不能为别人说话。这是我的观点,人们似乎并不不同意。让我从我看到的一些事实开始。
首先,有证据表明,大多数人并没有真正从事软件开发。(例如,UI研究表明,超过一半的人口可能永远不会“理解”目录树的想法。)在西方国家,这些人可以轻松找到适合自己的其他体面工作。相反,在印度,无论如何都要进行软件开发的压力很大。这意味着印度确实有很多人不应该从事软件开发。
其次,印度是外包的共同目的地。公司之所以这样做,是因为它看起来很便宜(工资很低)。但是,有据可查的文件(例如,参见COCOMO II模型中记录的成本因素),以下所有方面的增加都需要开发时间和精力:位于多个位置的工人,位于多个时区的工人以及来自多种文化的工人。在印度运行并由西方指导的任何项目都将具有这三个成本因素。(这是在您趋向于发现确实不应该成为开发人员的人之前)。
最后,软件项目管理中绝对最大的挑战是,向需要了解这些信息的决策者提供准确的信息,以了解哪些信息不起作用。我喜欢这种幽默的态度。出于各种原因的组合,无论是绝望,文化还是对客户的正确信念,在外包给印度的项目中,这种趋势都会更加严重。有时达到可笑的程度。
结果是,美国公司很容易屈服于低工资的警钟声,将工作外包给印度,然后外包的项目变成灾难。(但是直到美国人失业之后,灾难的程度才显现出来。)
公司采取的另一种方式是,以H1B签证雇用印度人进入美国。这样就消除了远程工作者的问题。许多印第安人想要这些工作,因为美国的薪水更高,等等。而且有足够多的真正优秀的印第安人来填补所有可用的工作。但有一个问题。雇用H1B签证的美国公司必须发誓要保证没有美国人能找到工作,向被雇用者收取市场价格等。但是,持有H1B签证的人很难转换工作。这使雇主被俘虏。并且不留下市场激励来公平地对待这些员工。这为公司提供了不诚实的强烈动机。太多屈服。
作为美国人,最好的,最聪明的来到美国毫无疑问。恰恰相反,这就是建立这个国家的原因。但是,一旦他们到达,请平等对待他们。例如,我认识一个来自菲律宾的人,由于他的签证身份,他不得不拒绝来自Google,Apple和Facebook的工作机会。他目前的收入大约是他的两倍。如果允许市场确定像他这样的人的薪水,那么公司尝试滥用H1B计划的动机就会大大减少。
所以我有意见。由于多种原因,将项目外包给印度经常会导致灾难。作为H1B工作者获得的人才往往很优秀,但是该计划被严重滥用,使我感到难过。
我已经与印度开发人员(我是意大利人)合作了3年。人民就是人民。我们之所以外包,主要是因为我们需要一支团队,而在意大利,很难找到一支团队,尤其是在不流行的语言(例如Delphi)中。因此,主要原因是找到一支团队,而不是成本。
无论如何,我们发现的团队非常好,因为它有非常好的领导者。但是其他开发人员并不那么重要。发生了什么?现在,开发人员直接为我们工作,因为他是一个非常友善的人,并且也成为了我的朋友。有牢固的关系,我们也付给他几乎意大利的薪水。为什么?因为关系很重要。我见过很多人为了节省而去印度。
你得到你所付出的。那么,您当然可以节省一些钱,但是我认为(特别是对于小型项目)仅出于节省资金而进行外包是错误的选择。
我已经在中国居住了两年多(我是加拿大人),并且与中国开发商合作,而且奇怪的是,与海外加拿大开发商合作。我可以说,至少是中文的开发人员所做的一些概括是正确的,也就是说,我在这里遇到/合作过的大多数开发人员是:
刚开始他们写的并不总是很好。肯定有文化上的鸿沟,但从设计不良的系统开始就需要漫长的陡峭学习曲线。但是,您知道……两年后……在此系统上完成的一些最佳工作来自中国办事处。随着这种情况越来越明显,这进一步加剧了威胁因素。
坦白说,这并不容易,但是当我从个人经验看趋势时,我认为我站在栅栏的右边。
这是一个有趣的话题。我曾在SF和硅谷工作,也曾在欧洲为当地客户服务,在印度设立了离岸办事处,现在在南美开设了离岸开发店。我什至与非洲开发人员做了一点工作。
世界上每个地区都有能力培养优秀的程序员。我在马拉维有一个黑客朋友,他为HIV诊所构建了令人惊叹的触摸界面导轨支持的开源系统,并以重要方式使用并为开源项目做出了贡献。
我还看到过美国程序员在知名品牌初创公司和大型网络公司工作,他们无法用纸袋编程。拥有麻省理工学院Comp Sci硕士学位和多年行业经验的人,在编写好的生产代码时,他们是无法削减的。
欧洲,拉丁美洲,美国和印度之间存在非常真实的文化差异。然后是黑客文化,它或多或少是普遍的。
主流印度科技社区喜欢让人们陷入困境。每个开发人员的小时费率可能会更低,但是如果供应商相信数量胜于质量,则需要两倍的开发人员来运行代码。
认证。我勒个去?印度喜欢认证,ISO,CMMI等……而且这种情况还在持续。这是毫无意义的屁股覆盖。更重要的是,这不是您获得优质软件的方式。
种姓制度。种姓制度在印度是非法的,并且自独立以来,为消除这种制度已经进行了大量的工作,但它仍然是一种活生生的呼吸野兽。大多数西方人忽视种姓制度的存在。我在美国长大,但父亲出生于印度(俗称英裔印度),母亲以学生身份进入那里的大学,然后回国继续在印度的大学任教。种姓制度非常真实,它来自印度并且很古老,但是英国人鼓励并使用它来维持权力。西方人需要知道,他们将取代英国,成为等级制的最高层。您会被称为先生,您将不会受到质疑。大多数印度经理认为他们的角色是告诉下属该做什么。说出来并提供其他选择会受到惩罚。
Zoho并不是每个印度开发商店都像这样,通过违反所有规则建立了惊人的印度业务。他们根据能力而不是等级或您所拥有的大学证书来雇用。通过这样做,他们已经将完整的SaaS替换引导至MS Office Suite。
印度有一个充满活力的黑客社区,还有聚会,邮件列表,小型会议等。这些开发人员是世界一流的。他们经常发现很难在主流的印度软件开发行业中找到工作。我本人为我们的印度办公室找到了两个python开发人员,他们很棒,然后我们的印度经理坚持要雇用十几个应届毕业生,新毕业生来填补这个团队。几个月后,黑客退出了,他们的经理使他们的生活变得地狱。我们剩下了十几个年轻而热情的员工,其中大多数人都不知道如何编程。
最好的新生是一个年轻的女人,她在嵌入式系统上为开发人员构建了一个IDE。没有人愿意雇用她,因为她来自一个保守的家庭,印第安人认为她一旦结婚就将被迫辞职。
印度有很多优秀的开发人员,但是建立了价值结构以将其推出,并根据与创建优秀代码无关的事情来提升人员。
另一个大问题是时区。这不是优势,这是一个巨大的问题。这意味着现场团队与离岸团队之间不会一直保持直接沟通。这会引起巨大的误解,并迫使您编写大量文档。这使得敏捷很难实现。
可悲的事实是,印度公司生产的大量软件质量低下。您经常听到开发人员谈论印度工程师的engineers废,这是不对的,但这反映了大型传统离岸公司的素质。这是印度商业文化的错,而不是开发商本身。开发人员陷入了错误的系统中,从而奖励错误的事情。
我已经经历了多个离岸至亚洲的项目(我不会提到其他国家)。所有这些都是惨淡的失败。尽管发送了大量详细的文档,规格文档等,但结果还是差强人意(如果确实产生了任何结果)。通常情况下,它要么根本不起作用,要么功能有限,以至无用。项目也很晚(如果它们根本没有交付成果)。
OTOH我曾与亚洲程序员以及在欧美工作的其他人一起工作过,其中大多数都是优秀的,勤奋的人,他们非常了解自己的工作。
也许其中有几个人说,所有优秀的IT人员都离开亚洲去欧洲和美国工作,这说明了一切。剩下的就是最底层的东西,只有很少或没有素质的人员来提供监督,培训和团队领导才能改善。必须通过电话和电子邮件与居住在这里(至少来自某些国家)的亚洲IT人员打交道(并在电视上观看访谈等),因此也可能涉及文化。许多人似乎认为自己在种族和道德上优于美国人和欧洲人(并认为那些离开本国叛徒的人),并且拒绝听取他们认为次等人的建议。对于亚洲国家/地区的每个人来说,这当然都不是正确的,但可能会广泛传播,以营造一种“我们最了解,
东欧的情况好一些,可能部分是因为其中许多国家是欧盟的一部分,因此如果它们加紧对它们采取成功的法律行动的威胁更大。
直率和愤世嫉俗:
在IBM的10年中,我与世界各地的程序员合作,建立了各种关系。您了解的第一件事是,在海洋的两边,地理刻板印象都是错误的。程序员是世界各地的程序员...从任何地方选择其中的100个,您将获得大致相同比例的人,他们如果没有旅行或谷歌旅行,就无法编程Hello World,或者三个人去谷歌,才华横溢的人和才华横溢的人。
也就是说,其中一些地区的商业环境在地理上是正确的。例如,印度像奥斯汀,德克萨斯州或傻傻谷(Silly Con Valley)之类的地区都在90年代末期和2000年代初……很多工作都在跳槽和旋转门,人们每年左右来回走动。另一方面,中国似乎更像美国中西部的硅草原,人们选择一家公司并在那里呆了更长的时间。巴西,俄罗斯和欧洲似乎处于中间位置,并不是停留在中等长度的时间,而是似乎两者兼而有之,有些人跳槽,有些人安顿下来。
我属于东方世界,我也有从公司到东方世界的外包工作经验:-)尽管我们可以提供所有帮助,但我公司不想投资自己的资源来完成工作外包商项目确实失败了。与其中一些工程师的合作使我感到沮丧,我认为外包模式和技术专长可以在东方变得更加成熟,以求改善。话虽如此,我已经与许多西方世界的人一起工作过,他们也可以有所进步。您会发现全球各地的好程序员和坏程序员。
You find good and bad programmers across the globe.
我住在中欧。近年来,外包浪潮席卷了我们。我曾从事过来自“西方”的外包项目,但如今,外包项目位于较便宜的国家/地区。所以我一直在等式两边。
当我们是外包公司时,我们的经理和我们每天工作的人都很友善,将我们视为内部开发人员。其他人可能会对工作安全有一点担心,我认为这很正常。另外,我们在一个较大的项目中得到了第二流的任务,这对我也很好,您不应该外包您的主要专业知识。
然后,这些项目转移到了较便宜的地区,这是不可避免的。
整个外包故事的底线是,管理人员不会对您的知识,经验,教育或专有技术有任何帮助。他们只关心成本和奖金。因此,除非有必要在本地建立办事处,否则软件项目最终将外包给越来越便宜的国家。
免责声明:我是印度人,这听起来可能是印度人的看法,但我曾与许多西方客户甚至在美国合作。如果东半球拥有世界上最糟糕的程序员,那为什么西半球会外包给东部呢?如果您为了节省开支而外包给全球东部地区,则IMO将损害质量。好,快和便宜,选择任何两个。当我不得不雇用一个人时,我会问我的组织对他们的期望是什么,他们准备支付的价格是多少。要说服一个才华横溢的自尊心强的人为您工作,以减少薪水和增加压力,真的很难。正是那些自由职业者的网站与不幸的西方人(他们的工作是班加罗尔-d)相结合,导致东方程序员成为了代码猴子。如果您准备支付更好的价格,您将获得更好的结果,并且不要遵循那些ISO / CMMI / SEI类的服务公司。他们雇用人才,就像他们饲养羊群或牲畜一样。
我是一名美国人,目前居住在国外(在俄罗斯),并且是一名企业家(也是支付帐单的自由职业者)。我曾在硅谷担任开发人员,技术团队负责人和软件/系统架构师20多年,曾为多家公司和初创公司工作,其中一些非常知名,其中包括一家最终成长为行业主导的数十亿美元专业公司的初创公司。国际公司。这最后一家公司(称为“ X”)在美国和世界各地设有开发中心:印度,俄罗斯,中国,欧洲等。我直接与其中一些团队的成员合作,发现他们非常有才华,值得的工程师。自信和创造力,我会同意,目前是美国工程师的性格类型,
外包显然是关于钱的。当我离开美国时,X并不是在美国招聘,而是在国际办事处招聘。X向非美国工程师支付约等值(年经验,技能)美国工程师薪水的1/4至1/3(取决于地区)。通常考虑到一些非美国地区的经济状况,这仍然是一个相当不错的薪水,但这对于美国工程职位本身的存在的薪水率来说并不好。
我相信自由职业是计算机工作的未来,尤其是软件。从本质上讲,它具有高度的便携性,您所需要的只是一台笔记本电脑和互联网连接,您就可以开展业务。内部现场团队总有一个案例:更可靠的日程安排,可预测的技能组合等,但维护成本非常高。
我看到美国工程师们在这里经常发表有关所有非美国开发人员的可怕情况的自高自大的帖子(例如,查看以下线程:https : //stackoverflow.com/questions/209170/how-much-does-开发iPhone应用程序的成本)。刻板印象是,它们很便宜,但总是不合格,并编写糟糕的代码。获得质量的唯一方法是向美国工程师支付美国薪水。胡说!美国工程师需要醒来-行业和经济正从高薪内部开发人员转移到分布在世界各地的分布式开发团队。当然会有糟糕的非美国开发人员-但是请回想一下您所传递的所有美国受访者,因为他们没有衡量。我曾经必须查看或处理的某些绝对最残酷的代码是由美国内部工程师编写的,他拒绝更改或改进!仅仅因为一些随机的,有才华的开发人员做得不好,并不意味着所有非美国工程师都非常糟糕。代替,有才华的客户应该看起来比底价竞标者略高一些,那里有真正的宝石,甚至顶级开发商,都可以以低于美国内部价格的价格大幅度折扣。在这个特定的时刻,我会向您保证,很多人才都集中在美国-但是,任何认为这永远不会改变的人都会受到严重的迷惑。
人才和经验的确比缺乏人才付出的代价更多,我会为您提供的。但事实是,美国内部员工的薪资水平与世界其他地区的薪资水平相去甚远。不断变化的人才/成本连续体是不断变化的,而且非美国工程师的背景环境人才只会上升,这将对美国的薪资水平和高度存在的高薪环境造成巨大的下行压力。有薪的美国内部工程职位(请记住:X在全球范围内招聘,但不在美国招聘。文字写在墙上)。因此,才华横溢的人总是会比不那么才华横溢的人收取更多的费用,但是您可以确定,按照当前的美国汇率,它不会收取费用。
正如开发团队的实际位置已经改变一样,全世界人才的集中度绝对会发生变化。非美国的人才水平将继续上升,在不远的将来,我们将回顾这些线索,并思考“他们在谈论什么,您可以在世界任何地方找到顶级人才”。
我曾在全球的东部和西部工作过,并且会分享想法。在移居美国之前,我在班加罗尔工作了5年。在美国工作了大约8年,然后回到了印度。我被迫坐在家里,因为这里的工作要求太高。有2个年幼的孩子,不可能投入那么长时间。终于找到了一份兼职工作。我很震惊地看到印度的工作质量。当我们离开美国时,这还不错。年轻人似乎似乎对学习新技术没有任何责任或热情。就像有人指出的那样,说“不”很罕见(IMO对他们的自我造成了打击),结果您将看到完全无用或平庸的工作。该代码不可读,根本不了解全局,没有扩展范围,等等。等到您培训一个人时,他准备跳出工作去种绿色的牧场。话虽如此,我仍然会说很少有特别好的。如果您碰巧与他/她一起工作,请认为自己很幸运,特别是如果该人可以很好地沟通!
如果工作质量很差,那就不是他们只看印度,而是看谁出价最高,那可能不是Prasoon Saurav之类的,而是一些初级编码团队。
我直言不讳,也很笼统地说,我不认为“西方”的程序员对“东方”的程序员有很高的评价。我不确定这是否合理。
正如一些答案所暗示的那样,外包对“西方”的许多人构成威胁。这是不信任“竞争对手”程序员的自动原因。
在查看外包项目时,我只看到了不好的代码,而且只有少数几次。这可能是因为工作去了一家廉价商店(“您得到的是您要付的钱”),项目管理不善,或者很有可能是因为如果项目成功,那么我就不需要看代码。换句话说,您只会听到错误的代码。
也有恐怖故事-例如上述30000行文件。同样,故事越糟,它将传播得越远。
人们会说诸如“如果您想便宜地做,外包。如果您希望正确完成,请在内部完成。”
如果您正在学习和改进,那么我就不必担心太多。
免责声明:我没有任何直接外包经验。下面,我介绍一些我与一家大型西方软件公司的项目经理讨论该主题时提出的几点。这个人在印度工作了很多时间,负责监督外包团队。
如果您听说过Wipro,Infosys,TCS等公司,那么世界上一些最大的IT公司就在印度。大多数“西方软件专家”都无法负担的最大的印度公司将很容易成为世界上质量最好的公司。他们获得了所有关于质量的证书,以减轻西方客户的恐惧。与大多数西方公司相比,大多数印度软件公司的工程师(学位和经验)也更多。谷歌,甲骨文,IBM,微软,SAP都有开发中心,并不是所有人都在寻找廉价的程序员。
那么我们如何看待西方工程师。当您俯瞰大海时,我们看到的是混合袋,就像您看到的混合袋一样。我们钦佩有资格的超级技术人员,有时可能会迫使我们使用冲洗袋。总的来说,我们在混合团队中相处得很好。如果您在西端有“以技术为导向”的商人,而在另一端只有程序员,那么这种关系真的很糟糕。这通常是一家资金短缺的西方公司,他们希望通过不雇用当地经理来节省一些资金。
我外包给东方国家(不是东欧)的经验非常糟糕。我见过的所有应用程序都很恐怖,看起来就像一堆不良的,无关的代码粘合在一起,几乎不能完成应有的工作。
我不认为这是由于新东方程序员比新西方程序员更糟糕,我认为这是由于东方程序员没有经验丰富的程序员来指导他们。在西方世界,使用现代编程语言已经有45年了,这是一种常见的职业,因此有许多经验丰富的程序员可以与新的程序员一起工作,您可以从中学习。在东方,现代编程发生了什么?10到15年?人们确实缺乏经验可以学习。最重要的是,我认为(从这里我看到的方式是)东部的大多数程序员都被外包给他们,他们挑起了很多不良特征,而这些缺陷的目的只是为了获得项目。通过偷工减料快速完成,这是您不应该传递给新开发人员的经验。至少在美国,大多数编程工作都是针对工作在有限的产品上的人们,随着时间的推移,他们必须支持这些产品。因此人们选择了确保软件稳定和安全的技术……这是传给新一代的好经验。
是的,基本上我不认为这与一个人在任何地方的受教育程度有关,而与工作中养成的习惯有关。那里有很多优秀的程序员(尽管我认为他们在少数派中很好),但是我不认为当项目外包时,西方人会与他们互动。
至于东欧人,他们有经验丰富的开发商。我只是担心它们可能会逐步淘汰以满足外包的需求。
@giddy,Peter:作为一名来自印度的程序员,我不得不承认你的陈述的真实性,虽然很可悲:在印度编程不是人们会出于选择,而是出于强迫。他们是社会的还是经济的。这就是为什么在印度很常见的情况是,人们迅速从技术工作转向纯粹的管理工作(实际上被称为“升职”,这是我讨厌的短语)。即使您想继续以技术人员的身份成长,管理角色也会对您有所控制(这实际上就是我决定搬出印度的原因之一)。
出于我之外的原因,职业发展等于为您工作的人数量,或更准确地说,是为您工作的人数。“我对一支x团队负责”或“在我下面工作的x个人”的说法被认为是值得印度“成功”的人(不要介意“ x人”可能是那种人)线程中已被其他人引用的代码)。
说了这么多,我想指出的是,糟糕的代码质量并不仅限于印度或其他“低成本”国家。即使在欧洲,我有时也会看到熟悉的态度和代码质量。值得庆幸的是,它们并不是通用规则。
在离岸外包方面,以及与离岸公司合作方面,我有不同的经验。供参考,我住在美国。
我曾在一家与印度公司签约的公司工作,该公司已通过CMMI 5评估,可以廉价地工作。该公司为他们提供了一些从头开始编写的客户端软件,回来后,该代码有错误,完全没有文档记录,并且通常很难重构和维护。该公司最终只是从头开始编写整个客户,并吃掉了离岸外包的成本。
在另一个例子中,我曾在一家公司工作过,与一家亚洲公司合作,将他们的服务和产品引入了东方市场。发生的是一个秘密故事,只有几个人知道(并且我自己是代理人),这家亚洲公司在哪里获取了我们的源代码和产品设计,中断了合作关系,然后发布了与我公司相同的产品。
还有一个例子,我工作的一家公司在中国开设了一家研究室,这是一个非常现代化的地方,他们办公室里的东西比我在我这里的东西还要贵。我被派到中国办事处接受为期一周的培训,因为该研发设施将用于进行定制Linux开发。该团队确实有一些非常出色的人,但是像那个身材的开发人员一样,他们很快就离开了,剩下的团队编写了一个API供我们在美国这里使用。我将API称为完全不好的API,因为它对Linux没有任何了解,而底层的源代码充其量也很奇怪。但是我认为最大的问题是该公司也选择了一个陌生的团队来负责Linux的工作,因为该团队中没有人是Linux专家,并且该项目在一年后被取消。
在其他情况下,我与另一家公司签约的是一家东欧公司。这些家伙真的很棒,他们被签约进行漏洞测试,尽管他们实际上很昂贵,但通常被认为是值得的投资。
我还曾与一家相当庞大的印度IT服务公司合作,我们内部有一些开发人员,这些开发人员受雇于他们但与我们签约。那里有好几个开发人员,但这是一个更笼统的故事,因为我们大家一起从事各种项目。
这些故事很有趣-我曾与多家公司合作,也有关于国内公司和外国公司的故事。
对于某些公司-交流始终是困难的部分。我在东部时间工作,我们会比我们提前10-13小时与人们交谈。我们也只进行管理,不与实际的开发人员交谈,因此那里存在一个脱节。
我遇到的开发人员也不喜欢他们的工作。我们有一个韩国开发人员,他想来美国工作,因为他为在韩国的一家国防公司工作而花了很短的奴役时间。我曾与一名开发人员(也是外国人)合作,他们为成为一名开发人员而哀叹自己的选择-他这样做是为了设法赚到几百万美元。
The company ended up just writing the entire client from scratch and ate the cost of the offshoring.
。我们两次遇到这个问题。