熊节:极限追问 033
【结对编程行不行?】
背景:结对编程可能是极限编程各种实践中最受争议的之一。很多人一听说“结对”,马上就担心开发速度要降低一半。
分问题1:你在工作中实践过结对编程吗?
分问题2:结对编程有什么价值?
分问题3:除了结对之外,还有什么方法获得这些价值?
李瑜宁
熊节:极限追问 033
【结对编程行不行?】
背景:结对编程可能是极限编程各种实践中最受争议的之一。很多人一听说“结对”,马上就担心开发速度要降低一半。
分问题1:你在工作中实践过结对编程吗? 实践过,不过次数很少
分问题2:结对编程有什么价值?
- 澄清需求,例如 通过沟通 和 询问 来澄清需求
- 提高代码可读性,例如通过询问多次 why 来得到更可读性的代码
- 提高可测性,例如 A 写测试,B 写功能代码
- 互相学习,享受一次愉快的结对的同时,可能还会学习一些新角度去考虑问题,学习到一些新的快捷键、学习到一些新的实现方式。
分问题3:除了结对之外,还有什么方法获得这些价值? 编写用户故事 并 实例化需求
Page
熊节:极限追问 033
【结对编程行不行?】
背景:结对编程可能是极限编程各种实践中最受争议的之一。很多人一听说“结对”,马上就担心开发速度要降低一半。
分问题1:你在工作中实践过结对编程吗?
我在工作中使用Pair Programming的时候主要是两种场景。
(1)当有人上下文信息和其他人对等的使用。 比如,有刚刚加入团队的同学,那么会和他Pair一段时间。新加入的同学也可以采用switch的方式,选择Pair对象。 在比如,Dev和BA、或者Dev和QA一起Pair,来编写一些自动化脚本。 (2)刻意练习的时候会选择Pair。 比如,在项目过程中有的同学对某个任务分析不熟悉,或者对某个技术点不熟悉,那么会和对方Pair一段时间一起来做。
当然当团队内我和另外一个人技能、上下文没什么差别是,也不会Pair 去做事情。当我刚刚加入一个新的团队也不会选择和我同样上下文信息量的同事去做Pair。
分问题2:结对编程有什么价值?
(1)更加专注。相比于一个开发人员平均的高效编程的时间,两个人会长时间持续聚焦在任务上。 (2)提供解决问题的效率。两个人思维开放,减少被问题卡住而浪费时间。 (3)减少错误。错误发现的越早,修复成本就越低。 (4)知识传递。消除技能、业务信息的瓶颈。 (5)质量内建。两人一起有注于提升开发过程中的质量。
分问题3:除了结对之外,还有什么方法获得这些价值?
(1)专注度上。kanban上限制一个人同时参与任务数。能够粗力度的帮助开发人员聚焦。 (2)提供解决问题的效率。IPM中的估点能够暴露出解决方案的思路问题;领卡之后的Kick-off缓解以及Tasking缓解;开放的办公环境等等都有助于提升问题解决的效率。 (3)减少错误。估点、Kick-off、Desk-check、Show Case、UT、站会、Kanban等实践都能够帮助我们尽早的发现问题。 (4)知识传递。团队内建立的各种Session、Workshop、信息查询的系统,都有助于帮助团队消除技术、业务的瓶颈。 (5)质量内建。团队约定的开发流程、各种粒度的测试、Code Review、Refactor等都能够帮助我们。
陈旭
【结对编程行不行?】
背景:结对编程可能是极限编程各种实践中最受争议的之一。很多人一听说“结对”,马上就担心开发速度要降低一半。
分问题1:你在工作中实践过结对编程吗? 目前工作要求经常结对编程。
分问题2:结对编程有什么价值? 团队知识分享,bug率降低,代码相对健壮。
分问题3:除了结对之外,还有什么方法获得这些价值? 良好的代码评审机制,有效的每日站会,及必要的知识分享会。