第二十一章 协同构造
协同开发实践概要
协同构建包括结对编程、正式检查、非正式技术复查、文档阅读,以及让其他开发人员共同承担创建代码及其他工作产品责任的技术。
- 协同构建是其他质量保证技术的补充;
- 协同构建有利于传授公司文化以及编程专业知识;
- 集体所有权适用于所有形式的协同构建;
- 在构建前后都应保持协作。
结对编程
成功运用结对编程的关键
- 用编码规范来支持结对编程;
- 不要让结对编程变成旁观;
- 不要强迫在简单的问题上使用结对编程;
- 有规律地对结对人员和分配的工作任务进行轮换;
- 鼓励双方跟上对方的步伐;
- 确认两个人都能看到显示器;
- 不要强迫程序员与自己关系紧张的人配对;
- 避免新手组合;
- 指定一个组长。
- 结对编程的好处
结对编程的好处
- 结对能够使人们在压力之下保持更好的状态;
- 能够改善代码质量;
- 能够缩短时间进度表;
- 传播公司文化,指导初级程序员,培养集体归属感。
核对表:有效的结对编程
正式检查
虽然任何复查都设计了于都设计或者代码,但是正式检查(详查)还在几个关键问题上与普通复查有所区别。
- 详查表关注的是复查者过去所遇到的问题;
- 详查专注于缺陷的检测,而非修正;
- 复查人员腰围详查会议做好预先准备,并且带来一份他们所发现的已知问题列表;
- 参与者都被赋予了明确的角色;
- 详查的主持人不是被检查产品的作者;
- 详查的主持人应该已经接受过主持详查会议方面的培训;
- 只有在与会者都做好充分准备之后才会召开详查会议;
- 每次详查所收集的数据都会被应用到以后的详查中,以便对详查进行改进;
- 高层人员不参加详查会议,除非你们正在详查一个项目的计划,或者其他管理方面的资料,但技术负责人可能参加。
详查的一般步骤
- 计划;
- 概述;
- 准备;
- 详查会议;
- 相差报告;
- 返工;
- 跟进;
- 第三个小时的会议。
核对表:有效的详查
其它类型的协同开发实践
- 走查;
- 代码阅读;
- 公开演示;
要点
- 协同开发时间往往能比测试发现跟多缺陷,并且更有效率;
- 协同开发实践所发现错误的类型通常跟测试所发现的不同,这意味着你需要同时使用详查和测试保证你软件的额质量;
- 正式检查通过运用核对表、准备工作、明确定义的角色以及对方法的持续改善,将缺陷侦测的效率提升至最高;
- 通常,结对编程拥有和详查相同的成本,并且能产生质量相当的代码;
- 正式检查可以应用咋出代码之外的很多工作成果上,例如需求、设计以及测试用例等;
- 走查和代码阅读是详查的替代方案。代码阅读更富有弹性,能有效地利用每个人的时间。