首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

XP的自省-Pair Programming

2012-08-21 
XP的反省-Pair Programming常常看到论坛上有人讨论PP(Pair Programming),但是大多是纸上谈兵,书上云的过多

XP的反省-Pair Programming

常常看到论坛上有人讨论PP(Pair Programming),但是大多是纸上谈兵,书上云的过多。真正谈感受的少。 我在一家做XP的公司做了4年了,从做service到做product, 总的来说pair programming给我带来的的忧大于喜,缺点大于有点。

?

总的来说PP有它的优点,很多researcher也发表了论文,记得比较清楚的一片就是一个大学里面对一个班的学生分组实验,结果用PP的那组效率比较高。 但这毕竟是research, 给我们的启示是PP在某种特定的情况下的结果:

?

1. Pair的人必须对等 (同班同学)

2. Pair的人必须全力以赴 (同学们,老师在做实验哦,不要走神!)

3. Pair的人必须对要解决的问题有相同(或相近)的认知

?

而上面的3点在现实公司里却大部分情况下不能成立。1就不用说了,2,举个例子,如果有一个人生病,或是惦记的其他的事则会screw up整天的进度。3,和1相关,人的水平不同,不可能像大学那样对一个东西的认知近似。

?

我个人的经验是10%的pair时间是高效的pair,其余的则是浪费时间

?

另外从人性的角度来讲,pair on everything则是对人性的xx,强调沟通没有错误,但是工作毕竟是工作,如果天到晚说比写花的时间更多,则有点本末倒置了。我们公司是100% pair, 任何的task,不管有没有必要,都要pair (条件允许的话), 老板的原则是绝不让任何一个知识点停留在一个人的脑瓜里:),一个人躺下了,另一个就能补上。 但是从现实的角度来讲,我们的产品的确出现过超过一个developer走了,结果他们经常working的那个module就会没有人能够维护了,结果需要重写。 所以从knowlege spread的角度来说,公司的benifit和情感留人+document, 比pair来的更实惠。

?

另外pair的确剥夺了developer的个人空间。 以前的公司, 上网灌水,给朋友 MSN, 的小动作全都不行了:(, 也许有人会说这些的东西在公司应该禁止! 但是现实一点,我来java eye灌水 , 跟几个圈内的朋友msn讨论心得,是对工作有正面影响的。 而且msn的圈内朋友对于疑难问题的帮助会很大的。

?

而且还有一点最大的就是pair剥夺了自学的时间, 没有pair的时候当有东西不会的时候, 对一个问题的研究会刨根结底,但是pair的时候,如果你的partner会,他大概只会给你概括一下,如果你的partner不会,那就会是一个非常有趣的pairing session, 什么google, yahoo, 大部分情况,结果是 this is a fking task that we should never touch as we dont have corrosponding knowlege... 但是如果一个人能够静下心来把问题的来龙去脉搞清楚,把相应的prerequiste的knowlege搞清楚, 问题在得到解决的同时,自己也会得到提高。说白了当两个新手在pair的时候的确很低效,而且不利于“成长”

?

说了这么多, 一句话

少Pair可以怡神,多pair的确伤身, 不pair也能过日子











4. 所以我说pair不够人性化,我从4年前开始做XP, 发现知识的增长速度明显慢于以前的公司,虽然那时整天msn 不过我个人也都是比较自觉地,除了每天早上看sohu新闻20分钟,其他时间在公司所谈所看的都是和技术相关的,而现在只要一不pair,就上mitbbs, wenxuecity 堕落呀:) 究其原因,1.以前会好学些,2,时间可以自己支配,3,如果自己愿意,完全可以看一天和工作无关的技术,只要deadline前交工就可以了 (当然免不了有时候要加班赶工)。 一个宽松的工作环境是双赢的。
如果非要拿solo的话msn qq会聊八卦, 其实pair的时候更方便,俩人跟进了,直接聊天唠嗑得我也不是没见过。 如果在遇到一个ppmm (不过我生平还没遇到过) , WSN可能连口水都留下来了。每天standard up可能都要争了... 说远了,不过我们是不是可以讨论一下ppmm对pp的影响以后——:)


