为什么软件外包开发不再可行
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
共有 2 条讨论