创业公司在外包开发时,由于缺乏管理外包业务经验,需要三思而后行。本文作者Karan Chaudhry是创业公司的导师,他介绍了创业公司在开发软件时不该使用外包团队的原因。
企业家想要以更便宜、更快、更有效的方式达到目的。有时眼前节省的一点钱是抵不过最终成本的。
我是一个连续创业的人。在过去的几年里,我成功地为自己的创业公司建立和扩张了现场团队和远程团队。但是,在外包软件开发上我跌了跟头。
我本来打算和一些开发人员签约,让他们编写某些部分的代码,这样就可以在截止日期前发布我们的产品。当时我们还处在自力更生阶段,这看起来是很美好,事实上是一场灾难。以下就是为什么:
1.不同的观念模式导致目标错位
我把企业当作宝,全身心地投入其中。但对软件开发者来说,我们只是他们的一个客户而已——而且是一个非常小的客户。当大客户增加需求时,资源紧缩,这就导致我们的项目有所延迟。
此外,我们聘请的专家一直想说服我们搭建更多功能。他们公司因范围蔓延获益而我们缺偏离了最小可行性产品(MVP)。我们两个公司的驱动力不同,这往往会导致互相不理解。
2.合同谈判复杂耗时
我花了大量的时间与软件公司签订合同,我们根本没有想到会有这样的时间成本。我们想快速分发任务并运行。但我们却花了三到四个星期来确定、谈判和执行合同。
老实说,花几个星期谈合同是合理的。定义工作范围,界定每一方的责任并制定服务级别协议(SLA)都非常繁杂。如果合同不是仔细研究,将来会有更大的问题。企业家需要为这个耗时的过程预留好时间,不要急于通过,相信未来一切都可以运行下去。
3.质量的不确定性
外包公司的开发人员素质层次不齐。根据我的经验,其水平通常低于平均水平。几个被分派到我们项目的开发人员没做到我们想要的结果。我们不得不与其公司争吵,想要换掉他们,这个过程非常痛苦,我们也因此花费更多的时间和精力。更糟糕的是,代码本身没有达到我们的质量标准,导致我们的代码库变得非常零碎。
4.公司内部人才对于管理外包项目工作不熟练
许多创业公司都忽略了管理外包团队需要专业知识和特殊技能。外包是与内部开发完全不同的过程。
很少创业公司的团队成员曾经有过相关经历,这增加了失败的可能性。外包公司可以精确了解到团队缺乏经验。不道德的公司甚至可能利用这个弱点来延长交付时间和成本估计。要做好这点,你需要完成一系列具有挑战性的复杂任务:
·明确定义要求
·分配好哪些模块将由内部开发,哪些将由外包供应商开发
·规划主代码库中代码的平稳融合
·计划和执行商量好的质量保证措施和程序
·时间把控
·定期反馈
我们初创公司有信心进入外包这场冒险中,因为我们的团队有曾经管理过外包工作的人。但是即使这样,我也觉得很难。相信我:这不简单。我强烈建议不要外包软件开发,除非公司内部有专家。
5.外部问题给整个组织带来的多米诺效应
小团队运行时,问题很容易就显现出来了。但如果外包项目进展不顺利,这份压力往往会影响其他领域。至少,对整个公司来说,需要分出巨大的力气来解决这个问题。
外包项目的延误和质量问题是正常的、可预期的。然而,创业公司通常不会意识到这一点,也没有计划缓解这种影响。当我们的外包项目开始出现问题时,就有涟漪效应。我们的首席技术官直接参与外包项目,在项目管理上花费了不该花费的时间。结果,花在内部员工这边的时间少了,他们开始错过了最后期限。
士气受到打击,员工开始懈怠。技术团队的延误反过来又在给我们的产品和销售部门带来了挫折。这特别打击大家,因为我们已经向早期客户承诺了额外的功能,如果我们没有交付,有可能会失去他们。外包项目超出预算,后来我们意识到这个事情经常发生。作为一个早期初创公司,资金问题给我们带了来额外的压力。
干货:我们花费了比我们预期的更多的时间、金钱和力气,但是最终我们没有使用或重写大多由外包公司开发的代码。事后看来,这是一个错误。每个公司的情况都是独一无二的,外包可能适用于一些组织。但是,当你所能控制到的元素更少时,出差错的可能性更高,对于创业公司和小组织来说尤其如此。
下次再考虑外包公司的软件开发时,三思而后行。或者至少想想上面列出的经验教训,他们会帮助你看到你最后可能得到的结果。