您的团队如何在远程设置中协同工作?

时间:2010-05-19 19:19:52

标签: skype extreme-programming vnc pair-programming

我们是一个负责对象数据库db4o的分布式团队。

我们的工作方式:

  • 我们只尝试成对编程。
  • 我们使用Skype和VNC或SharedView进行连接和协同工作。
  • 每周在线星期二会议(通常约1小时)
    • 我们谈论上周完成的任务
    • 我们使用随机生成器为下周创建新对,以便知识和友谊均匀分布
    • 我们为任何新任务或错误设置了优先级
    • 每个团队从最高层挑选自己喜欢做的​​任务 优先的。
  • 从周二到周三,我们估计任务。我们有一个工作单位,我们称之为“理想开发者会议”(IDS),可能需要2到3个小时的工作。它没有完全明确定义(因为我们知道估计总是不准确)但是根据我们过去的共享经验,我们对IDS是什么有一个常识。如果我们无法估计任务,因为它感觉太长了一周,我们将其分解为可估计的较小任务。
  • 在周三的短暂会议中,我们承诺在一周内完成一项工作量。我们承诺完成。
  • 如果一个团队在一周内用完了已提交的任务,它可以从我们在Jira中的优先级队列中选择新的队列。

当我们开始以这种方式工作时,我们中的一些人发现远​​程结对编程需要很多精力,因为你是如此专注。如果您将程序每天配对超过5或6个小时,您就会感到筋疲力尽。另一方面,这样的工作效率非常高。关于我们的代码库的知识是均匀分布的,我们真的从彼此那里学到了很多东西。

我很想知道其他团队以类似方式工作的经历。比如:

你多久见一次?
您是否尝试过不同的冲刺长度(一周,两周,更长)? 你使用哪些工具?
您使用哪个问题跟踪器?
你如何处理时区差异?
如何将新人融入团队中呢? 你通常每周工作几个小时? 您的管理层如何与您的工作方式互动?
你有没有坚持最后期限的瀑布? 你的工作单位是什么?
你的正常速度是多少? (每周完成的工作单位)

编程工作应该很有趣,对我们来说通常很有趣。

如果有任何新想法如何让它变得更有趣和/或更有效,我会很高兴。

6 个答案:

答案 0 :(得分:2)

@Carl:我无法回答你的所有问题,但我可以在WRT中加入两分钱。

  • Skype的使用至关重要。将面孔放在互联网别名上可以营造更友好(因此更高效)的工作环境。当我与一个非现场团队合作时,有很多线下抱怨异地团队。
  • 每日会议,即使是15分钟,也非常有帮助。花五到十分钟给人们谈论他们想要谈论的事情,无论是他们的周末,孩子等等。无论如何,人们会谈论这种事情,并且能够在公共论坛上做到这一点可以让团队凝聚力更强,这意味着对其他团队成员的抱怨较少(见上文)。 (注意:这不是我的想法。我是从Giuliani的书 Leadership 中得到的。)
  • 关于结对编程:如果团队成员喜欢它,那就完美了!有时人们不喜欢它,但由于担心团队报复或冒犯某人而不说话。心怀不满的团队成员士气低落。

P.S。关于db4o的伟大工作!

答案 1 :(得分:2)

我们使用Microsoft Sharepoint服务器作为中央信息空间。我们拥有所有设计文档,会议记录,作业调度,以及该服务器上的所有业务方面。我们的桌面上也有摄像头,我们鼓励我们在需要时互相视频通话。这不是一个预定的事情,它只是一个快速的视频聊天,没有手续,只是一个快速的短信,“嘿,你可以视频聊天吗?”

我们倾向于使用从AOL到MSN的许多不同的聊天软件,因此我使用Trillian让我与所有人交谈。我们也都有我们经常使用的公司Skype帐户。它实际上比手机更容易,因为我们的手机通过我们的电脑任何方式,所以我们的耳机连接到他们。

答案 2 :(得分:1)

你多久见一次?

  

每日(通常是早上的第一件事),并在必要时   删除路障。只在必要时配对才能解决复杂问题   问题 - 或者在测试开发的早期阶段。

您是否尝试过不同的冲刺长度(一周,两周,更长)?

  

是的,但这总是取决于客户提供的优先事项和   交货时间表首先。我们回应他们的要求,而不是做出   我们自己的。有时尖峰会发挥作用,因为它是不可能的   避免依赖循环。

