【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

为什么软件外包开发不再可行

  • 2015-11-03
  • 本文字数:1876 字

    阅读完需:约 6 分钟

Yegor Bugayenko 是一名软件开发人员,同时也是软件外包公司 Teame.io 的创始人和 CTO。从自己将近 10 年的软件外包公司工作经验中,他得出结论:现如今,软件外包开发已经行不通了,软件外包的结果只有灾难

他查阅多篇文章,寻找软件外包失败的原因。他认为,下面所有的原因都不得要领:

  • 最便宜的提供商:有人认为,软件外包是为了降低成本,所以最终会选择最便宜的提供商。但 Yegor 认为,增加开支并不能解决该问题。而且,这个原因也不限于软件外包。在任何商业交易中,“你输我赢”只会通向失败。
  • 文化不匹配:有人认为,外包公司同客户之间的文化差异是导致成本超支、计划延期和代码质量低下的原因。但 teamed.io 的团队来自超过 15 个国家,他们在工作中从没有因为文化问题而纠缠不清。
  • 缺少面对面交流:有人认为,外包公司同客户身处异地,缺少面对面交流,容易产生误解。但 Yegor 认为,不见面也可以清晰的表达和交流观点。
  • 没有成功指标:没有清晰定义成功指标,这是外包公司同客户关系破裂的原因。Yegor 认同这一说法,对于外包公司和客户,成功有不同的意义。
  • 糟糕的规范:有人认为,大部分项目都无法定义良好的规范,而这是导致外包项目失败的原因。Yegor 认同这一说法。不过,他认为这与外包公司无关。无法明确定义技术需求是架构师本身的缺陷,可以通过学习、培训和阅读来解决。
  • 人才流失:离岸开发人员缺少对项目的忠诚度,他们中最优秀的可能随时退出。而 Yegor 认为,这与开发人员的所在地没有关系,应该采用更有效的激励手段。

对于上述原因,Yegor 认为,它们仅仅能够说明外包项目的结果,但并没有触及真正的问题。在他看来,真正的原因是外包公司的 CEO 只关心一个问题,就是下个月的雇员工资,因为公司 90% 的支出都是程序员的工资。所以,对他们而言,付钱的客户就是好客户,他们并不关心客户项目是否成功、成本是否优化等。而从前,软件外包之所以可行,是因为外包公司的人力成本非常低,他们通过向异国客户出售程序员的时间可以获得巨大的利润。但现在,由于程序员对工资及福利的要求增加,利润空间遭到了严重压缩,保持源源不断的现金流成了外包公司的唯一动机,他们不怕项目时间长,不怕代码质量低(可以赚取运维费用)、也不怕电话、开会和其它浪费时间的活动,所以软件外包已经不再可行。

对于这一话题, Hacker News 网友的讨论异常激烈。网友 makecheck 认为,软件外包从来就不可行,因为软件外包存在下面两个方面的问题:

一个是软件外包中有一个想法,就是程序员在某种程度上非常容易替换,认为只需要找到一个开发人员就可以,而几乎没有考虑,如果选择的团队压根不了解他们要做的工作,那会有什么影响……另一个问题是文化上根本性的误解。

网友 chris_wot 持类似的观点,他认为:

大多数非技术出身的项目经理都不明白:IT 人员并非即插即用的模块组件……总是要有一个提前期——根据项目的复杂度不同,有时需要数月——在真正富有成效的工作之前,新雇员需要熟悉和理解系统及业务需求。

网友 JoeAltmaier 也认为软件外包不可行,他指出:

20 年来,我从来没有从软件外包项目中看到回报……(软件外包项目)的管理成本高于收益:语言障碍、时区、文化、网络接入……

网友 MortenK 也认为软件外包项目的管理成本更高,其在项目管理上的时间投入是本地项目的 2-3 倍。不过,对于文化差异的问题,他认为可选择文化相容度高的外包地。

网友 timtas 赞同 Yegor 探讨这一问题的方式,但认为他并没有提供一种可用的方法:

如果严格按照他的观点行事,那你永远都不要用金钱换取服务了。

同时,他认为,名声很重要:

名声好的外包公司不会纯粹将客户视为摇钱树。虽然他们在利用率问题上面临着同等或更大的压力,但他们仍然会高质量地完成工作。

网友 d4nt 经营着一家软件外包公司,他认同 Yegor 及其他网友提到的许多问题。但他认为:

你永远不应该为了省钱而外包……外包的主要原因应该是购买专业知识。许多公司真不知道如何编写软件需求文档,或者什么是非功能性需求,或者如何设计用户界面……

网友 cookiecaper 认为外包也是有好处的:

