分布式软件开发

虽然业内传统经验将集聚一地的项目团队视为项目成功的一大关键因素,但分布式软件开发在下列情况下有仍具有很多优势:缺乏特定资源或知识、必须符合当地政策法规、需要全天候维护等等。此外,很多复杂的开源项目(项目团队遍布全球)的成功让人们深信因特网能够大大消除地域距离所带来的障碍。尽管如此,人们还需要认识到分布式开发在软件工程和管理流程方面是需要一定技巧的,这一点也很重要。

对于需要大型跨地域团队的项目,益进凭借卓越的执行力,能够以最小的风险和成本实现最佳的团队管理。在过去 8 年中,益进已为诸多客户成功实施此类大型项目。此外,益进率先将敏捷方案应用到分布式开发,成为备受认可的业界先锋。下面介绍分布式软件开发的几个关键因素。

建立全球团队

对于分布在世界各地的大型项目团队,建立并贯彻团队精神和高度一致的目标尤为重要。大型团队容易产生内部分化,涉及不同文化时更是如此。我们的经验证明,项目期间分布各地的项目成员互访会面可促进整个项目团队的内部团结与合作。这在项目初期的知识转移阶段尤为重要。

与业界传统观念不同,我们欣喜地发现设置跨地域项目团队比将系统的某模块交由一个地点全权负责更富成效。尽管在项目初期分布在各地分公司的项目成员可能需要花费一些时间寻求知识共享的高效方法,但这将大大减少项目后期的整合投入。

交流

通常,分布式软件开发团队不仅需要克服距离障碍,还需要克服时差障碍。若所有团队都在欧洲(例如:益进的所有交付团队都位于 GMT+2 和 GMT+3 时区),则只需相应调整办公时间,便可实现所有团队同时工作。若有离岸团队,则很难做到完全同步,但必须最大限度地实现各地团队同时办公,并且鼓励各团队采用即时通讯工具(IM、语音/视频会议等)而非陈旧低效的邮件沟通方式。项目团队中的所有行业领域专家都需要建立某种 SLA 来解答疑问,因为即使是短暂的延迟也可能耗费远程团队很多人力和时间。

也正因此,每个团队都需要培养技术专家与领域专家,因为他们的响应速度要快很多。

信息透明度

最后一个要素是信息可用性。为了实现所有分布式团队对单源代码库、项目跟踪或协同工具的有效访问,需要建立 VPN 连接。在公司环境中,安全检查可能需要几个月的时间,因此在项目周期的最初阶段就需要启动这种基础设施建设。

对于分布式软件开发项目,若同一地点的团队成员之间缺乏充分的交流,则即使是轻量级敏捷流程,也需要通过加强文档支持来弥补不足,尤其需要鼓励团队成员阅读有用的文档或 WIKI 文章。这些信息必须便于所有成员访问,并且能够及时更新,反映项目环境的最新变化。