目录 3
第一部分 结对编程技术理论 3
第1章 结对编程技术简介 3
1.1 结对编程 3
1.2 是否结对,这是个问题 4
1.3 墙上的旁观者 4
1.4 结对编程技术的早期实践 7
1.5 有言在先 8
第2章 结对编程技术的7个误区 11
第3章 结对编程技术的7种激励效应 17
第4章 如何说服管理层接受结对编程技术 27
第5章 如何寻求同事们的支持和接受 37
第6章 如何让下属们接受结对编程技术 41
6.1 Green和Hevner的研究发现 42
6.2 对管理层的忠告 43
6.3 对程序员的忠告 46
第7章 问题 47
7.1 对搭档产生依赖性 47
7.2 进度安排难以协调 47
7.3 分身乏术 48
7.4 工作地点 48
7.5 噪音与办公室布局 49
7.6 灵感来时无暇他顾 49
7.7 意见不合 49
7.8 过于自信 50
7.9 赶进度 50
7.10 技能不平衡 50
7.11 难以适应结对编程技术 51
7.12 小结:必要的管理和维护工作 51
8.2 对工作场所的改进建议 55
8.1 对工作场所的基本要求 55
第8章 工作场所的布局 55
第二部分 结对编程技术实战 55
8.3 搭档间的交流 56
8.4 开发环境 57
8.5 噪音问题 58
8.6 最后一点提醒 58
第9章 结对轮转机制:交流、知识管理与培训 59
9.1 基本原则:与最佳人选结为搭档 59
9.2 挑选搭档的办法 61
9.3 结对轮转机制与知识管理 62
9.4 结对轮转机制与培训 64
9.5 结对轮转机制小结 65
第10章 其他考虑因素 67
10.1 绩效考核 67
10.2 团队规模 68
10.3 质量保证 69
10.4 功能与系统测试 70
10.5 代码的维护与优化 71
第11章 技巧与窍门 73
第三部分 结对编程搭档的选配原则 79
第12章 搭档组合方式:专家—专家 79
12.1 目的 79
12.2 成功要素 80
12.3 挑战 80
12.4 真人真事 81
第13章 搭档组合方式:专家—中级程序员 85
13.1 目的 85
13.2 成功要素 85
13.3 挑战 87
13.4 真人真事 87
第14章 搭档组合方式:专家—新手 89
14.1 目的 89
14.2 成功要素 89
14.3 挑战 90
14.4 真人真事 91
第15章 搭档组合方式:新手—新手 93
15.1 目的 94
15.2 成功要素 94
15.3 挑战 95
15.4 真人真事 95
第16章 搭档组合方式:外向型—外向型 97
16.1 目的 97
16.2 成功要素 98
16.3 挑战 98
16.4 真人真事 98
第17章 搭档组合方式:外向型—内向型 101
17.1 目的 101
17.2 成功要素 101
17.3 挑战 102
18.2 成功要素 103
18.1 目的 103
第18章 搭档组合方式:内向型—内向型 103
18.3 挑战 104
18.4 真人真事 105
第19章 性别不是问题 107
19.1 观点 108
19.2 说明 108
19.3 基本对策 108
19.4 真人真事 108
第20章 文化背景不是问题 111
20.1 观点 112
20.2 说明 112
20.3 基本对策 112
20.4 真人真事 113
第21章 职业驾驶员问题 117
21.1 根源 117
21.3 基本对策 118
21.2 基本表现形式 118
21.4 真人真事 119
第22章 “我的搭档太差劲”等因盲目自大而导致的问题 123
22.1 根源 124
22.2 基本表现形式 124
22.3 基本对策 124
22.4 真人真事 125
第23章 “我的搭档太聪明”等因盲目自卑而导致的问题 127
23.1 根源 128
23.2 基本表现形式 128
23.3 基本对策 128
23.4 真人真事 129
第四部分 结对编程技术在软件过程中的应用 133
第24章 结对编程技术在软件过程中的应用案例研究:XP 133
24.1 软件开发方法论的进化史 133
24.2 XP方法论简介 134
24.3 XP离不开结对编程技术 138
第25章 结对编程技术在软件过程中的应用案例研究:CSF 141
25.1 CSP方法论概述 142
25.2 小结 149
第五部分 做个出色的结对程序员第26章 前进,超越 153
26.1 编程三人组 153
26.2 两位搭档来自不同学科 153
26.3 代码检查过时了吗 154
26.4 投影屏幕 154
26.5 分布式结对编程技术 154
26.6 结对学习 156
第27章 优秀结对程序员的7个好习惯 159
附录A 结对编程技术教程 165
附录B 关于结对编程技术的经济学分析 173
附录C 课堂中的结对编程技术 187
附录D 测试驱动的开发技术简介 193