结对编程:一场与另一个自己共谋的慢性痉挛

🔑 关键词:结对编程,协作,自我觉察,团队效率

📖 摘要:作者以第一视角剖析结对编程过程中产生的认知摩擦、权力博弈与自我对抗,将其视为一种持续性的心态压力,而非简单的协作技巧。

从第一次被迫把键盘让给搭档开始,我就知道事情不对。我们公司的规矩是每两个小时换一次手,但我的搭档是个喜欢握着鼠标画圈的人,他画圈的时候我盯着屏幕边缘的图标,觉得自己像在等待一场没有终点的加载。我说“你光标移动的路径是正弦函数吗”,他愣了一下,然后我们俩都笑了,但那天的代码提交时间比平时晚了三个小时。

图片

后来我发现,结对编程的主要困难不是技术冲突,而是你得把那些一直飘在脑壳后头的直觉翻译成人话。独自写代码的时候,我可以让一个变量命名烂到连我都认不出来,反正第二天我还能用“当时的心情”猜出它是什么意思。但结对的时候,你必须当场解释你为什么要做这个该死的if-else,然后你突然意识到这个if-else本来就是多余的。那种感觉就像你一直以为自己的房间是整洁的,直到有人蹲下来看你的床底。

图片

我听过无数关于结对编程效率的烂梗,比如“一个人写代码一个人放枪”之类。但在我体验里,结对编程的效率根本不是1+1=2,最顺利的时刻也只是两个人用同一套思维模型在同一个沙盒里堆乐高,那感觉很漂亮;大部分时候是1+1=0.5,但荒谬的是,这0.5里包含的错误比单独写的1少得多。我们曾经花了一整个下午讨论一个正则表达式,最后发现我们俩都误解了需求,那种挫败感很真实,但至少没有把错误提交上去。

图片

更深层的博弈在于谁在“看着”谁。我的搭档是一位喜欢沉默的人,他其实并不真正看着代码,而是看着我如何面对代码。这让我变得异常神经质。每当我准备用备忘录里那套鬼话应付注释时,我都能感觉到他的目光像一层湿漉漉的塑料膜压在我手背。我被迫变得诚实,不是因为我想诚实,而是因为我害怕那种“刚才为什么不解释清楚”的质问。最后我猜结对编程训练的不是协作能力,而是一种被观察的羞耻感。你会在这种羞耻感里重新认识自己的自欺欺人。

图片

说真的,我现在已经习惯了这种慢性痉挛。我开始在读别人的代码时下意识地想:如果此刻有个人坐在我旁边,我会怎么跟他解释这段被注释掉的逻辑?我会不会承认我根本不知道它为什么被注释?我的体重从75公斤掉到了68公斤,不能说全是结对编程的锅,但至少它让我的每一顿午餐都变成了关于“要不要重构那个服务”的辩论赛。如果问我最终得到了什么,大概是一种对“孤独天才”叙事的永久祛魅。你不会再幻想自己是一个独自把整个系统扛在肩上的英雄,因为你的搭档已经在你耳边唠叨了太久,久到你以为你听见了自己的回声。

图片

🏷️ 标签: