考虑这个选择时,不要重复一些中小型企业的错误,例如低估高层管理时间、旅行预算、当地律师费和其他费用等隐性支出。另外,发展中国家经济的快速增长引起了人才短缺,这有可能给新到来的小型外国企业带来更大的压力。虽然本地企业更容易被本地人所接受,但是大公司的分支机构可通过知名品牌、更高的薪水和更完善的社会福利来弥补在这方面的不足。
不过对于只希望在海外聘用 15 个开发人员的小公司来说,几乎不可能实行这样的措施。成功的中小型企业往往使用专门的开发团队、离岸开发中心 (ODC)、建造 - 经营 - 移交 (BOT) 模式、虚拟办公室、虚拟团队等模式来克服远程办公费用过高所带来的困难。然而无论这些模式如何变化,它们都有一个共同点:海外供应商更强调向客户提供硬件、法律、IT 和人力资源基础结构,而不是直接参与开发过程。在这类交易中,客户和供应商都对项目交付负有责任。
要从这类交易中充分获利,必须向客户指派工程师,而且双方都必须拥有稳定的团队。供应商和客户之间的沟通必须完全透明,其中包括开发人员之间的沟通。所有人员都必须讲一种语言,而不需要翻译。
在成功的合作中,有时远程办公室中的人员尽管从供应商处领取工资,但是他们与客户的联系更为密切,而且他们共享供应商和客户的价值观和企业文化。
使用正确的实践和工具
成功的软件开发团队所使用的实践中,众所周知的有:共同的编码标准;源代码控制服务器;一键建立和部署脚本;连续集成;单元测试;错误跟踪;设计模式;以及应用程序块。与本地团队相比,分布式团队必须以更严格的标准应用这些实践。
以连续集成为例进行说明。如果操作人员与源代码控制服务器之间的距离非常远,那么使用源代码控制服务器来获得突破是非常困难的。对于在另一个办公室工作的人员而言,这也许没什么影响,但是对于追求工作效率和通信的分布式应用情况而言,这就有可能成为一个主要的问题。只要坚持在团队中进行连续集成实践并安装相应服务器(例如 Microsoft Team Foundation Server、CruiseControl.NET 和 CruiseControl),就可以最小化这种风险。
在 Microsoft .NET 平台上工作的团队可以使用 Microsoft Visual Studio Team System 提供的各种新功能。可获取带有说明的 Microsoft Solutions Framework for Agile Development 和支持工具。如果团队需要更多关于在分布式环境中进行敏捷开发的指导,则该产品会非常有用。对于有经验的团队而言,这是一个可提供优秀 ROI 的集成解决方案。
另一个为分布式团队带来巨大价值的 Microsoft 产品是 Windows SharePoint Services (WSS)。Wiki 能够有效地帮助分布式团队进行敏捷开发,而且 WSS 的下一个版本计划在其增强功能中提供 wiki。WSS 同样紧密集成了 Visual Studio Team System,这使得它成为团队的 Web 门户的最佳选择。
从 IT 基础结构的角度来看,我建议使用虚拟专用网络 (VPN),这样团队就可平等的共享资源。该 VPN 环境不像公共网络那样严格,可在其中使用 Windows Live Messenger 的应用程序共享、视频和语音呼叫、远程协助和白色书写板。
通信、通信、通信
如果进行远程工作,小的误解也会迅速变成大问题。在分布式开发团队中,经理必须密切注意通信实践,他们有时会在本地开发中忽略通信实践而不会产生不良后果。要注意的内容包括定期(每日/每周)报告和状态更新会议,这样可使团队成员保持同步、讨论成绩和暴露问题。经理还应该通过介绍性会议、现场参观、团队建设活动和其它方式来在团队中建立个人人际关系。
在离岸外包交易中,开发经理应该关注由语言、文化和时区所带来的障碍,而且必须设法克服这些障碍。全球化在缓慢不断地消除专业环境中的文化差别,但有时文化差异仍然会带来混乱。这个主题中有很多特定于国家的问题,这里就不再详细讨论了。语言问题容易发现却不易克服。如果公司面临语言障碍,最常用也是最有效的方法是公司对员工进行语言培训。在大多数国家,从事离岸开发的专业人员都愿意学习英语,因此这些地方的专业人员通常都接受语言培训。
时区的变化会使开发过程更加困难。但是在外包产业比较发达的国家,软件工程师们通常都会调整他们的工作时间表,以便更有效地与国外同行合作。有两种策略可用来处理时区差异。第一种是按照不同的工作对团队进行分组;例如,质保和产品经理在国内工作,而开发人员在国外工作。该安排可进行循环作业,这样开发人员可在他们的同行休息时修正程序和实现新需求,反之亦然。当然,也应结合工作时间表(在工作日开始/结束之时)。第二种方法是把项目划分为多个块,将每个块分配给一个地点,给每个地点分配尽可能多的功能。第二种方法要求更有效的通信,因此也能更好的进行敏捷开发,但是两种方法都是可以的,有时没有选择的余地。
选择正确的模式同样很重要,但是这不能保证成功。在分布式环境中,强烈建议交易的双方中至少有一方具有敏捷开发的经验。如果缺乏面对面的沟通,那么由于时间、文化、语言的不同,需要付出更多的人力和财力才能获得预期的结果。拥有一个优秀的海外伙伴可带来很多益处,例如节约成本、按需补充人员以及进行与外包基础结构相关的任务等(这些益处可概括为“付出更少、获利更多”),这大大优于投资建立生产性关系。没有通过功能强大的通信基础结构(可在全球范围内通用)所构建的现代工具,就不可能达到这种积极的平衡。
文章来源于领测软件测试网 https://www.ltesting.net/