配对状态:已配对并受到保护
根据我的经验,就像我之前提到的那样,它作为教练工具肯定是有用的,我认为这对于增加团队成员之间的协作量非常有用,并且是确保在团队中传播代码基础知识的一种极好的方法。
另一方面,我不再把它看作是我以前做过的银弹,而且我认为如果人们一直被强迫配对,我们确实会失去一些有用的东西。
是时候探索代码了
马克·威尔登(Mark Wilden)大约18个月前写了一篇博客文章 ,指出以下几点:
结对编程不会鼓励安静的思考和探索。 您不能只是坐下来阅读一些代码。 你不能只是坐下来思考。 我的意思是,可以,但是那对就坐在那儿。
目前,在我正在研究的项目上,我们将所有事情都配对在一起,因此,如果您想花一些时间浏览代码并查看是否有改进的方法,那么您往往会自己做。
如果我在配对时开始探索代码或进行一些暂存重构,以查看如果我们对结构稍有不同,代码的外观,那么除非我的一对对我正在做的事情感兴趣,否则他们通常会开始玩手机。
另一种方法是尝试确切地解释您要尝试做的事情,但往往不是您完全不确定,或者要花更多的时间进行解释而不是尝试一下。
我认为我们可以轻松地为一天中的人们创造时间,只需同意每天配对7 1/2小时(而不是8小时)即可。
以(短期)生产力的名义
当您成对工作时,应该提高的两个方面就是两个人的工作效率-单身时比别的时候容易分心或掉进兔子洞要容易得多配对。
另一方面,我开始怀疑我们实际上要实现的是短期生产力。
以我的经验,如果团队中的每个人都100%地配对,则不太可能查看清理工作(例如调查为什么测试在CI机器上“随机”失败)的原因,因为这会干扰故事的生产率。
这样做有一定的逻辑,因为调查这样的事情可能会导致您陷入困境,但无法解决问题也不是特别有帮助,因为它们将来必定会“随机地”再次失败并引起痛苦。
我认为配对也可能不利于学习如何使用新工具,尽管我当然可以理解这样的论点,即无论如何您都应该在自己的时间学习类似的东西。
例如,我对Sed和Awk有点了解,而且有时候我们需要对一系列文件进行文本替换,而当我尝试确切地确定如何做时,这对夫妇看着我很无聊。
通常,我们最终往往会手动完成该任务,这虽然速度较慢,但对其他人的挫败感却较小。
收益递减
我认为,当有一个新的问题要解决时,配对非常有效,并且围绕如何设计代码需要做一些思考,但是一旦我们构建了Cookie切割器,配对就会减少。
一旦确定了如何执行标准Web应用程序,那么相当数量的工作就是平凡的,一旦完成该工作,该领域中的任何后续工作都将遵循已建立的模式。
这可能不是最好的模式,但根据我的经验,如果要配对,就不太可能违背这种模式,因为您会戴上“生产力”帽子。
有一个论点是,如果您配对并且很无聊,那么您应该找到一种自动解决该问题或减少编写代码的方法。
有时候,我已经看到配对可以做到这一点,但我会说,在很多情况下,没有解决该问题的更好方法。
Jay Fields最近写了一篇关于他的结对编程经验的文章,尽管我认为我从事的项目类型不适合他的方法,但我也不认为100%结对也是答案。
参考: 配对编程:我们的JCG合作伙伴 Markh Needham在Mark Needham Blog上 进行100%配对的缺点 。
相关文章 :
翻译自: https://www.javacodegeeks.com/2012/01/pair-programming-disadvantages-of-100.html
配对状态:已配对并受到保护