分布式团队中的敏捷开发

时间:2008-09-17 19:37:53

标签: language-agnostic agile collaboration

Agile Manifesto强调了软件开发过程中沟通的重要性和本质。十二项原则中的两项强调了这一点:

  • 业务人员和开发人员必须每天在整个项目中一起工作。

  • 向开发团队传达信息的最有效方法是面对面交流

在我目前的项目中,我们开发团队的五​​名成员分散在三个州的四个城市。随着远程办公/远程工作和离岸开发的扩展,地理位置分散的团队似乎越来越普遍。

当一个团队无法面对面时,如何利用工具和技术来实现日常站立会议,代码审查,结对编程以及“整个团队”的XP概念等实践?这些实践本身如何才能最适合地理位置分散的团队?

11 个答案:

答案 0 :(得分:6)

这些是我的雇主从一个大型分布式项目中提出的结果。

确保团队在项目启动时以及在整个项目中定期召开会议。确保所有人都感受到社交活动。

准备好花在良好的通讯设备上。不要买垃圾话筒 - 去体面的电话会议设备。确保你有足够的带宽来处理这个问题。

找到好的协作工具并坚持下去。

将人们的照片添加到虚拟会议室 - 即使只是一张照片,也可以更轻松地与人脸交谈。

尽可能经常地传达项目的愿景,以确保人们走上正轨。

答案 1 :(得分:3)

按优先顺序排列:

  1. 一个优秀的项目经理,可以将不同的位置放在一起
  2. 有效(快速,可靠)的聊天工具,可以进行群聊。 Skype很棒。我们为所有团队成员进行群聊,永久开放,并根据需要使用一对一聊天和VoiP呼叫
  3. 代码库
  4. 共享知识管理的Wiki
  5. 好的,快速的,简单的问题跟踪器。
  6. 每周/每日代码审核
  7. 持续集成系统
  8. 在每个位置都具有良好组织能力的人,其中有多个团队成员会在内部组织“碎片”。

答案 2 :(得分:2)

我是一个类似情况的团队。我们整天都在进行Skype群聊,这是一个巨大的好处,我们正在将这个想法扩展到其他不敏捷或地域分散的项目。

我们每天都会在电话上站起来,会议需要真实语音通信的即时性和反馈。我们每天早上都会通过电话站起来,然后(仍然在电话中)如果当天有任何复杂的问题被讨论。剩下的时间每个人都在处理他们分配的任务,并使用Skype进行协调。效果很好。

答案 3 :(得分:1)

我发现你真的需要小心寻找“全力以赴”的工具。问题是您最终必须更改流程才能使用该工具,而不是使用该工具来帮助您的流程。如果工具规定的新流程更好,这可能没问题,但在很多情况下并非如此。

但是,请查看Campfire。这就像是wiki,IM和irc之间的交叉。对于具有历史和某种结构的自由形式群体交流来说,这真的很不错。

我也喜欢BaseCamp(由同一家公司,37signals) - 它更像是一个任务列表/讨论/项目跟踪系统。比篝火更多的工具。

这两者的好处在于它们非常轻巧 - 使用它们来帮助你做什么而不是阻碍它。

最后 - Skype。确保人们不怕打“通话”按钮。确保人们设置忙碌状态并且受到尊重。让人们想到它就像带门的办公室,而不是电话。

答案 4 :(得分:1)

对于那些厌倦了Campfire的人,最近推出了Jaconda.im,作为GTalk / Jabber联系人聊天。我们在我们的团队中使用它,有点喜欢它,不需要安装任何东西。

您只需在那里创建一个“房间”,然后将联系人发送给您想要聊天的所有人,并在联系人列表中找到您的聊天室。

答案 5 :(得分:1)

站起来,冲刺计划,回顾和估计是敏捷中最重要的一些仪式,理想情况下应该面对面地进行,这样可以使团队更具凝聚力并带来更好的团​​队建设。为了实现分布式团队的这一点,我建议遵循

  • 通过视频会议工具完成的仪式,视频开启,以便所有团队成员能够看到对方。我所看到的仅使用语音会减少凝聚力,因此切换视频是一个好习惯。使用适合您的任何工具,我的团队使用google hangout,它对我们很有用。
  • 及时反馈/帮助对于分布式敏捷团队非常重要,因为阻止程序可以延伸到第二天,以防止缺少与工作人员联系的工具或相当的练习。像slack这样的工具确实很有效。为您的团队创建一个频道并在那里进行有效沟通,最好在团队频道上传达您的拦截器,以便团队中的任何人都可以提前帮助您。

  • 代码评论也非常重要,但大多数情况下不需要进行面对面的对话,因此像github这样的工具确实非常有用。同行编程可以通过谷歌环聊实现。我们通常在我们的团队中做的事情,如果团队成员之一希望其他团队成员在他/她实际工作时查看她/他的代码,我们通常会去环聊并分享我们的屏幕和同行评审彼此工作。这里有多个大屏幕帮助。

主要尝试保留您的大部分沟通,但尽可能尝试使用视频配置工具,以防万一在3个月内至少集中在一个地方集中,并在一起或两个人身上一起工作。

答案 6 :(得分:0)

Fowler撰写了关于offshore development的文章,但在您的情况下,它并未直接适用。这仍然是一个很好的阅读。我建议尽可能使用协作工具(IRC,Wikis,Skype,IM),并尽可能安排许多面对面的gettogethers。

答案 7 :(得分:0)

我们做了一些 - 你可以做一些工作来缓解问题,但这是一团糟。

早上通过电话举行状态会议,每个人都需要一直在IM上,你可以通过VNC /视频会议配对,但这并不总是有效。

非常长的电话 - 当我有一个非现场会员时,我经常会在上午9点打开电话线并一直待到午餐 - 然后根据需要重新连接。

这实际上是一个有趣的想法 - 使用软件创建一个永远在线的免提电话,这样你正在做的任何事情都会被其他办公室自动接收。简单地说“嘿,吉姆,第203行的交易是什么意思?”

早点检查,检查一下。不断,像每小时,最大

答案 8 :(得分:0)

某种群聊工具效果很好。我在我的多维数据集中设置了一个监视器和扬声器,其中包含一个自定义的MSN Messenger帐户,该帐户可以让任何人(该帐户只有团队成员作为朋友)开始视频聊天。

另外,我经常检查(很快我就可以得到一些东西来编译,只要它不会破坏任何测试)并经常得到。

很多时候,一位同事会弹出MSN显示器,只是让我去做,因为他们检查了一些重要的东西。我只是在没有把头转向显示器的情况下这样做。你的同事在下一个立方体中的长距离等同于你的最新消息。有魅力:)

答案 9 :(得分:0)

答案 10 :(得分:0)

关于分布式团队的Scrum实施有一个很好的成功案例:http://www.agile42.com/cms/pages/success-story-be2/

如果您正在寻找支持您的计划的在线白板,您可以查看Agilo for Scrum:http://www.agile42.com/cms/pages/agilo/

相关问题