分布式团队的极限编程工具和建议

时间:2009-08-27 15:57:12

标签: project-management extreme-programming

我们一群人正在开始一个新项目,并以分布式方式工作。我们的目的是使用敏捷开发方法,特别是极限编程(XP)。这是一种学习体验,但是虽然我们中的一些人在“传统”团队中拥有XP经验,但我们中没有人具有使用远程组进行XP的经验。 Agile Development in a Distributed TeamDistributed Development Team - Tools Needed都提供了一些很好的建议,但并非针对XP。

请详细说明在远程工作时坚持XP精神的方法和工具。具体来说,故事卡和同行编程采用了哪些技术。

根据Felix的推荐编辑包含技术堆栈

我们正在Windows机器上编写Ruby on Rails。我们感兴趣的是可以使用哪些工具来适应远程团队的极限编程的主要实践。

8 个答案:

答案 0 :(得分:2)

设计模式 - 用于提供瘦客户端应用程序的模型视图控制器(MVC)或页面前端控制器。(可能是ASp.NET MVC Framework 1.0)

方法论 - 敏捷与TDD(测试驱动开发)一起。因为你在远程工作。

数据流 - 遵循存储库模式和依赖注入(Martin)以促进松散耦合和单元测试

工具

进行测试 - NUNIT 2.0

用于模拟 -rhino模拟,moq框架。

用于代码优化和重构 - resharper 4.0

用于对象关系映射 - N休眠。

用于检查视图(在MVC中) - 在IE中使用Firebug和在IE中使用Fiddler。

用于构建业务对象(来自数据对象) - AutoMapper

答案 1 :(得分:2)

我参与了分布式极端编程项目。它让西雅图,英国伯恩茅斯和新加坡的开发人员共享一个共同的代码库。

该项目运作良好。

以下是该项目的报告:

http://www.keithbraithwaite.demon.co.uk/professional/papers/2005/xp/distributed_extreme_programming.pdf

本文介绍了我们如何合作以及我们使用的各种工具和技术:

http://www.keithbraithwaite.demon.co.uk/professional/papers/2005/europlop/patterns_distributed_xp.pdf

部分工作是用Java完成的,部分用Ruby on Rails完成。

答案 2 :(得分:1)

Mingle是一个建议的工具,用于以虚拟方式处理故事卡,我工作时虽然没有使用,但我们的流程仍在不断完善。只是一个想法,你可以探索,看看它是否适合你。

Twitter对于进行广播通信非常有用,因此开发人员可以随时了解谁在做什么,而不必让每个人都听不见。

CruiseControl.net用于持续集成,以便团队可以知道是否有人破坏了构建。

答案 3 :(得分:1)

对于故事卡,您可以尝试Google Docs之类的内容,以便您实时共享文档更改。

对于对等编程,您可以通过NetMeeting,VNC或OnCommand plus 等免提电话会议等桌面共享程序做得相当好(共享办公空间中的任何参与者应该有一个好的耳机,而不是扬声器)。您可能会觉得共享的有效桌面区域受限制,以及谁可以成为活动编辑器(即,远程参与者可能没有足够高的刷新率来编辑)。

答案 4 :(得分:1)

保持联系:
我们通过Skype做了一个上午9点的Scrum,每个人都有2分钟回答3个问题:

  1. 自昨天的电话以来你做了什么?
  2. 明天的电话会怎么样?
  3. 有什么阻碍你或减慢你的速度吗?
  4. 有时候我们会提出第四个问题:分享任何好消息?

    为了保持全天保持联系,很多人都对37Signals的“campfire”发誓,尽管我个人使用“Present.ly”,这是一种针对团队的推特。

    对等编程:
    Mac的SubEthaEdit将让您实时共同开发,Mozilla Labs的新“Bespin”项目也是如此。这两个都是美化的文本编辑器,但不是IDE。

    您也可以尝试免费的“DimDim.com”屏幕共享& VOIP服务,或Skype's free screen sharing

答案 5 :(得分:1)

我们真的很喜欢yammer.com这是一家公司私人推特,还有一些额外的补充。相当方便,也保持完整记录。

答案 6 :(得分:1)

我们将SCRUM用于团队系统并喜欢它。我们尝试了很多工具,但要注意这些:

Basecamp计划一个项目(借助todo-lists和里程碑)。

为了与其他同事沟通并进行每日scrum(站立),我们使用Jaconda。 它非常简单,因为除了IM之外你不需要任何东西。

我们使用CruiseControl.rb作为连续集成系统的时间最长,但最近已切换到Integrity,这更简单,更好。

答案 7 :(得分:0)

请查看Assembla features

您将获得更多功能:svn,git,chat,wiki,messages,scrum,带有拖放敏捷规划器的门票。

Assembla非常适合敏捷分布式开发。