结对编程这个损招不知道是哪个天才想出来的。。。这效率也太尼玛高了。本来划划水做 3 天的事情,两人一起干居然半天就完事了,还没 bug !!!这就离谱。吓得我赶紧停了这个实验,不然狗老板非疯了不可。
说实在的,一般情况下一个人写代码,平均下来一天下来写不了多少。在设计做好的情况下,我曾经一天写了大概有 3 千行代码,直接就是一个项目干完。
缺点就是贵一些,不过考虑到人月的关系其实并不是 2 倍的成本,因为结对的时候一对 pair 当一个人用。
另外感觉楼上很多同学有一些误解:
一定要水平相当的
我们一般尽量水平不相当的搞,让 Junior 主导,包括和其他角色的各种交流等等,Senior 打辅助。这样 Junior 成长得快,然后有 Senior 不容易太跑偏。旗鼓相当且合拍的两个人可遇不可求。
发现这玩意真的和人的性格有关系
结对没有固定的 pair,的时候要来回轮换,一般要统一换两次,一个人留在原来的任务上,另外一个人换出去。这样才能达到互相了解设计的目的。不过感觉这种方式对参与人员的基础要求挺高的,比方说技术能力表达能力和情商都得合格才行
这个确实,至少得有一个人还不错,不过这样也是种锻炼,表达能力不好的 Junior 需要每天要主导交流,一般一段时间下来都不会太差。在团队里面开发软件,这些都是很重要的。这样下来团队里的 Senior 表达能力就都还行。对个人来说,不能摸鱼了
这个也确实,不过这个就看默契了,有时候能看到两个 Senior 在一起的时候节奏特别好,轮流摸鱼。
而且个人觉得摸鱼是正常工作的一部分,都绷紧了很快筋疲力竭还是影响效率,正常结对的时候也需要插入一些摸鱼进去。一般轮流写测试和实现的时候,别人写代码的时候大概知道写啥就行了,走会神摸会鱼都是可以的,对方发现有坑再一起探讨。还有的人跟番茄差不多,隔一段时间会直接说咱俩歇十分钟。困了趴会也是很有帮助的…
不过说回来,跟敏捷的各种东西一样,比如持续交付不是有个 CI Monitor 做做样子就行,结对最后还是取决于实施的质量,要获得好处,避免坑。不然最后就会变成全员吵架 + 结对摸鱼。
问 国内为何很少有做结对编程呢?