2018 年,IT 外包行业获得了 620 亿美元的收入,并已成为一个真正的全球性业务;你很可能把工作外包给乌克兰或加拿大,就像把工作外包给印度或巴西一样。这不仅对初创公司和非科技公司有帮助。斯莱克、GitHub、阿里巴巴和WhatsApp等大公司在最初几天就成功地利用了外包开发的优势,达到了目前的成功高度。
外包有可能提高您的业务效率,减少申请上市的时间,并显著节省成本,但前提是这样做是正确的。外包开发也存在重大风险。这些可能会对您的业务底线产生负面影响,并导致项目在您有机会启动之前崩溃。

目录

制定有效的外包战略

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

1. 沟通障碍

2. 未能了解项目范围

3. 代码质量挑战

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

5. 签合同时的漏洞

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


制定有效的外包战略

虽然外包开发有其一系列好处,但如果不能有条不紊地建立和管理,它很快就会对业务目标造成损害。让我们实事求是,找到一家值得信赖的开发公司与您合作进行开发工作可能是一项棘手的任务。如果公司外包开发不是一家科技公司,任务就变得更加复杂。
过去曾与外包公司广泛合作,后来共同创立了一家定制软件开发公司,以下是我关于外包软件开发的成因
指南。

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

1. 沟通障碍

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

Vivek Kumar 是 Qlicket 的创始人兼首席执行官,当他外包员工反馈信息亭的发展时,他亲身体验了沟通渠道不佳的弊
端。在最近的一项调查中,他提到开发人员有一天突然停止响应,并且未能完成任务。他告诉离合器:"无论是搬迁创始人、频繁办理登机手续,还是采用其他方法,透明度和频繁的沟通都是小企业外包的必要手段。公司他现在坚信经常与远程承包商沟通和接触的重要性。
有效的沟通是一种技能,而英语只是一种
语言。在与外包开发人员沟通时,理解项目要求和明确可交付信息是最重要的因素。
使用协作工具(如 Jira 和 Asana)、通过视频或音频通信定期与远程团队接触以及定期举行站立会议,是与外包开发团队建立沟通渠道的最佳
实践。

2. 未能了解项目范围

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

如果不解决这些问题,软件工程师将继续在孤岛工作,您的期望值和实际交付产品之间的差距将越来越大。
基础工作必须由您建立,您希望在应用程序中注册的功能需要清楚地记录
下来。软件需求规范(SRS)文档可以是一个很好的起点,使开发团队能够清楚地了解这些要求。
对于非科技公司来说,起草这类文件似乎令人望而生
畏。我建议使用SRS 模板,这有助于文档过程。

SRS 文档可帮助您组织您希望外包开发团队在启动时了解的基本项目
要求。然后,开发团队将自行完成工作,并进一步详细说明。这种合作使双方能够制定一个共同的计划,一个在任何实际生产工作开始之前建立的共同蓝图。
例如,如果要开发的应用程序需要注册页面,则初始 SRS 文档只会列出需要注册的注册
选项。通过与软件供应商的合作,最好添加其他详细信息:例如,指定注册页面上每个元素的功能规格、需要到位的验证检查以及需要涵盖的可能方案列表。
文档的清晰度是确保您的期望和外包公司提供的交付信息相互同步的第一
步。

3. 代码质量挑战

确定外包开发团队在编码应用程序时是否遵守质量标准是一个挑战,当您为一家没有重要编码专业知识的非科技公司工作或运营时,这一挑战就会被放大。代码质量是一个模棱两可的术语,因为可以说没有对高质量和低质量代码的严格定义。
代码质量是需要与外包开发团队沟通的属性
集合。根据我的经验,良好的代码需要具备两个关键品质:清晰性和可维护性。
记录良好、经过充分测试的代码遵循应用程序编写的编程语言的格式化最佳实践和编码约定,对于长期成功和无 bug 执行至关重要(或接近于任何人合理预期的无 bug)。

你不能把他们全部压扁。
将开发外包给离岸团队时,要保持代码质量,需要传达期望,提前制定质量基准,并定期与团队进行简报,以保持开发工作
的首要任务。
您外包给的团队应进行检查,以确保代码质量的一致
性。在您登录公司之前,询问他们是否采取代码审查(点对点和管理)、单位测试以及功能测试等措施。这些预防措施将有助于确保他们在向您发布之前已开发出强大的应用程序。
一个经过彻底应用测试的既定质量保证流程(包括每当对代码进行任何更改时进行回归测试,以及使用项目管理工具记录问题和管理积压工作)是我在选择将工作外包给何处时所寻找的一些基本
知识。

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

项目所有权的缺乏是外包的最大缺点之一。如果您选择的外包合作伙伴在合同基础上雇佣程序员,而不是全职程序员,则实际项目所有权将变得冒险。项目资源的反复出现会导致可交付产品不一致,因为没有项目领导者或一致的团队负责整个工作并在整个过程中呈现。
在外包软件项目开发时,请确保您了解谁将致力于此项目,并努力确保至少几个项目经理在整个过程中保持一
致。这些人是你可以追究责任的人,他们应该出现在电子邮件线程,视频通话,和其他定期办理登机手续。
我发现让业务分析师或项目经理作为团队中的关键利益相关者是非常有帮助
的。此人可以充当您和开发人员之间的调解人,记录功能规范并分解对开发人员的要求。
开发人员不仅编写代码,还投资为客户提供出色的用户体验,这是您在选择外包合作伙伴时应该寻找的另一项
资产。找到一家能够成为您项目潜在利益相关者的公司,并致力于找到正确的解决方案,而不是实施快速修复,是成功外包的关键。