您使用哪些工具?

  

Pivotal Tracker和Rally。已被迫使用TeamForge,其中   吮吸。我真的很喜欢Campfire,它似乎为我做了伎俩   队。

您使用哪个问题跟踪器?

  

取决于项目,但通常是基于网络的东西   最小。

你如何处理时区差异?

  

处理它。我的大部分项目遍布全球,   有人会被搞砸 - 通常是我。

如何将新人融入团队?

  

取决于团队和新手。有些团队更接受   比起其他人,一些新手更擅长整合。应该   永远是尊重,期间。

您通常每周工作多少小时?

  

40+ - 加号通常是由于多个项目 - 亲和个人。

您的管理层如何与您的工作方式互动?

  

放手。但是,有时情况变得紧张。只需要好   沟通,透明度总是更好。

你是否会在艰难的期限内登上瀑布?

  

当然!甚至在敏捷项目中。客户要求

你的工作单位是什么?

  

当然取决于项目。通常是我和我的团队的时间。   可交付成果适用于所有内容,但我们通常都是上游的   项目也支持。

你的正常速度是多少? (每周完成的工作单位)

  

没有正常现象。复杂性,团队,客户都是粗暴的   变量。最大的问题通常是团队成熟。

答案 3 :(得分:0)

我们的敏捷项目管理工具是基于Jira的Greenhopper。对于桌面共享,我们使用Shared View,但对于show&告诉目的,而不是结对编程。 Skype是主要的通信工具,但使用gtalk for IM。 Skype在发送IM消息方面有点不稳定。我在公司写了一篇关于all the tools we use for distributed development的帖子

我们的冲刺是一周,我们曾经有更大的冲刺,但这很好。在星期一,我们回顾一下前一个冲刺中取得的成就,并继续完成任何出色的工作。然后,我们添加积压故事(包含估算值),以填补当前sprint大约一周的工作量。目前的次要版本和一般的'catchall'积压有积压。

这些故事极简主义,估计很快而且很脏(虽然通常相当准确)。他们通过'Todo'进展 - > '进行中' - > '已解决' - > “完成”。在星期一的每周一次会议上讨论时,故事会进入“完成”状态。

答案 4 :(得分:0)

我曾经参与过项目,我们练习过XP。我发现Pivotal Tracker非常适合规划和用户故事。我还建议你看一下 BitBucket 。我们发现与 mercurial 分布式版本控制一起使用时非常有用,因为我认为它非常适合分布式团队。

我也注意到XP在学术环境(学生)中效果不佳。每周40小时的实践和配对编程并不奏效。我是使用XP方法的团队的项目评估员。

总体而言,敏捷开发很好,我认为非常适合小型项目。也可以为大项目工作,但需要使用小团队来分治。

只要他们从迭代开始,或者与对已经开发的功能有一个公平想法的人配对,整合新人是相当容易的。

像TDD这样的其他事情证明是有帮助的。

答案 5 :(得分:0)

  

你多久见一次?

每两天,根据紧急程度,增加每日短期会议

  

您是否尝试过不同的冲刺长度(一周,两周,更长)?

坚持两周冲刺长度

  

您使用哪些工具?

协作工具至关重要。通讯:手机。文档共享/理念共享/知识共享:维基或论坛。有许多平台:IGLOO,JiveSoftware,Leverage软件都很容易使用

  

您使用哪个问题跟踪器?

这通常内置于协作软件

  

你如何处理时区差异?

日历和倒计时让人们在他们的时间段内工作,会议进行调整,即使我们无法让所有人在同一时间见面,也会召开会议以使A见面B,B遇见C(告诉C关于AB会议),C见A(告诉A关于BC会议),继续并跟进电子邮件。这在不同时区的小团队中顺利进行

  

如何将新人融入团队?

在小事上启动它们以适应系统,并挑战它们以尽可能多地学习。

  

您通常每周工作多少小时?

40+通常

  

您的管理层如何与您的工作方式互动?

使用扁平层次结构 - 管理层与员工合作,比老板更多地提供指导。这样可以防止扼杀创造力,并且总体上可以提高幸福感

  

你是否会在艰难的期限内登上瀑布?

没有。瀑布方法很少见,只发生在最多持续3或4天的小项目中。