• IT餐馆—第二十五回 结对


        周五开会时,有人提出在团队中采用结对开发的Agile实践。 

        当然团队里有人说,如果让新手与水平高的人结对,基本上就是知识的单向传递了,对于新手来说的确是个不错的学习机会,但对于水平高的开发者,就未必不乐意了。不过雨辰心里想,这样还有一方受益,就是公司,因为公司巴不得每个新人都能在最短的时间内变成‘高手’,这样就可以用比高手低的多的工资来获取高质量的代码。 

        会后,雨辰在MSN上遇到了老杜,说了这样开会的事,并把自己的想法告之了老杜。

        老杜在MSN上发了个笑脸,回复:“结对无外乎如下几种情况” 

        雨辰说:“洗耳恭听:)” 

        老杜回复:“情况1就是你之前说的那种老手带新手的情况, 对于那些愿意将自己所学所知分享给别人的高手,是不太在乎自己的知识被学去的,必定干这一行,不管新人老人都要不断学习充电,老人虽然把知识传授了出去,但也在不断学习新的知识。所以就应该让知识像血液一样不断循环。同时老人还可以通过结对,梳理并巩固自己的知识基础,同时锻炼表达能力。” 

        雨辰回复:“这一点我倒是满赞同的,的确与水平低的结对,成为了一种灌输。虽然感觉没有了那种思想激荡的刺激,但可以借此来条理一下自己的思维,锻炼一下表达能力。稍待脚给公司培训一下人才。不过这个要建立在老手和新手沟通的情况,如果新手是个满不在乎或头脑犯晕的‘绝缘体’,那就郁闷了。有时对于高手来说,与水平低的人结对,与其说是合作,还不如就是一种干扰,因为开发是一个脑力高度集中的工作,当开发者全力解决问题时,即使是一个电话或一些旁边同事的笑声都会打断自己的思维,等接完电话或周围同事安静下来时,灵光一闪的IDEA可能早已不知去向了,当然这种情况一般发生的概率不是很高,但一旦与水平低又总爱唠叨的人结对之后,其发生的概率会大大增加,特别是你正在思考解决方案时,他连珠炮似的问题或突发奇想,会让你正高速运转着的大脑‘短路’,等你与他解释完之后,要找到刚被打断的思路很是费神。 有时真想直接对他说‘你先闭嘴,你的话对我的思路是一种干扰。一会我让你问时,你再问’。” 

        老杜又发了个笑脸,接着回复:“看来你也被这样的人搞过了,不过除了上面的高手与新手结对,还有水平相当的开发者结对,可能是一个不错的选择,而且两个人的沟通可能进一步加深对业务和设计的理解。不过也有一些意外情况,就是如果两个或其中一个人刚愎自用,听不进去对方的话,那就热闹了,吵来吵去,吵个大西瓜呀。最后还要上面发话来拍板!” 

        老杜接着回复:“另外还有就是太熟悉的人结对,这种情况有时是好事也是坏事。好事是沟通起来比较方便,必定大家都熟悉,有时几个字就可以把要表达的说明,必定大家知根知底,谁会什么都心知肚名。但问题可能也就出在了这里,结对开发可以避免让个体思想走私儿,或做与工作无关的事情时会有所顾及。但两个人过于熟悉时,这种结对的好处就要降低了。我之前就看过两个结对的开发者表面上结对,却在加班时结对上网去看好玩的新闻和大片,呵呵。到那时就成了‘av集体研讨会’了。不过这就带出了另一种情况,就是加班时适不适合搞‘结对’。我个人认为加班只有在需要的时候才加班,绝不能为了加班而加班,否则即便是通过结对,也只是让两个人一起看与工作无关的话题,除了浪费公司的电和机器就真没什么了。所以这时我一段是给他们的工作添加了工作进程中,限定他们加班时要解决的问题,基本上与正常上班时没什么区别!” 

        雨辰回复:“如果两个人不熟悉的话,结对是什么样子呢!” 

        老杜接着回复:“那就根不熟悉的大龄男女谈恋爱一样,相敬如宾。其实这时公司就成了一个婚姻介绍所一样,让不熟悉的员工通过结对变的熟悉。结对的双方通过开发互相了解,双方的工作效率就会从低到高,成为好友(就像夫妻那样),呵呵。” 

        雨辰回复:“你都想到婚姻这回事了,也够俗的了,呵呵。” 

        老杜接着回复:“也这也叫俗,呵呵。好吧,就算俗吧,不过郭德纲说的好‘人不三俗枉少年’!” 

        一向不怎么听郭德纲的段子的人忽然冒出了这一句,让雨辰哈哈一笑,心领神会的回复了个笑脸,开玩笑回复说:“你这还少年吧,都快年纪一大把了吧,呵呵”。 

        老杜话风一转,回复:“其时有时候水平低的两人结对开发,比水平高的讨论还热闹。因为他们涉世未深,更容易自以为是。稍有积累就对自己的想法和经验深信不疑,不过这时倒不用经理出面,只要找个老手应该就能摆平。所以有时还要找一个水平更高的开发者在关键时候加入流程。” 

        雨辰看之后,倒是部分赞同老杜的观点,只不过雨辰倒是看过两个水平高的开发者讨论时不欢而散的,不过雨辰又回复:“两个结对,至少要有人懂业务。否则当业务复杂时,很容易走火入魔。所以结对多数应该是‘新老配’,让熟悉技术和业务的老手指点新手一同工作。” 

        老杜在那头发了个笑脸表情,回复:“最好的情况就是当两个人水平高又理解行业业务的话,其效率会最高,也越不易出错。不过基本上我这边还真没出现过这种情况,有时水平高的开发者更容易被现有的知识框架体系所左右。所以无论什么样的人结对,都要有open的观念,善于消化吸收别人的观点。我关注结对是看重结对时两人的讨论过程,其讨论甚至争论无非就是对业务深入理解的过程。同时对显示器里一行一行的代码加深理解、调优,提升可读性可扩展性健壮性的过程。另外就是这也是确保了CodeReview的质量。必定这是两个人共同审核的结果!” 

        雨辰笑着回复:“其实咱们说来说去,结对应该是个对大家都有好处的,开发者之前互相熟悉学习,对于公司来言,也避免了重要的知识只放在一个人的头脑子,如同鸡蛋放入一个蓝子中一样。” 

        老杜会意的回复:“必定这年月除了钱之外,信得过的东西越来越少了。” 

        因为是肺腑之言,雨辰倒也不便多说了,无奈地回复:“你看你说的这叫什么话,哎” 

        由于工作比较忙,没多聊几句之后就此下线了......

  • 相关阅读:
    Uploadify & jQuery.imgAreaSelect 插件实现图片上传裁剪
    Web 开发者不可不知的15条编码原则
    ASP.net 判断上传文件类型的三种方法
    《JavaScript 实战》:实现图片幻滑动展示效果
    如何构建一个很棒网站页脚(Website Footer)
    机器为什么可以学习(1)---测试和训练过程
    机器什么时候可以学习(4) --- 学习的可能性(feasibility of learning)
    算法学习--二分查找的学习
    逻辑回归-监督学习
    线性回归—监督学习
  • 原文地址:https://www.cnblogs.com/daizhj/p/1602582.html
Copyright © 2020-2023  润新知