Why Software Outsourcing Doesn't Work ... Anymore

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

我想为我的网络服务创建一个iPhone应用程序,但是我没有程序员。嗯,我没有iOS程序员。而且我没有钱。听起来熟悉吗?我该怎么办?对了,我去谷歌Upwork找到一家位于班加罗尔的很棒的公司,他们愿意和我合作并提供合理的报酬。几个月之后,花了几千美元后,我意识到这并不是我期望的结果。又过了几个月,我发誓再也不将任何软件开发外包给任何人。只有我一个人这样吗?不完全是。

这个前言只是个玩笑,但离真相并不远。当然,在大公司和大项目中,情况会有所不同。但结果几乎总是一样的-灾难。

我说的是外包,而不是离岸开发。不同之处在于,在外包中,有两家公司参与:你作为客户和来自卢姆帕兰的WeCodeLikeNoOneElse公司。在离岸开发中,你只是在同一卢姆帕兰开设了自己的办事处,并拥有自己的管理和员工。再次强调,我在这里讨论的是外包

在写这篇文章之前,我读了几十篇文章关于外包失败的原因,并找到了一打“原因”。然而,我认为它们都没有抓住关键,因为它们是从付费客户的角度来看问题。我尝试从两个方面看待问题,并告诉你丑陋的真相。稍后再谈。现在,让我们探讨一下通常的原因。

提供最低价格的供应商。以下是这个论点:“所以你想外包是因为你想优化成本?你最终会得到最便宜的软件商店,并很快后悔。”好吧,那么解决办法是什么?只需支付更多?我认为这不会解决问题;我只会烧更多的钱。而且,我认为这个原因与外包没有任何特定关系。在任何其他的商业交易中,“赢-输”情景都是失败的直接路径。

文化不匹配。 “你在加利福尼亚,他们在巴西;你们彼此无法理解。”这就是为什么我们会出现成本超支进度滑坡和代码质量低下的原因吗?我不这么认为。此外,我的经验告诉我相反的情况。我们在Zerocracy的程序员来自15个以上的国家,我们从未遇到文化问题与任何工作冲突纠缠在一起。

缺乏面对面交流。 “他们远在波兰,所以你很少真正与他们交谈。这就是你们彼此之间的误解。”听着,你有没有见过我并与我进行面对面的交谈?我是在和你说话,这篇文章的读者。没错,你没有见过我,但是通过阅读这篇文章你没有任何问题理解我的观点。这主要是因为我已经尽一切可能确保我的观点对你而言是清晰的。我有兴趣将我的思想传递给你,这也确实发生了。在外包中,问题不在于渠道,而在于动机。请继续阅读。

没有衡量成功的指标。 “你根本无法为一个海外团队定义清晰的成功指标。这就是为什么你们的合作关系最终破裂。”或者类似的说法。我没有完全明白“成功指标”是什么意思,但如果是我所认为的那样,他们是对的:对基辅的软件外包商来说,成功是一回事。对于你作为这家商店的客户来说,成功是完全不同的事情。请继续阅读。

规格不清。 “对于大多数项目来说,很难制定出好的规格,而一个设计不好的规格是失败的原因。”是的,这是非常正确的,但这与外包有什么关系呢?啊,对了,他们在阿根廷,我们在纽约市-我们如何制定一个好的规格呢?我不认同这个观点。对技术要求不能清晰明确地进行规定是架构师的一个缺陷。学习、培训和阅读应该可以解决这个问题。将每个人都聚集在办公室里并不是一个解决办法。

人才流失。 “离岸开发人员不是你的员工。他们永远不会对项目忠诚,最好的员工会不时地离职。”是的,人们偶尔会离开。但再次问一下,这与他们的位置有什么关系呢?如果他们不和首席执行官使用同一台咖啡机,他们对项目的忠诚度会降低吗?除了将每个人都安排在同一个地方之外,还有许多其他更有效的方法来提高团队的动力。

还有很多其他原因,但这对我们来说已经足够了。如你所见,我不认为这些“原因”是合乎逻辑的。它们仅仅解释了后果,根本没有触及真正的问题,我认为真正的问题是这样的:

对于外包公司而言,你只是一头现金奶牛

尽管你的期望很高,但你既不是合作伙伴也不是朋友。

你们的目标与他们的目标相反。

所有这些关于外包失败的“原因”都源自我们头脑中存在的这种基本混淆:我们认为在北京的这10名程序员是我们业务的一部分。我们相信他们是我们的团队。他们和我们在同一条船上,分享着相同的价值观,朝着同一个方向看。

这纯属虚构

我曾经在一家外包公司工作了近10年(2010年辞职)。残酷的事实是,对于一家外包公司的CEO来说,唯一的问题就是如何支付下个月的工资单,90%的开支都是用于支付程序员的工资。

这就是为什么对他们来说,一个好的客户是一个付费的客户。不是一个拥有成功项目的客户。不是一个解决问题得当的客户。不是一个成本优化的客户。不是一个充分利用最佳技术的客户。一点也不是。最好的客户就是那个付款,大笔付款,并且按时付款的客户。就这样。

这就是所有外包问题的根源。

本文的标题声称外包不再奏效。为什么不再奏效?过去奏效了吗?是的,在第三世界(离岸)国家,程序员的工资极低时是奏效的。例如,2001年,我们在乌克兰有一支非常优秀的高级Java开发团队。我们给他们支付了高于市场价的薪水,那时是每月300美元。同时,我们以每小时15美元的价格将他们的时间卖给美国客户,即每月2500美元。看到利润了吗?

以这样的利润率,外包运作得很好。当时我是一家公司的CEO,几乎不用担心工资问题。我有足够的钱支付我的团队,即使我们最终失去了一些客户。让我这样说吧:我有奢侈向我的客户诚实。

置身于他们的角度。今天,乌克兰一个优秀的Java开发者赚取每月4,000美元。除此之外,开发者还期望健康保险、免费健身会员、免费午餐、带薪假期、带薪病假等福利。与此同时,市场上Java的价格与多年前相比并没有大幅增长。即使你每小时收费40美元(这是很不可能的),你的收入也只有6,800美元。再次强调,你的收入是6.8K美元,而你的开支接近5K美元。看到利润空间了吗?

别忘了办公室开支、税费、电脑、行政人员、团建活动等等。由于这样薄利,如果你失去一位关键付费客户,你会一文不名。你根本无法负担得起把你的程序员长时间”闲置”。

因此,你唯一的动力就是保持现金流。不管怎样。项目越长,越好。代码质量越低,越好——这样可以有更多的维护费用。电话、会议和其他浪费时间的事件越多,越好。需求规格越混乱,越好。无论如何都要从客户那里榨取钱财。

你不得不这样做,不是因为你邪恶,而是因为你必须养活你的团队。你的团队。是的,团队是你的。你要为他们的薪水负责,而不是客户。为了保护团队,你必须违背客户的真实利益。你无法与他们站在同一条船上。

所有这一切的意义在于,外包根本行不通,因为你的商业利益无法与外包的”合作伙伴”的利益保持一致。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-05 at 22:18

sixnines availability badge   GitHub stars