写点什么

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

  • 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:563294
用户头像

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

关注

评论

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

人生算法:做好自己这家公司的CEO

石云升

读书笔记 思维模型 5月日更

密码学系列之:SAFER

程序那些事

密码学 程序那些事 SAFER

Django 之 Models(Models 模型 & 数据表关系)

若尘

django model Python编程 5月日更

英特尔院士斯旺:由外而内重塑芯片设计

E科讯

用图数据库可视化探索 Chia Network 区块链数据

古思为

区块链 可视化 图数据库

webRTC的标准与发展

anyRTC开发者

音视频 WebRTC RTC

week5作业

Geek_2e7dd7

架构实战营

眼观六路耳听八方还不知疲倦?数仓智能运维服务体系是怎么做到的?

华为云开发者联盟

数据库 数据仓库 监控 智能运维 数据库监控

低代码实现传统装饰企业的管理跃迁

华为云开发者联盟

低代码 华为云 计算 低代码开发 AppCube

高可用DevHa实践,告诉你生产环境0性能故障是如何做到的!

TakinTalks稳定性社区

压测 性能调优 全链路压测 系统稳定高可用 性能压测

5 月 28 日 - 29 日阿里云峰会视频云专场直播预告

阿里云视频云

阿里云 音视频

从源码角度研究Java动态代理

叫我阿柒啊

动态代理 代理模式 rmi

并发王者课-青铜7:顺藤摸瓜-如何从synchronized中的锁认识Monitor

MetaThoughts

Java 多线程 并发

MySQL事务处理特性的实现原理

华为云开发者联盟

MySQL 数据库 innodb 事务 隔离

探秘区块链技术在计算机取证过程中的机制与应用

CECBC

代码精进之路学习笔记

escray

学习 极客时间 5月日更

为什么不推荐C++?

实力程序员

面向WEB开发人员的Docker(六):使用nginx部署静态网站

devpoint

Docker

一场“测谎”人机对战背后的故事:度小满的技术进击之路

脑极体

【Flutter 专题】118 图解特殊利器 ShaderMask 着色器

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

2021 全球技术领导力峰会 融云布道技术领导力进阶之路

融云 RongCloud

现在已经卷到需要问三色标记了吗?

艾小仙

五一假期旅游完突然收到(余额宝)面试,四面成功拿下offer

Java架构师迁哥

智慧党建平台搭建,党建干部管理系统,智慧组工平台解决方案

【玩转PDF】贼稳,产品要做一个三方合同签署,我方了!

牧小农

JVM

V8数据存储(上篇):栈和堆

梁龙先森

大前端 浏览器

博睿数据2021战略发布巡展,开辟IT运维创新路径

博睿数据

博睿数据 数据链DNA 服务可达

appium 入门参考

37手游iOS技术运营团队

ios 测试 自动化测试 iOS Developer

5分钟速读之Rust权威指南(十一)

wzx

rust

计算社会科学 - DAY 17

Qien Z.

5月日更

鸿蒙轻内核M核源码分析:数据结构之任务排序链表

华为云开发者联盟

鸿蒙 数据结构 任务排序链表 双向链表数组 鸿蒙轻内核

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