5. 签合同时的漏洞

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

外包软件开发时要避免的五个陷阱相关推荐

  1. 从战争到外包软件开发:如何赢得最后胜利

    本文关键点: \n \n 外包软件开发和军事行动之间有相似之处,有些军事行动策略对软件产品交付也有一定助益\n 让销售和售前团队参与前期侦察,并确保将在客户环境中获得的深层理解传递给开发团队,使他们了 ...

  2. 程序员面向软件开发时,如何成功?

    软件开发这个行业向来以项目延迟交付和和预算超支而闻名. 作者 | Blaine Osepchuknin 译者 | 苏本如,责编 | 刘静 出品 | CSDN(ID:CSDNnews) 以下为译文: 软 ...

  3. 软件开发时,比较好的辅助软件推荐

    (1)有道云笔记. 一款在线同步软件. PC电脑,手机都可以访问. 不要用"印象笔记",太垃圾了,APP经常死,不稳定. (2)clcl.exe 日本做的一款复制粘贴软件. 软件开 ...

  4. 【软件开发底层知识修炼】五 gcc-C语言编译器

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 文章目录 1.GCC与gcc 2.gcc的幕后工作 3.实用的gcc ...

  5. Android 软件开发时用到的一些有用软件列表

    eclipse(eclipse-java-indigo-SR1-win32)--------------开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件 ...

  6. 软件开发外包:你有什么选择

    在2019年,软件开发外包提供了各种各样的选择.成千上万的公司在全球范围内提供软件开发外包服务.您将有很多选择,具体取决于许多标准,例如地理位置,时差,语言要求,甚至文化相似性. 2019年的软件开发 ...

  7. 如何成功软件开发外包

    软件开发外包已成为当今数字世界的全球趋势.外包被认为纯粹出于预算原因的日子已经一去不复返了.随着对技术人才需求的增加,某些地理区域内的资源似乎正在迅速萎缩.公司发现自己需要内部并不总是可用的优秀人才. ...

  8. 软件开发外包的10个理由

    随着经济走向全球化,许多公司很难通过降低成本,优化效率和优质的客户服务来获得竞争优势.那么你如何在有限的时间内做到这一点?如果您正在寻找一个单词的答案,那么离岸开发或外包是您成功的途径.事实证明,外包 ...

  9. 软件开发外包的十个国家

    卓越的伙伴关系建立在透明度和信任的基础上,并有机会使这种合作与公司的文化和价值观保持一致.此外,它还涉及创新,提高软件开发的质量和速度.例如,世界航班搜索引擎Kayak的代码是用CEE编写的.他们使2 ...

  10. 软件工程-软件开发的工程思维

    软件工程-软件开发的工程思维 目录 软件工程-软件开发的工程思维 前言 什么是软件工程? 定义 出现的背景 软件工程核心知识 与项目管理的区别 软件工程的目标 为什么需要软件工程 如何做好软件工程:原 ...

最新文章

  1. hellowolrd 的系统调用
  2. 用Spring Cloud Alibaba开发微服务会更香吗?
  3. 用matlab分析时间响应教程,基于Matlab的多自由度耦合滑移模型的动力响应可靠度分析...
  4. Face Alignment by 3000 FPS系列学习总结(一)
  5. Bumblebee微服务网关之请求统一验证
  6. hibernate 刷新_Hibernate事实:了解刷新操作顺序很重要
  7. 8个超震撼的HTML5和纯CSS3动画源码
  8. 《人类简史》作者:巨变将至!数据决定你未来是什么物种
  9. 做了一个画f(x,y)=0函数图像的算法,果断codeplex之
  10. Python生成(x,y,z)三维坐标序列
  11. 初学者C语言输入输出挖坑填补处须知
  12. Abaqus取消汉化(汉译英,英译汉)
  13. Windows下使用SSH命令登录Linux服务器
  14. 自学单片机是否先学c语言,学习单片机需要先学好C语言再去学单片机吗
  15. 软件架构设计---产品线及系统演化
  16. leetcode——第860题——柠檬水找零
  17. android中倒计时动画,简单实现Android倒计时效果
  18. eclipse绿色版
  19. GBase 8s 数据库操作指南
  20. U型地埋管(地埋管换热器采用单孔双U管)仿真教程

热门文章

  1. python简单计算器异常处理_Python计算器(正确除零)
  2. lwip协议栈实现服务器端主动发送,lwip协议栈源码详解说明 - 全文
  3. 精品软件介绍 Wireless Network Watcher 中文版 - 防蹭网监视软件
  4. 动态IP或无公网IP时外网访问内网固定端口管家婆等应用
  5. 80行Python实现-HOG梯度特征提取
  6. 管理计算机中应用科学教学视频,计算机科学技术在高校教学管理中的应用
  7. navicat中如何查看mysql日志_如何查看 Navicat Premium 日志文件
  8. 破解百度空间、新浪相册、网易、搜狐等博客图片防盗链的方法
  9. DB2数据库备份和恢复笔记
  10. kali foremost 分离文件_软件架构之分离关注点