一张图读懂结对编程与单人开发的差异。结对编程的好处(尤其适合软件模块之间耦合很强的场景):
- 减少返工时间(因为在结对编程的实时代码评审时,可以实时返工,节省了后期返工所带来的等待时间,并让代码设计更好,缺陷更少)
- 减少等待其他团队成员回答你的问题的时间(因为是模块之间强耦合,所以你的代码必然依赖其他人的代码,其他人的代码你如果不熟悉,就需要问他们。如何是单人开发,每个人都有自己的故事,他们会经常没时间回答你的问题。)
- 减少在制品数量(原来6人的团队如果结成3对来工作,那么在制品数量从6减少为3)
- 减少本地持续集成的时间(因为在制品数量从6减少为3,那么从开发主干拉代码来做CI时的冲突会减少)
- 减少代码评审的时间(因为在结对编程时就已经做了代码评审,所以就省去了代码评审)和思维切换的时间(当你过了1~2天做代码评审,一定会对代码有所淡忘,需要花时间重新读代码)
- 减少合并代码到团队开发主干的时间(因为在制品数量从6减少为3,那么在合并到主干前,从开发主干拉代码的冲突会减少)
- 避免关键路径上的单点故障(我曾经所在的一个团队只有一个人会做前端开发,有一天他腰疼,请了2周假,这两周产品无法发布。如果有人曾和他结对,那么他休病假时这些人就能顶上。)
- 提供团队士气(结对编程能让团队成员觉得工作很有意思,能留住骨干成员)
- 让团队成员对代码设计更有信心(三个臭皮匠,顶过一个诸葛亮)
- 促进代码集体所有(结对搭档不能一成不变,需要经常更换)
- 把知识在团队中快速传播
- 建立信任和团队精神(通过结对编程能更好地了解团队成员,增强信任与合作)
- 促进学习(结对的搭档能相互切磋软件开发技艺,互相弥补不足)

网友评论