我们可以远程配对程序吗?
我们有大约7名工程师组成的团队,由我监督。我们没有一个我们都在其中工作的正式办公室。取而代之的是,少数人位于我们的城市之外,而我们其他人则分散在海湾地区。
我经常发现自己尝试讲授TDD之类的概念或者向我们的一些初级(或者非初级)开发人员重构。我所知道的最好的技术是结对编程,我们可以坐在同一台计算机上,一起解决问题。由于大多数时候我们不在同一个地方,因此唯一的选择是使用某种屏幕共享和Skype,让我们一个人"开车",而另一个人则进行咨询,然后进行切换。
我的问题是,有人尝试过这种"虚拟"对编程吗,我们觉得它有用吗?
解决方案
回答
尝试远程配对程序可能不会像亲自进行那样有用,但是我们当然可以使用协作编辑器(如OS X中的SubEthaEdit)来实现。
回答
我们一直在使用Eclipse 3.4(Ganymede)中的新ECF功能,并且我们喜欢它。实际上,我们彼此之间并不遥远,除非我们中的一个人在家工作,但是ECF允许我们编辑相同的文件,并且还具有用于聊天的IM窗口。如果我们使用Skype,那就更好了。
Vimeo上有一个很好的关于屏幕共享的截屏视频,这确实使我们为此感到兴奋。
回答
在我目前的工作中,我曾与另一位位于另一个位置的开发人员一起工作。虽然我们经常通过电话(耳机是一大优点!)和屏幕共享进行了相互咨询,但是当我访问他的位置时,真正的"共同工作"(包括一些真正的配对编程)要有效得多(因为一整周,这几周非常紧张)。
屏幕共享的主要问题是,我们永远都不知道谁来移动鼠标……(例如,指向屏幕上的某物)。
在那个项目上,我们最终将工作分为两个子项目,然后聚集在一起(意思是:旅行)将它们组合在一起。
回答
我知道Netbeans有一个" Developer Collaboration"(Flash演示)插件,基本上就像多人编程一样。我们在本地文件中所做的任何更改几乎都会立即复制到另一方。这很酷,但是自从我玩了已经有一段时间了,而且我从未将它用于真正的项目。有一个聊天窗口,但最好还是打电话或者使用Skype。
回答
我不仅在跨站点而且在跨时区都做了很多配对编程。我住在以色列,并且一直与西海岸的人们一起工作。我发现最好的方法是使用共享的VNC会话和Skype。我们需要一些"良好行为"以确保我们中只有一个在给定时间键入内容。我们使用的VNC服务器为我们提供了两个不同的指针,因此只要不实际单击,我们就可以移动各自的鼠标而不会妨碍它们。
主要问题是剪贴板是共享的,因此,如果某人选择了某项内容,它将自动复制到其他人的剪贴板中。
通常,跨站点跨编程虽然不理想,但是肯定是可行的,并且绝对是有用的。
回答
在OSX上,我使用了vim和多用户GNU屏幕会话,它的响应速度比VNC,屏幕共享等要好得多。我将此设置与Skype和耳机一起用于语音通信。
我已经做了很多这样的远程配对,我发现它可以很好地工作。但是,为了使其工作正常,就像面对面配对(但可能更有效)一样,我认为我们需要双方都具有良好的动力并熟悉所使用的工具。另外(与面对面的情况相比),我认为这有助于对工作进行更多的持续评论。
回答
我们已经使用了webex。尽管不一定适合这种情况,但它确实具有一些功能来调解谁控制计算机以及何时控制计算机。
回答
是的,我已经完成了远程配对。
我们使用了老式的免提电话和VNC。我们在西雅图和英格兰伯恩茅斯之间结伴。跨大西洋的时间滞后使VNC很难使用,很难不使用随机网络滞后的鼠标来打扰其他人。
我们需要大量的耐心和一些习惯,轮流"驱动"键盘和鼠标。
我们仅在30分钟左右的短时间内进行了远程配对以进行开发,因为大多数人很快就头痛了。网络滞后真是太痛苦了。我们只是为了解决问题而努力,人们到达了这样的地步:通过演示比通过阅读Wiki上的文字更容易解释。
我认为这些天,使用我也用于配对的远程桌面可能会得到更好的结果。我的远程桌面远程配对是为了支持和部署的,它是在两个远程开发人员登录到工作中的计算机之间进行的。人们告诉我,就带宽而言,远程桌面比VNC效率更高,但我无法证实这一点。
回答
回答
是的,我们绝对可以远程配对程序,而且我已经成功地延长了一段时间。我们几乎整天都打开了Skype音频聊天,并使用TeamViewer来镜像屏幕。出色地工作。
如果我没记错的话,它有一个钢笔/绘图工具,可让导航员在屏幕上向驾驶员显示他在说什么。