其中一个主要的好处就是,外部承包商通常不会受到公司内部政治的影响。也就是说,他们更可能给出直接诚实的反馈,而不必过多顾及其他人的情绪。在大多数组织中,这都是非常有价值的。

此处仅列出了网友的部分观点,感兴趣的读者可以进一步阅读


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-11-03 18:009100
用户头像

发布了 1008 篇内容, 共 372.2 次阅读, 收获喜欢 340 次。

关注

评论 1 条评论

发布
用户头像
软件外包公司--【你所不知道的】

① APP项目或软件外包给个人、优点是开发成本最低,一般一天的开发薪酬为300- 600不等。缺点是项目质量差,开发周期长,沟通和后期维护都比较麻烦。由于找个人开发大都是兼职,所以开发周期通常会比较长,进度上相对难掌握。毕竟个人的能力一般都比较局限,只能擅长其中的一两方面,所以很难在项目各个方面都做好。一人承担多个项目我们都知道一款好的产品是需要不断被打磨的,好比一个雕像,你做了一个轮廓,但是对于细节的雕琢才是真正显示出你产品关键的地方,一个产品经理在职业生涯中可能只输出过1-2款较好的产品,但是传统的软件外包公司的产品经理可能一年就要做10多款产品,所以不深耕只是不断的输出对于产品的打磨是没有任何帮助的。

来源:https://www.it0755.com/news/481.html
展开
2019-08-01 11:36
回复
没有更多了
发现更多内容

【kafka异常】使用Spring-kafka遇到的坑

石臻臻的杂货铺

Kafk 9月月更

Java中Interface天天都在写,你知道其背后的原理是什么吗?

wljslmz

Java 接口 9月月更

九月书单

图灵教育

科普 计算机 新书

2022年中国HR SaaS行业洞察

易观分析

HR SaaS

仅需30行代码,轻松集成HMS Core视频编辑服务屏幕录制能力

HMS Core

编辑 视频

Python应用之求100以内的奇数和

攻城狮Wayne

9月月更 变量和循坏的应用 递归求和

Java中synchronized关键字到底怎么用,这个例子一定要看!

wljslmz

Java synchronized 9月月更

Java中只有8大数据类型吗?看了本文,你会收获颇丰

wljslmz

Java 数据类型 9月月更

还不了解堆栈和队列吗?数据结构最基础、最重要的概念必须掌握!

wljslmz

数据结构 堆栈 队列 9月月更

VolareFinance 测试网教程(更新)

鳄鱼视界

大数据ELK(八):Elasticsearch安装IK分词器插件

Lansonli

ES 9月月更

数据结构第七章排序,期末不挂科指南

梦想橡皮擦

数据结构 9月月更

APISIX是怎么跑起来的

geange

lua api 网关 APISIX 网关 APISIX的源码解析

透视星环科技上市:基础工具、技术融合、场景应用三维击穿

易观分析

数据

【web开发基础】PHP快速入门(5)-PHP运算符之算术运算符和字符串运算符详解

迷彩

运算符 php开源 9月月更 web开发基础 算术运算符

一道React面试题把我整懵了

beifeng1996

React

九月书单

图灵社区

科普 计算机 新书

从URL输入到页面展现到底发生什么?

loveX001

JavaScript

Python之如何判断闰年

攻城狮Wayne

9月月更 判断闰年 format格式化字符串

数据结构第六章查找,期末不挂科指南

梦想橡皮擦

数据结构 9月月更

【编程实践】利用Python看看那些QQ好友都在QQ空间发了啥

迷彩

词云图 selenium Python爬虫 9月月更 结巴分词

VUE 数据分页

HoneyMoose

Java进阶(三十七)java 自动装箱与拆箱

No Silver Bullet

Java 9月月更 自动装箱 拆箱

面试官让你说说react状态管理?

beifeng1996

React

小程序化:系统集成行业降本增效的破局思考

FinClip

2022-09-29:在第 1 天,有一个人发现了一个秘密。 给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后, 每天 给一个新的人 分享 秘密。 同时给你一个整数 forg

福大大架构师每日一题

算法 rust 福大大

数据结构第五章图,期末不挂科指南

梦想橡皮擦

9月月更

【web 开发基础】php 开发基础快速入门 (4)-PHP常量详解

迷彩

php 常量 9月月更 魔术常量

物联网平台常见问题与答案汇总

阿里云AIoT

数据 物联网平台 物联网 协议 mqtt

leetcode 226. Invert Binary Tree 翻转二叉树(简单)

okokabcd

LeetCode 数据结构与算法

【云原生 | 从零开始学Kubernetes】十三、k8s的容器探测以及启动探测

泡泡

云计算 容器 云原生 k8s 9月月更

为什么软件外包开发不再可行_语言 & 开发_谢丽_InfoQ精选文章