写点什么

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

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

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

关注

评论

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

PyCharm 2022.2 发布了,支持最新 Python 3.11 和 PyScript 框架!

Python猫

Kubernetes宕机切换源码分析

Jason黄

源码分析 kubelet Kubernetes 集群 宕机

千万级学生管理系统的考试试卷存储方案

张立奎

【云原生】Spring Cloud Alibaba 之 Feign 远程调用 实战

Bug终结者

分布式 微服务 云原生 8月月更

【LeetCode】检查数组是否存在有效划分Java题解

Albert

LeetCode 8月月更

知乎疯传,吹爆阿里P7《K8s+Jenkins》的技术手册

程序知音

Java 编程 程序员 后端技术 #k8s

计算机网络知识点全面总结(一篇全懂)

C++后台开发

网络编程 计算机网络 网络协议 底层原理 C/C++开发

使用 JavaScript Promise 读取 Github 某用户的数据

汪子熙

JavaScript Promise 异步编程 Javascript框架 8月月更

Android进阶(十二)Fragment与Activity讲解

No Silver Bullet

android Activity Fragment 8月月更

C++运算符重载(五)之关系运算符重载

CtrlX

c c++ C# 重载 8月月更

Go-Excelize API源码阅读(九)——SetSheetBackground(sheet, picture string)

Regan Yue

Go 开源 源码解读 8月日更 8月月更

TE数字化共创之路 | 这场旅程,从数字化共创平台开始

明道云

开源一夏|OpenHarmony视频播放器

坚果

开源 OpenHarmony 8月月更

史上最全的Java并发系列之Java中的线程池

自然

线程池 并发 8月月更

如何正确理解Java领域中的多线程模型,主要用来解决什么问题?

PivotalCloud

美团二面:如何解决 bin log 与 redo log 的一致性问题

飞天小牛肉

签约计划第三季

JSON 基本使用

兮动人

json

应用系统日志打印规范实践之道

陈俊

日志 规范

95后跳槽阿里网晒工资条:多亏面试前补了这个,真香

程序猿阿宇

Java java程序员 大厂面试 大厂面经 内推

史上最全的Java并发系列之Java中的锁的使用和实现介绍(二)

自然

多线程 并发 8月月更

体验家辛济云:CEM不是MarTech,不仅要“从0到1”,更要规避“从1到0”

B Impact

MySQL 原理与优化:意向锁,IS,IX

老崔说架构

废除“网络君主制”,认识 Usenet ~

掘金安东尼

前端 网络 8月月更

React Server Components 介绍 亮点

HullQin

CSS JavaScript html 前端 8月月更

五分钟搞定YAML

俞凡

云原生 yaml

SpringCloud OpenFeign 请求重试

程序知音

Java spring 程序员 微服务 SpringCloud

超新概念出炉,JDK17的封闭类使用解析

知识浅谈

8月月更

3-6月面经总结,200多页真题笔记和详解(含核心考点及6家大厂)

程序猿阿宇

Java java程序员 大厂面试 秋招 大厂面经

Java技术专家成长路线总结(思维导图)

程序猿阿宇

Java java程序员 大厂面试 秋招 大厂面经

大逆不道,从天界偷下来的算法修仙秘籍竟然传到你手上~~(结尾有彩蛋)

武师叔

数据结构与算法 有趣的技术知识 复杂度分析 签约计划第三季 8月月更

STM32入门开发 编写DS18B20温度传感器驱动(读取环境温度、支持级联)

DS小龙哥

8月月更

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