4. 所以我说pair不够人性化,我从4年前开始做XP, 发现知识的增长速度明显慢于以前的公司,虽然那时整天msn 不过我个人也都是比较自觉地,除了每天早上看sohu新闻20分钟,其他时间在公司所谈所看的都是和技术相关的,而现在只要一不pair,就上mitbbs, wenxuecity 堕落呀:) 究其原因,1.以前会好学些,2,时间可以自己支配,3,如果自己愿意,完全可以看一天和工作无关的技术,只要deadline前交工就可以了 (当然免不了有时候要加班赶工)。 一个宽松的工作环境是双赢的。
如果非要拿solo的话msn qq会聊八卦, 其实pair的时候更方便,俩人跟进了,直接聊天唠嗑得我也不是没见过。 如果在遇到一个ppmm (不过我生平还没遇到过) , WSN可能连口水都留下来了。每天standard up可能都要争了... 说远了,不过我们是不是可以讨论一下ppmm对pp的影响以后——:)


pair时候难免会有浑水摸鱼的,这和公司文化有关,xp本身解决不了吧。
比如高低搭配,如果是那个高的其实是水货,但是在公司年头长了,低的不太可能去揭露那个高的是水货,他不敢说。如果低的是水货,那高的可以跟别人说低的水平差,别人会相信。
如果是同水平的搭配,其中一个很水,另外一个也不一定能够揭露他。因为东西是两个人做,你说他差,别人觉得你的team精神不够。
4. 所以我说pair不够人性化,我从4年前开始做XP, 发现知识的增长速度明显慢于以前的公司,虽然那时整天msn 不过我个人也都是比较自觉地,除了每天早上看sohu新闻20分钟,其他时间在公司所谈所看的都是和技术相关的,而现在只要一不pair,就上mitbbs, wenxuecity 堕落呀:) 究其原因,1.以前会好学些,2,时间可以自己支配,3,如果自己愿意,完全可以看一天和工作无关的技术,只要deadline前交工就可以了 (当然免不了有时候要加班赶工)。 一个宽松的工作环境是双赢的。
如果非要拿solo的话msn qq会聊八卦, 其实pair的时候更方便,俩人跟进了,直接聊天唠嗑得我也不是没见过。 如果在遇到一个ppmm (不过我生平还没遇到过) , WSN可能连口水都留下来了。每天standard up可能都要争了... 说远了,不过我们是不是可以讨论一下ppmm对pp的影响以后——:)



1.先前说了,当然不用整天pair,大部分时间是在工作而不是培训,只是利用完成任务的过程达到另一种高效培训的效果,主次不能颠倒。

3.呵呵,我说的救火不是那个意思,在很多小公司,救火专指其他项目因为缺人或者赶时间,紧急抽调人头离开项目前去“救火”,不是你理解的那个意思,主要是指人员被抽调的风险。

你说的评价体系问题和pair本身没有关系,是公司评价体系或者说考核评估体系决定的,合理的考核体系能够适当避开你说的那些问题。

4.一方面,不是所有人都和你一样自觉,很多人上了MSN和QQ,自己在不知不觉中就大大降低了自己的有效工作时间效率。一个电话或者MSN、QQ对话直接或间接浪费被“骚扰”人15分钟。

另一方面,我觉得,我每次对新人说一遍对我来说很陈旧的“知识”的时候,对我自己而言,也是有提高的,既提高了自身知识体系结构的清晰程度,有提高了自身的表达能力。

批发一下别人的话:“知识三境界,你掌握知识->你能很清晰地说出你掌握的部分->你能很快的让别人理解你掌握的知识”,表达和沟通能力、和形形色色的人的沟通能力都是很重要的。

所以要有share的精神,不要认为和一废才pair就是浪费时间,带废才也是对自己能力的一种提高,另一方面来讲,你要往领导岗位走(技术总监类的位子一样是领导岗位),必须要学会如何处理各种能力的关系,充分调动手下各种水平的人的能力,这些能力也能在和废才pair的时候得到一定的锻炼。

开个玩笑,如果新人个个悟性极高,将来还不爬到你头上?

大部分人不是在google工作,公司里的总会有很多普通程序员,那些新人不管能力高低都有可能将来是你的下属,从大局上来讲,用人是要讲性价比的,如果一个新人悟性不高,要求工资比较偏低,RP还不错,是应该适当的用一些高效的办法培养和培训,而且这样的人也相对的留得住。
64 楼 Rossalee 2008-08-17   我没有PP过,但我却一直认为,如果真让我在一个两人共一台计算机的公司工作,而且在工作时间一直有人要盯着我的公司工作。
那我的反应就是“给多少钱请我,我也不去” 65 楼 daquan198163 2008-08-17   敏捷质疑: 结对编程, 代码集体所有权 66 楼 gurudk 2008-12-03   问题转化为,你能够识别90%不合适的pair,或者避免其中的一部分。

热点排行