写点什么

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

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

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

关注

评论

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

《深入理解计算机系统(原书第3版)》PDF

程序员李木子

linux的find命令常用说明

百度搜索:蓝易云

云计算 Linux 运维 云服务器 find

【年后跳槽必看篇-非广告】Kafka核心知识点-第四章

派大星

kafka Java’

如何对混合日志进行自动化解析

华为云开发者联盟

开发 华为云 华为云开发者联盟

Alert 趋势图与原始指标图整体优化、指标趋势图查询异常中台功能

博睿数据

XMind 转 Excel 与 CSV 的思路与实现

牧遥

Excel XMind 测试工具 csv Java’

10V单通道负载开关

梦笔生花

使用 HashiCorp Vault 保护 NGINX 中的 SSL 私钥

NGINX开源社区

HashiCorp SSL/TLS nginx 开源版 安全防护 保护 SSL 密钥

一文带你简单了解多租户模型定义以及好处

行云管家

SaaS 多租户

稀疏场景高性能训练方案演变|京东广告算法架构体系最佳实践

京东零售技术

人工智能 架构 算法 GPU算力

面试官:什么是JIT、逃逸分析、锁消除、栈上分配和标量替换?

王磊

Java 面试

第38期 | GPTSecurity周报

云起无垠

Java 编程指南:入门,语法与学习方法

小万哥

Java 程序人生 编程语言 软件工程 后端开发

如何解决系统报错:nf_conntrack: table full, dropping packets

百度搜索:蓝易云

云计算 Linux 运维 服务器 云服务器

【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的保障容量的三大关键方案实现

洛神灬殇

分布式 熔断 限流 降级 2024年第二十七篇文章

四方维ECAD模型成为元器件的新标配

财见

Wireshark中的ARP协议包分析

小齐写代码

「一手好牌」|博睿数据新年掼蛋礼盒:开年好运,事业高飞!

博睿数据

Covalent Network:全新链上协议收入体系,财务透明革命引领者

股市老人

创业7年复盘,中美企业服务市场差异浅析

Kyligence

AI 数据分析

Linux系统gunzip命令有何作用?如何使用?

百度搜索:蓝易云

云计算 Linux 运维 云服务器 gunzip

提升系统管理:监控和可观察性在DevOps中的作用

禅道项目管理

项目管理 DevOps 系统管理

IPQ9574 and QCN9274 Industrial grade and commercial difference? Performance, transmission, etc

wifi6-yiyi

qcn9274 ipq9574

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