2010-03-02 71 views
4

我正在开发一个软件项目,其中有几个成员在家工作,其他人是兼职人员。我们至少每个月至少有一次见面。我们主要通过电子邮件进行交流我们的源代码库(mercurial)位于我们共享的丛林磁盘(工作组)上。如何在地域分布的团队中使用敏捷工具/方法

我们有一个工作产品和一个客户。但是,我们不够敏捷(即:代码中的一个更改有时会破坏别的东西,我们没有单元测试,代码没有记录等)。我想使用敏捷方法来协调我们的工作并跟踪我们的进展。我也想使用TDD。

团队没有使用敏捷方法(或其他方法)的经验。

在地域分布的团队中使用敏捷方法的最佳方法是什么?哪种方法最适合那种团队?如何以最小的阻力有效地实现它?

谢谢!

+3

社区wiki也许? – falstro 2010-03-02 18:54:44

+1

我同意獐子 - 很好的问题和主题,但我怀疑有一个正确的答案。 – 2010-03-02 18:58:15

+1

我第二次(或事实上,“第三次”)对CW的建议。这是非常有趣的,但方式广泛和主观! – mjv 2010-03-02 19:02:26

回答

4

我已将这作为分布式XP团队的一部分,共享3个站点的源代码和故事,每个站点相隔12小时(西雅图,伯恩茅斯英国和新加坡)。

下面是我们做了什么,一些写起坐:

我们发现,它有助于得到大家身体一起在开始项目建立标准和建立关系。

我们还发现,它有助于拥有“大使” - 在团队之间运送不同的人以传播知识并建立信任。

我们很幸运地拥有三个相隔12小时的网站 - 所以我们可以在早上做第一件事,晚上做最后一件事。我们称他们为“交接会议”,并通过视频会议在即将到来的团队和即将离任的团队之间进行。

我们还发现远程结对编程工作 - 当地对和远程对(即4人份)之间,但它很激烈,排水和最佳仅供很短的时间完成时,它的真正关键看其他人正在做什么远程。

旁白:Kent Beck的使用Eclipse远程对人的忠告:http://www.threeriversinstitute.org/blog/?p=584

+0

不错的联系和良好的模式(我们为分布式项目做了非常类似的事情,并且会议人员将人际关系人性化,并且拥有“大使”来传播知识当然是强制性的)。 – 2010-03-02 23:45:35

2

嗯,我首先想到的,给你指定什么:

单元测试添加到您的源代码!

没有单元测试,大多数敏捷方法并不是那么有用。敏捷是关于轻量化并能够快速响应变化 - 单元测试是使其发挥作用的主要因素之一。没有单元测试,你将永远无法自由地进行更改,而不会冒着重大破坏的风险。

当你添加测试时,我会记录你的代码。这也是能够改变事情的关键,当团队分发时更是如此。

一旦完成,您可以开始实施其他方法。就我个人而言,我会让整个团队都这样做,并开始每天/每周的站立(通过电话会议等方式与分布式团队合作),每个人都会描述他们测试过的内容,以及他们如何进展等

这将至少让你正确的轨道上......

0

开始持续集成(自动生成)。我使用了CruiseControl.Net。我建立了两个版本:1)每次签到后自动构建,2)根据需求构建测试版本。

0

你必须改善你的沟通方式。是的,工程实践很重要,但敏捷的关键在于沟通。电子邮件并不是协调敏捷项目的最有效的工具,但不存在可以提供帮助的工具。

我们在Skype(主要是下午,也是普通手机)方面取得了巨大的成功,并且还使用了像MS SharedView这样的工具,可以跨网站进行演示甚至配对。

一旦你开始有效地沟通,并觉得自己像一个团队,其余的将随之而来。敏捷是关于检查和适应,所以尝试一下并且玩得开心。从每天站起来并从那里开始。定期回顾将帮助您识别问题并改善。

0

如果你到工具:为了能够做到结对编程或同步代码审查远程,你可以尝试的Eclipse插件Saros,这使协作编辑(包括支持驱动程序/观察员角色和通过代码后的用户)。

(声明:Saros是柏林自由大学工作组的一个项目)