外包软件开发时要避免的五个陷阱(外包软件开发时要避免的五个陷阱是)

2018 年,IT 外包行业获得了 620 亿美元的收入,并已成为一个真正的全球性业务;你很可能把工作外包给乌克兰或加拿大,就像把工作外包给印度或巴西一样。这不仅对初创公司和非科技公司有帮助。斯莱克、GitHub、阿里巴巴和WhatsApp等大公司在最初几天就成功地利用了外包开发的优势,达到了目前的成功高度。

外包有可能提高您的业务效率,减少申请上市的时间,并显著节省成本,但前提是这样做是正确的。外包开发也存在重大风险。这些可能会对您的业务底线产生负面影响,并导致项目在您有机会启动之前崩溃。

制定有效的外包战略

虽然外包开发有其一系列好处,但如果不能有条不紊地建立和管理,它很快就会对业务目标造成损害。让我们实事求是,找到一家值得信赖的开发公司与您合作进行开发工作可能是一项棘手的任务。如果公司外包开发不是一家科技公司,任务就变得更加复杂。

过去曾与外包公司广泛合作,后来共同创立了一家定制软件开发公司,以下是我关于外包软件开发的成因

指南。

外包开发中的常见陷阱以及如何避免这些陷阱

1. 沟通障碍

外包开发的最大好处,获得全球人才库,也造成了一个主要的陷阱——沟通问题。您需要克服不同的时区、语言和文化惯例。与外包团队建立定期沟通渠道对于确保项目成功至关重要。

Vivek Kumar 是 Qlicket 的创始人兼首席执行官,当他外包员工反馈信息亭的发展时,他亲身体验了沟通渠道不佳的弊

端。在最近的一项调查中,他提到开发人员有一天突然停止响应,并且未能完成任务。他告诉离合器:"无论是搬迁创始人、频繁办理登机手续,还是采用其他方法,透明度和频繁的沟通都是小企业外包的必要手段。公司他现在坚信经常与远程承包商沟通和接触的重要性。

有效的沟通是一种技能,而英语只是一种

语言。在与外包开发人员沟通时,理解项目要求和明确可交付信息是最重要的因素。

使用协作工具(如 Jira 和 Asana)、通过视频或音频通信定期与远程团队接触以及定期举行站立会议,是与外包开发团队建立沟通渠道的最佳

实践。

2. 未能了解项目范围

在将开发外包给远程团队之前,明确您期望的要求和交付、预期交付的时间表以及项目的整体范围对于成功外包至关重要。未能传达这些详细信息可能导致范围蠕变和产品愿景的错位。

如果不解决这些问题,软件工程师将继续在孤岛工作,您的期望值和实际交付产品之间的差距将越来越大。

基础工作必须由您建立,您希望在应用程序中注册的功能需要清楚地记录

下来。软件需求规范(SRS)文档可以是一个很好的起点,使开发团队能够清楚地了解这些要求。

对于非科技公司来说,起草这类文件似乎令人望而生

畏。我建议使用SRS 模板,这有助于文档过程。

SRS 文档可帮助您组织您希望外包开发团队在启动时了解的基本项目

要求。然后,开发团队将自行完成工作,并进一步详细说明。这种合作使双方能够制定一个共同的计划,一个在任何实际生产工作开始之前建立的共同蓝图。

例如,如果要开发的应用程序需要注册页面,则初始 SRS 文档只会列出需要注册的注册

选项。通过与软件供应商的合作,最好添加其他详细信息:例如,指定注册页面上每个元素的功能规格、需要到位的验证检查以及需要涵盖的可能方案列表。

文档的清晰度是确保您的期望和外包公司提供的交付信息相互同步的第一

步。

3. 代码质量挑战

确定外包开发团队在编码应用程序时是否遵守质量标准是一个挑战,当您为一家没有重要编码专业知识的非科技公司工作或运营时,这一挑战就会被放大。代码质量是一个模棱两可的术语,因为可以说没有对高质量和低质量代码的严格定义。

代码质量是需要与外包开发团队沟通的属性

集合。根据我的经验,良好的代码需要具备两个关键品质:清晰性和可维护性。

记录良好、经过充分测试的代码遵循应用程序编写的编程语言的格式化最佳实践和编码约定,对于长期成功和无 bug 执行至关重要(或接近于任何人合理预期的无 bug)。

你不能把他们全部压扁。

将开发外包给离岸团队时,要保持代码质量,需要传达期望,提前制定质量基准,并定期与团队进行简报,以保持开发工作

的首要任务。

您外包给的团队应进行检查,以确保代码质量的一致

性。在您登录公司之前,询问他们是否采取代码审查(点对点和管理)、单位测试以及功能测试等措施。这些预防措施将有助于确保他们在向您发布之前已开发出强大的应用程序。

一个经过彻底应用测试的既定质量保证流程(包括每当对代码进行任何更改时进行回归测试,以及使用项目管理工具记录问题和管理积压工作)是我在选择将工作外包给何处时所寻找的一些基本

