沟通的作用 我们希望能够及时回到可以看到项目全景的地方。当然该全景包含可以在版本控制系统中获得的工件,但也包含从典型的版本控制系统中不那么容易获得的信息。该信息可能包含电子邮件、网络会议抄本和记录,等等。这些信息还应该以鼓励探究和协作的方式提出。 这就要求我们进行沟通。我们都知道,通常面对面或通过电话与某人交流比写电子邮件更有效。当我们进行实时会谈时,我们能够更好地弄清问题并交流意图。在当今高度分布的环境中,这不总是可能的,事实上人们在同一个地点的现象越来越少。我们希望在可以的时候尽可能同步地交流。但如果我们不能做到,我们需要有效地移步交流。 交流生成了开发项目的有价值工件 —— 团队应该用于协作的信息。我们面临的一个挑战是,我们如何能够在随需的基础上获得交流并使团队获得信息?最近我参与了许多开始涉及此问题的 Worcester Polytechnic Institute(WPI)的学生项目。 如今的协作支持工具 上面的评论是十分概括的。现在我想要讨论一下如今支持协作的工具类型。此列表不是详尽的,但提供了一个如今专业人员可用的工具的适当示例。 在线协作社区和项目环境。团队可以计划项目并合作的在线社区的数量已经迅速增长了。其中一些,例如 sourceforge.net 和 Java community projects 是开源社区的两个实例。 4 商业产品支持同样的功能,并且更多支持想要管理自己的项目概要的组织。只要组织使用这些产品,那么它们就开始分布团队的协作。 版本控制和源代码管理系统。这些对任何团队,分布的或集中的,都是必要的。以前类别中的大部分产品都包含这些产品或提供对这些产品的接口。 故障追踪工具。虽然它们只提供异步的功能,但是这些工具是开发团队另一个基本的需求。这种工具可以了解项目的健康程度(缺陷的数量)以及任务分配信息。 网络会议工具。许多网络会议工具是随着互联网和网络技术发展为成熟、快速的通信媒介而发展的。人们在广播和电视上听说这样的工具的广告,并且在许多流行的杂志上看到关于它们的广告。这些工具的功能各式各样,但是它们的本质都是让一组人进行启用视频、音频,和共享的计算机桌面的虚拟会议。这些工具所提供的经验上的质量依赖于许多因素,包括参与者接受这些工具并学习适当地使用的意愿。 IDE 中内嵌的协作功能。许多交互开发环境包含协作功能。Eclipse 平台用许多插件,令 Eclipse 用户能够且更容易地协作。一个较成熟的项目和插件是 Mylyn 项目 5 。Mylyn 向程序设计人员的工作提供集中于任务的工具。它还与许多故障追踪工具相集成。在 WPI 中,我们拥有 Webfoot 项目 6 ,它是向 Eclipse 用户提供丰富的协作功能的进行中的项目。开发工具的一个很好的技术框架是 Eclipse Communication Framework 7 。该项目多年来用于向开发人员提供构建他们自己的工具的功能。它有一些实例应用程序,例如在最新的 Eclipse 版本中的实时共享的编辑器。 其他的 IDE 已经添加了许多 Eclipse 包含的功能。NetBeans IDE 曾经有一个非常好的共享编辑功能。其他工具提供更集中的功能,像 Smart Bear 的 Code Collaborator。 不幸的是,对于这些工具的互用没有什么标准,这限制了开发团队的选择。整个团队必需使用同样的 IDE 以获得协作功能的好处。 持续集成工具。持续集成工具最近几年流行起来了。它们与 SCM 系统联合,自动地观察代码存储库,并周期地或在有任何变更的时候构建系统(包括运行测试和打包工件)。它们还能够通知整个团队,或团队中被选定的成员。它们经常提供可以立即看到当前的构建状态的仪表盘。 |