写点什么

结对编程:肩并肩还是面对面

  • 2011-11-12
  • 本文字数:1124 字

    阅读完需:约 4 分钟

结对编程是一门敏捷软件开发的技术,其目的是让两个开发人员共同在同一个工作站上工作。关于结对编程所带来的好处已广为流传,相应的技术和方法也得到了广泛实践。然而,在进行结对编程时,最好的安排座位的方法又是怎样的呢?

通常的位置是肩并肩地坐,但这样存在着一些弊端,正如 Josh Susser 所说的那样:

尽管在多数情况下这样安排座位是一种很好的方法,但其并不符合人体工程学。首先,两个人都并非正对显示器,而是偏向显示器的边缘,在敲打键盘或观察显示器时,将会引起相互倚靠、懒散及扭头等情况的发生。同时,在不转动脖子的情况下,也很很难看清自己的搭档。即使桌子较宽,有足够的空间给键盘和鼠标,同样会存在拥挤、调整桌面和椅子所带来碰撞等问题。

另外一种方法就是面对面地进行结对编程。这种变通的方法看上去就像下图中阴影部分所表示的那样。

按照 Josh 的说法:

这样安排座位会更加舒服,结对的双方都能有更好的视角来观察屏幕,共同工作时还能非常容易的看到对方是一件非常有利的事情。结对双方坐的足够近,这样即使不提高嗓门也能够很容易地听到对方在讲什么。做了这样的调整后,一整天工作下来,我感觉比以前好了很多,脖子也不像以前那样难受了。

Brian 和 Corey对这种方法进行了尝试并取得了不错的效果。像 Brian 所说的那样,他最终还是倾向于用新方法取代传统的做法。

与在屏幕面前肩并肩地结对编程相比,我倾向于这种新的做法。我甚至认为这种方法比同时面对两个并排放置的屏幕,使用两套鼠标的方法还有效。工作变得更加自在,交流也变得更加充分。可以更容易地看清另外一个人的肢体动作。可以更加容易地终止编写代码、查找以及相互交谈。我发现人员状态的切换变得更加顺畅,光标将两个人的注意力在同一时间内聚集在一起的做法节省了大量时间。

Dave Smith 认为这种方法的出现并不稀奇,他在1980 年时就见过类似的做法,那时,两位计算机科学家相向而坐,放在他们之间的就是两台巨大的显示器。

Tim Ottinger 也尝试了这种布局,但是看起来不是很奏效。他提到:

我们只是做了下尝试。大家没有抵触这种做法,但我们感觉到彼此之间的联系没有以前那样紧密了,使我们不得不用鼠标来代替以前的手指来示意。这么做虽然看到了些效果,但更像是一种远程结对的体验。

这样的改进是否也存在着不足呢?

Josh 认为,在捕捉一些细微的动作上的确有些难度,比如在肩并肩结对时,可以很清晰地看到操控键盘的操作以及鼠标轨迹的移动。此外,这种做法在费用上也有所上升,因为需要更多的设备和场地空间。

不管这种做法从长远来看是否有效,但非常值得一试。 Davis W.Frank 这样评论到

我确信当这种方法被证明成功时,会有更多的人举双手赞成并广为使用。

查看英文原文: Pair Programming: Side-by-Side or Face-to-Face

2011-11-12 21:563919
用户头像

发布了 156 篇内容, 共 58.4 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

Android开发——优化Glide加载超大gif图

android 程序员 移动开发

Android应用进程间通信之Messenger信使使用及源码浅析

android 程序员 移动开发

Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

android 程序员 移动开发

Android开发工程师:都想要进大厂,那么大公司面试的方向和面试官套路你都摸透了吗?

android 程序员 移动开发

Android开源框架(整理)

android 程序员 移动开发

Android技能树 — Activity小结

android 程序员 移动开发

Android日常开发问题总结:这些问题火候不够,随时变成删库跑路!

android 程序员 移动开发

Android架构组件-WorkManager

android 程序员 移动开发

Android开发 申请Mob的SMSSDK的短信验证码功能中获取MD5签名(更新中)

android 程序员 移动开发

Android开发进阶之路,你需要掌握这些关键技术!40万年薪不是梦

android 程序员 移动开发

Android性能优化面试题集锦

android 程序员 移动开发

Android打造不一样的新手引导页面(二)

android 程序员 移动开发

Android开发没有一技之长就废了吗?

android 程序员 移动开发

Android开发3年,九月份面试12家大厂跳槽成功,我有一些面试经验想分享给你们

android 程序员 移动开发

Android性能优化之启动加速35%

android 程序员 移动开发

Android性能优化案例(3)内存抖动和泄漏的优化

android 程序员 移动开发

Android技能树 — 树基础知识小结(一)

android 程序员 移动开发

Android开发工程师:都想要进大厂,那么大公司面试的方向和面试官套路你都摸透了吗?(1)

android 程序员 移动开发

Android开发进阶,需要掌握这几个关键技术是关键!

android 程序员 移动开发

Android开源的精美日历控件,热插拔设计的万能自定义UI

android 程序员 移动开发

Android最傻瓜式的AOP框架

android 程序员 移动开发

Android架构师成长之路,如何成为一名Android架构师?

android 程序员 移动开发

Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

android 程序员 移动开发

Android开发3年,4个月面试,终于拿到小米、京东

android 程序员 移动开发

Android开发热门前沿知识

android 程序员 移动开发

Android开发简记:Java和Android程序员都应该掌握的虚拟机知识

android 程序员 移动开发

Android开发:为什么除了Flutter之外,我们还需要另一个跨平台开发框架?

android 程序员 移动开发

Android混合编程:WebView实践

android 程序员 移动开发

Android热更新

android 程序员 移动开发

Android版仿微信朋友圈图片拖拽返回效果

android 程序员 移动开发

Android开发中如何实现折线图的方法 (1)

android 程序员 移动开发

结对编程:肩并肩还是面对面_研发效能_Vikas Hazrati_InfoQ精选文章