知识。

4. 利益攸关方的模棱两可

项目所有权的缺乏是外包的最大缺点之一。如果您选择的外包合作伙伴在合同基础上雇佣程序员,而不是全职程序员,则实际项目所有权将变得冒险。项目资源的反复出现会导致可交付产品不一致,因为没有项目领导者或一致的团队负责整个工作并在整个过程中呈现。

在外包软件项目开发时,请确保您了解谁将致力于此项目,并努力确保至少几个项目经理在整个过程中保持一

致。这些人是你可以追究责任的人,他们应该出现在电子邮件线程,视频通话,和其他定期办理登机手续。

我发现让业务分析师或项目经理作为团队中的关键利益相关者是非常有帮助

的。此人可以充当您和开发人员之间的调解人,记录功能规范并分解对开发人员的要求。

开发人员不仅编写代码,还投资为客户提供出色的用户体验,这是您在选择外包合作伙伴时应该寻找的另一项

资产。找到一家能够成为您项目潜在利益相关者的公司,并致力于找到正确的解决方案,而不是实施快速修复,是成功外包的关键。

5. 签合同时的漏洞

在创业初期,发放巨额法律费用似乎不是一个可行的选择。但是,一份框架松散的合同,或倾向于承包商的合同,可能会造成漏洞,外包公司可以利用这些漏洞,并导致严重的货币损失。

《卫报》的创始人之一约夫·阿基亚姆知道一份写得不好的外包合同

的价格。在一篇关于签订外包合同技巧的文章中,他谈到了自己与外包公司签订合同时出现的所有错误。他写道:"合同不包括时间承诺、指定人力的布局、如果最后期限未到的处罚,也没有包括如果发展速度超过预期的积极加强。毫不奇怪,事情很快就从那里走下坡路了。古老的谚语"以书面形式获得"在软件开发中也至关重要。

起草得当的合同是外包承包商遵循的路线图,并保障您在发生错误转机时免受损失的冲击。

签订外包合同时的最佳做法

起草一份没有法律漏洞的严格合同有助于确保您在应用程序开发过程中不会错过任何关键问题。以下是您在与外包代理公司起草合同时应牢记的事项。

概述可交付材料以及时间框架:合同需要以功能列表或用户故事的形式清楚地说明预期的交付情况,以及承包商能够完成工作的估计时间表。一家遵循敏捷开发方法并将要求分解为冲刺的外包机构可以帮助准确了解开发进度。

基于时间的接触:而不是概述基于时间的开发和部署的合同,而是基于功能的合同,该合同将编写良好且经过全面测试的应用程序置于开发人员只需遵守时间表的应用之上。将可交付信息划分为任务级别冲刺有助于确保您外包给的公司中的所有权和责任。

基于里程碑的付款:将项目分解为不同的里程碑,并根据这些里程碑的实现确定付款时间表,简化了支付结构。计划定期跟进,以实现里程碑,并安排与团队的站立会议。基于里程碑的付款时间表为合同带来了很多清晰性,并简化了支付中任何冲突的解决。

灌输代码保证:没有代码保证的应用程序接受是一个很大的不。您签署的合同应指定您收到的代码没有任何恶意软件,并指定接受测试期。5-10 天的期限是合理的时限,在该时限内,在应用程序中发现的任何错误都需要由承包商承担费用。合同还应具体说明如何管理网络托管或应用商店提交

维护支持合同:任何值得他们盐的外包公司不会让你悬在空中没有任何支持合同。维护支持合同应明确说明团队为其构建和交付的软件提供支持的期限。指定项目支持也增强了开发人员的所有权感。他们知道草率的代码将意味着更多的工作,他们在路上。

知识产权:作为客户,您拥有项目的完全权利,但请务必通过在合同中加入知识产权条款来书面拥有此权利。这将节省你从一些大头痛,如果任何权利侵权问题在未来弹出。它还会阻止承包商将来为可能的竞争对手工作时重复使用为您的应用程序编写的代码。

保密协议:保密协议是一项保密条款,确保您与承包商共享的专有信息保密。它确保您的应用想法无法复制或与他人共享。保密和保密协议不仅应与外包机构签署,还应与个别开发商签署。这为离开外包公司并自己处理业务理念的编码员提供了一些保护。

赔偿条款:赔偿条款是合同中涉及您与外包代理机构之间风险责任分配的法律条款。它规定谁将承担法律费用,并支付在正在开发的应用程序中出现的任何诉讼。

终止条款:虽然你希望事情应该顺利进行,但最好为最坏的情况做好准备。确保在合同中加入终止条款,其中明确说明当事情向南发展且项目无法完成时将采取的行动方针。

解决问题的管辖权:外包使软件开发成为一个真正的全球流程。决定发生任何争议的管辖权,并在合同中提及,对于确定合同涵盖的法律是必要的。

————————————————

版权声明:本文为CSDN博主「林深见鹿ing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_40478901/article/details/116699794

相关新闻

联系我们
联系我们
在线咨询
分享本页
返回顶部