-》结对编程
-》 正式检查
结对编程
成功运用结对编程的关键:
- 用编码规范来支持结对编程
- 不要让结对编程编程旁观
- 不要强迫在简单的问题上使用结对编程
- 有规律的对结对人员和分配的工作任务进行轮换
- 鼓励双方跟上对方的步伐
- 确认两个人都能够看到显示器
- 不要强迫程序员与自己关系紧张的人组队
- 避免新手组合,两人之间至少有一个有结对编程的经历
- 指定一个组长
结对编程的好处:
- 能够使人在压力之下保持更好的状态
- 能够改善代码质量
- 缩短进度时间表
- 指导初级程序员,培养集体归属感
核对表(有效的结对编程)
- 是否已经有一个编码规范,以便让程序员始终把经历集中在编程,而不是编码风格的讨论上
- 结对双方是否都积极参与
- 是否避免了滥用结对编程,而是选择那些能够从中获得好处的工作进行结对编程
- 是否有规律的对人员和工作任务进行轮换
- 结对编程是否在开发速度和个性方面互相匹配
- 是否有一个组长专注于项目管理以及与项目外其他人沟通
正式检查
核查表(有效的详查)
- 你是否有一个核对表,能让评论员将注意力集中于曾经发生过的问题的领域
- 你是否专注于找出错误,而不是修正他们?
- 你是否考虑制定某些视角或者场景,以帮助评论员在准备工作的时候集中注意力
- 你是否给与评论员足够的时间在详查会议之前进行准备,是否每一个人都做了准备
- 是否每一个参与者都扮演一个明确的角色——主持人、评论员以及记录员等
- 会议是否以某种高校的速度进行?
- 会议是否限制在两个小时以内
- 是否所有的详查会议的参与者都接受了如何进行详查的针对性培训,是否主持人接受了有关主持技巧方面的针对性培训?
- 是否将每次详查所发现的错误数据都收集起来,使你能调查本组织以后使用的核对表
- 是否收集了准备速度和详查速度方面的数据,以便你去优化以后的准备和详查工作
- 是否每次详查中都被指派下去的活动都被正确的跟进了,无论是通过主持人自己还是一次重新详查
- 管理层是否理解他们不应该参与详查会议
- 是否有一个用于保证修正正确性的跟进计划
总结
要点
- 协同开发实践往往能比测试发现更多的缺陷,并且更有效率
- 协同开发实践所发现错误的类型通常跟测试所发现的不同,这意味着你需要同时使用详查和测试来保证你软件的质量
- 正式检查通过运用核对表、准备工作、明确定义角色以及对方法的持续改善,将缺陷侦测的相率提升至最高。他往往能比走查发现更多的缺陷
- 通常,结对编程拥有和详查相同的成本,并能产生质量相当的代码。当需要缩短开发周期的时候,结对编程就非常有价值。相对于单独工作而说,有些开发人员更喜欢结对工作
- 正式检查可以应用在除代码之外的很多工作成果上,例如需求、设计以及测试用例等等。
- 走查和代码阅读是详查的替代方案。代码阅读更富有弹性,能有效地利用每个人的时间