AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

为什么结对编程很难实施

  • 2014-12-31
  • 本文字数:1039 字

    阅读完需:约 3 分钟

结对编程有助于提高软件质量和加强团队成员合作。它有非常多的好处,但是,团队成员真的很容易结成对子吗?

Marcos Brizeno,巴西 ThoughtWorks 公司的电脑科学家和顾问开发,在他最近的博客中分享了他的想法,描述了为什么采用结对编程很难。

Marcos 提出如下在做结对编程时的一些挑战:

  • 基础设施:团队需要有专用的工作站,提供通用的安装, 例如编辑器,操作系统等。
  • 疲劳:提高专注力并不容易,要花很多的精力专注在某个问题上,要分享你的想法和倾听其他人的意见。
  • 自我:很重要的一点是要保持谦卑并倾听其他人的想法,而不是争辩。

David Green, TIM Group 的软件工程师,说结对并不适合所有人。他在最近的博客 上分享了他的观点:

任何一个团队最终都是由不同性格的人混合在一起的。外向型的人更喜欢结对,然而内向型的人会更倾向性地认为这很难做到,并且他们尽量避免这种做法。这并不一定是教育或者说服的问题,相对来说也看不清其中的收益,甚至更多内向型开发人员可能会发现整个过程并不比独自工作更快乐。

Joe Barnes,ASCII 字符的制作者,提到了剽窃是团队停止做结对的原因。

我相信我已经意识到了,扼杀我们团队合作的最大因素是结对。老是担心被剽窃就会间接这样的结果。

Marcos 介绍了一项回顾练习,称为“那个人和这个人”,从而得出你们团队结对编程一系列的最佳实践。最初这是一个回顾活动,该活动信息是由 Paulo Caroli(ThoughtWorks 的敏捷教练)和 Taina TC Caetano(ThoughtWorks 的开发者顾问)联合发表的。

把一堵墙分成两个部分,“不要做那个人”和“要做这个人!”:在第一部分,成员写下他们不喜欢哪些行为的示例。第二部分包括大家真正喜欢的行为示例。

然后,走到墙边让团队成员讨论每一个例子。在交流中应该让团队讨论对于某个特定类型的行为有什么看法,大家是否都觉得这个行为还不错呢?有些示例中的行为可能潜显易懂没什么可谈的,而有一些就可能值得深入讨论了。

我认为这个活动是提高团队士气的一个好方法,有了这样的对话,经常会让人们感觉彼此间能够更加地坦诚,因此又会增进了更多的交流。如何感受团队的动力呢?一个比较好的方式就是观察他们互相之间是如何谈话的。通常,一个安静的团队就意味着人们之间都不怎么联系,并且很少分享信息。

查看英文原文: Why Pair Programming is Hard to Implement


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-12-31 03:473238
用户头像

发布了 55 篇内容, 共 14.5 次阅读, 收获喜欢 8 次。

关注

评论

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

【从零开始学爬虫】采集谷歌网页列表数据

前嗅大数据

大数据 数据采集 爬虫软件 爬虫教程 互联网+

2022-09-13:给你两个整数 m 和 n ,分别表示一块矩形木块的高和宽。 同时给你一个二维整数数组 prices ,其中 prices[i] = [hi, wi, pricei] 表示你可以

福大大架构师每日一题

算法 rust 福大大

系统实战-逻辑多租服务的高并发调优

三叶草

性能优化 高性能,

【计算机网络原理】第三章 传输层

前端小刘不怕牛牛

TCP 计算机网络 HTTP 9月月更

万字长文!教你如何拆解一款 App

产品海豚湾

产品经理 产品设计 竞品分析 B端产品 9月月更

【JS】DOM键盘事件--div元素-设置键盘事件--失效的额外处理踩坑

Sam9029

JavaScript DOM 9月月更 键盘事件

系统设计 - 高可用思想简介

三叶草

高可用 SLA 高可用设计

SpringFramework初识

十八岁讨厌编程

spring 后端 9月月更

单链表头插法,尾插法,循环链表,(线性表单链表)

IC00

c 链表 数据结构, 9月月更

做好产品手册,发现优质顾客

Baklib

跟着卷卷龙一起学Camera--AE

卷卷龙

ISP 9月月更

ChatOps新型运维协作介绍

阿泽🧸

ChatOps 9月月更

【vue3】vue3-组合式API中实现深拷贝

Sam9029

Vue 深拷贝 9月月更

走向云原生数据库,告别 Microsoft SQL Server,迎接 Babelfish

亚马逊云科技 (Amazon Web Services)

数据库 云原生

[SpringBoot系列]基础过渡与夯实(基础配置)

十八岁讨厌编程

Java 后端开发 9月月更

[MyBatisPlus]标准数据层开发(CRUD、分页)

十八岁讨厌编程

Java 后端开发 9月月更

关于CMDB建设思路的一点思考

穿过生命散发芬芳

CMDB 9月月更

C++学习------csetjmp头文件的源码学习

桑榆

c++ 源码阅读 9月月更

低代码探索:Java模板引擎技术

程序员架构进阶

低代码 9月日更 模板引擎 技术探索

做好企业的内部知识管理的方法

Baklib

车载生态安全怎样靠小程序技术运转

Geek_99967b

小程序 车联网

测试需求平台4-Flask实现API服务入门实战

MegaQi

测试平台开发教程 9月月更

亮点抢先看|StarRocks Summit Asia 2022 全议程公布!

StarRocks

数据库

【C语言深度剖析】你真的懂C语言中的位操作符吗?

Albert Edison

C语言 9月月更 位移操作符 按位与 按位或

编排流程/规则,编排本身也需要很深的逻辑思考!

waitmoon

规则引擎使用 规则引擎 流程引擎 可视化开发

聚簇索引与覆盖索引

急需上岸的小谢

9月月更

编辑FAQ常用问题网页的Tips

Baklib

挑战30天学完Python:Day2 夯实基础-变量和内置函数

MegaQi

9月月更 挑战30天学完Python

Java进阶(十七)ArrayList与LinkedList的区别

No Silver Bullet

Java ArrayList linkedlist 9月月更

为什么结对编程很难实施_研发效能_Savita Pahuja_InfoQ精选文章