`
realreal2000
  • 浏览: 78133 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多
结对编程。

极限编程中4个个人实践中的一个,也是我们团队中坚持推广的实践之一。

我们以前采用代码检查的流程,来保证代码的质量。

推广结对编程之后,我们取消的代码检查。

半年的时间以来一直都坚持结对编程,每一次我们都再回顾回忆中,提出结对的优点,以及缺点,尽量的让大家认识到结对带来的好处,来提高大家对于结对的热情。

为什么要结对?

第一点,就是思考,一个人思考问题肯定没有两个人思考问题来的明白,看的清楚。当一个东西你理解了,并且还能清楚的表达的时候,那么思路会更清晰。
第二点,就是一个Bug再什么时候发现,花费最少,自然是设计的编码的时候。
第三点,加强交流,使得知识能够更快的再整个团队传播,使得代码全员共享。
第四点,所有的知识都有备份。


半年来,结对的推广很意外的,没有太多的抱怨,很奇怪的现象,因为在公司内部,其他很多实施敏捷团队的反馈来看,结对大多都是失败结束的。

一个人无知不可怕,最可怕的就是无知还被别人知道,结对无疑很多时候暴露了自己的无知。

问题:
结对的效率,结对之后我们发现,2个人一起工作能够完成的工作等于分开做的80%左右,

结对过程中,大家都很不愿意更换结对对象,结对之后,结对之后忘记休息,我们规定每次结对的时间应该在一个到一个半小时之间,可是有时候,一下午结对都没有休息是时有发生,我们决定强行休息、

至于结对对象的更换,我们规定每个任务结束之后更换结对的对象.

我们将坚持的推广这个实践,毕竟作为极限编程的四个实践都是互相影响的,互相促进的,少了其中一个就不完整。

最后的结果,要等到我们再完成2-3个Sprint之后,我们会出一份QA的数据,看一看,我们的敏捷带来了什么。

分享到:
评论
39 楼 dyllove98 2011-11-28  
yzzlijun 写道
结队有利也有弊。老人和新人,新人和新人,老人和老人,都有优势和劣势。世界没有绝对的,现在我的项目组就是在走结队方式。目前还可以,只是有一点就是能力强的一直在写代码,能力差的一直在看,我也在想这个问题怎么解决?LZ是不是也有同样感受

现在很头痛这个问题,我一遍是要求队伍有只有一个主导,主导强制被要求写代码,主导和辅助一天换一次
38 楼 cjshbao 2010-07-16  
无心徘徊 写道
抛出异常的爱 写道
realreal2000 写道
aws 写道
结对的意义真得很大么?

一个开发组人数一般不会超过10人,1个leader 负责设计和任务分解分配,2-3个资深人员作为主力开发人员,其他的是刚毕业或者1年经验的初哥

初哥和初哥结对没有任何意义
初哥和资深结对是拖累
资深和资深结对是浪费



结对编程主要的目的是思考,一起思考,资深的人难道写的代码就不会有错误,难道就不会犯初心大意的错误?

一起思考就是保证我们的想法理解是正确的,结队编程不是一起写代码,是一起思考如何解决问题的。

结对还有一个很大的优势,就是知识能够很快的传播,也能很大的提高效率。

初哥就应该去死
打倒一万遍
再踩上一脚
让丫永生永世作初哥.

你怎么就没去死呢,。。你曾经也是初哥

他死过,现在又活过来了
37 楼 luckyami 2010-07-15  
期待楼主的QA数据
36 楼 csc365kl 2010-07-05  
男女结对 效率翻翻
35 楼 yzzlijun 2010-06-17  
补充一句,个人感觉结队时效率并不高。但是可以避免很多问题!
34 楼 yzzlijun 2010-06-17  
结队有利也有弊。老人和新人,新人和新人,老人和老人,都有优势和劣势。世界没有绝对的,现在我的项目组就是在走结队方式。目前还可以,只是有一点就是能力强的一直在写代码,能力差的一直在看,我也在想这个问题怎么解决?LZ是不是也有同样感受
33 楼 qianhd 2010-06-08  
无心徘徊 写道
抛出异常的爱 写道
realreal2000 写道
aws 写道
结对的意义真得很大么?

一个开发组人数一般不会超过10人,1个leader 负责设计和任务分解分配,2-3个资深人员作为主力开发人员,其他的是刚毕业或者1年经验的初哥

初哥和初哥结对没有任何意义
初哥和资深结对是拖累
资深和资深结对是浪费



结对编程主要的目的是思考,一起思考,资深的人难道写的代码就不会有错误,难道就不会犯初心大意的错误?

一起思考就是保证我们的想法理解是正确的,结队编程不是一起写代码,是一起思考如何解决问题的。

结对还有一个很大的优势,就是知识能够很快的传播,也能很大的提高效率。

初哥就应该去死
打倒一万遍
再踩上一脚
让丫永生永世作初哥.

你怎么就没去死呢,。。你曾经也是初哥


我就纳闷这帖怎么还没出艾斯比 果然让我找到了
并不是所有人都是从初哥过来的
初哥就应该回去看书 而不是出来害人
没灵气的人永生永世都是初哥
32 楼 adriny 2010-06-07  
国内实施敏捷开发的公司还不是很多,之前我效力的那家公司也准备实施敏捷,给了我们N多资料,买了N多书,结果我们技术部的老大去医院躺了一两个月,这事就这样没了
31 楼 danfeihao 2010-06-05  
这种工作方式在国内的现状如何?最好有人能去调查一下
30 楼 java-tm0803 2010-06-04  
我们以前也有结对开发过,感觉很不错,可以学到对方的一些思考方式等一些知识得到互补,效率也不错,特别是测试出的bug比较少了
29 楼 cszhz 2010-06-03  
看看agile的理论吧 pair programing是一项很好的实践方法
28 楼 gleefu 2010-06-03  
mock1234 写道
realreal2000 写道

结对的效率,结对之后我们发现,2个人一起工作能够完成的工作等于分开做的80%左右,

没有300%以上好处我是不会结对的。我自信比较了解xp技术。

呵呵。估计楼主的意思是。代码量上是分开后两个人代码量的80%,但代码品质应该比分开做时有很好的提高。
27 楼 gleefu 2010-06-03  
没实际操作过结对编程。根据以前的带队经验,说一下自己的理解,请大家指教:
1.结对编程并不适合所有团队:
    a.大量存在初级人员的团队不适合。
    b.单纯技术研发性团队不适合。
    c.更适合软件工程模式的开发设计团队。
2.结对编程的成功,更多的依赖于leader如何正确引导,包括结对形式的灵活变动,结对成员对结对的认知。这样就要求leader要有经验和好的方法。可以根据实际情况调整实行结对的方式。
3.结对不能固定。
26 楼 xiejin2008 2010-06-02  
我以前在公司研发一项技术的时候,也和一个同事结对编程了一段时间,那时候都不知道这算是结对编程。因为是研发,他也算是个新人,我负责写代码,他在旁边和我一起思考,有时候,确实考虑的问题比较完善,一起探讨着,代码当然会比个人的编写更叫的健壮和完善。效率挺高的。
25 楼 强强爱妍妍 2010-06-02  
rachelmarf 写道
TW是什么意思?  o(∩_∩)o 哈哈,想了解


Thoughtworks  某公司名
24 楼 rachelmarf 2010-06-02  
TW是什么意思?  o(∩_∩)o 哈哈,想了解
23 楼 clarkecc 2010-06-01  
我们公司也结对过,最终以失败告终,我作为SCRUM MASTER 让一老同事带一新同事,虽然领导反对,但还是凭我三寸不烂之舌说服之~~··老同事就开始抱怨了,以前做事很轻松,闲暇之余,还可以看看邮箱博客之类,现在不仅进度上跟不进,最重要的是忙滴是侧头侧尾~~~我的回答是:作为老同事,公司吸引之,唯薪资;作为新同事,公司吸引之,唯技术(公司不可能在不同开发工龄的薪资上平等),那如果学不到技术,薪资又低,我们拿什么吸引人才呢?长远点看待问题,公司若想可持续发展下去的话,从小事做起,结对编程很有必要!(个人观点)
22 楼 colorfire 2010-06-01  
aws 写道
结对的意义真得很大么?

一个开发组人数一般不会超过10人,1个leader 负责设计和任务分解分配,2-3个资深人员作为主力开发人员,其他的是刚毕业或者1年经验的初哥

初哥和初哥结对没有任何意义
初哥和资深结对是拖累
资深和资深结对是浪费




其实有一部分处于初与深之间的,我想他们是最适合的吧,也是做事效率最好的。
21 楼 无心徘徊 2010-06-01  
抛出异常的爱 写道
realreal2000 写道
aws 写道
结对的意义真得很大么?

一个开发组人数一般不会超过10人,1个leader 负责设计和任务分解分配,2-3个资深人员作为主力开发人员,其他的是刚毕业或者1年经验的初哥

初哥和初哥结对没有任何意义
初哥和资深结对是拖累
资深和资深结对是浪费



结对编程主要的目的是思考,一起思考,资深的人难道写的代码就不会有错误,难道就不会犯初心大意的错误?

一起思考就是保证我们的想法理解是正确的,结队编程不是一起写代码,是一起思考如何解决问题的。

结对还有一个很大的优势,就是知识能够很快的传播,也能很大的提高效率。

初哥就应该去死
打倒一万遍
再踩上一脚
让丫永生永世作初哥.

你怎么就没去死呢,。。你曾经也是初哥
20 楼 aws 2010-06-01  
lgstarzkhl 写道
受教了,这种编程思想倒是很不错,就是不知道在实际应用的过程中问题多不多,还有时间怎么样,因为每个人思考一个问题如果遇到多个解决方案的时候而最佳解决方案又要花费花费很长时间的时候,不知道是不是需要取舍或者是有没有别的更好的方案????


很多时候需要的是迅速的解决,而不是纠缠于谁的方案更好

相关推荐

    论文研究-结对编程开发人员之间若干关系问题的探讨 .pdf

    结对编程作为敏捷软件开发方法之一,自被提出以来就一直受到业界的广泛关注。在这一背景下,王鹏生先生的研究《结对编程开发人员之间若干关系问题的探讨》为我们深入分析了结对编程在实践中的应用及其带来的人员关系...

    结对编程——敏捷开发.pdf

    "结对编程——敏捷开发" 结对编程(Pair Programming)是敏捷开发(Agile Development)中的一种实践方法,它是指两名开发者坐在一起,共享一台电脑,共同编写代码的过程。 结对编程的优点: 1. 提高代码质量:...

    XP实践结对编程demo

    **结对编程(Pair Programming)**是极限编程(XP,Extreme Programming)中的一项核心实践,旨在提高软件开发的效率和质量。在这个过程中,两位程序员坐在同一台电脑前,共同编写代码,一人为主程序员(Driver),...

    交换编程-结对编程的延伸实践

    ### 交换编程—结对编程的延伸实践 #### 一、引言 交换编程作为一种新型的软件开发模式,是对结对编程的一种延伸和发展。本文旨在深入探讨交换编程的基本概念、实施背景及其在软件开发中的应用价值,并通过实例来...

    自组织团队与松结对编程 陈勇 2011-09-18

    ### 自组织团队与松结对编程 #### 一、自组织团队的概念与特点 自组织团队是指团队成员能够自我管理并自主决定工作流程的一种团队形式。这种团队模式强调团队内部的高度自治性和协作性,旨在通过减少层级管理和...

    结对编程与应用

    是软件工程中结对编程与应用的描述与实现方法

    2020级计算机系软件工程第二次结对编程作业.zip

    2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件...

    结对编程技术与策略pdf

    ### 结对编程技术与策略 #### 一、引言与背景 在当今快速发展的软件行业中,结对编程作为一种新兴的协作开发模式,正逐渐受到广泛关注。这种开发方式不仅改变了传统意义上的个体开发流程,而且也在软件工程领域内...

    在复杂的项目开发中使用结对编程

    ### 结对编程在复杂项目开发中的应用 #### 一、结对编程概述 结对编程是一种极限编程(Extreme Programming, XP)技术,它要求两位开发者共同在一个工作站上合作完成编程任务。一位开发者负责编写代码(驱动者),...

    此项目是结对编程项目,现把源代码给出,给以后的学弟学妹供给参考_HNU_Couple_Project.zip

    此项目是结对编程项目,现把源代码给出,给以后的学弟学妹供给参考_HNU_Couple_Project

    结对编程启示录

    结对编程,作为一种创新的软件开发实践,源自敏捷开发的理念,旨在提高代码质量和团队协作效率。"结对编程启示录"这本书深入浅出地探讨了这一主题,为小团队提供了宝贵的资源,帮助他们在有限的人力条件下产出高质量...

    结对编程在Java Web开发课程实践教学中的应用.pdf

    "结对编程在Java Web开发课程实践教学中的应用" 结对编程是一种敏捷软件开发方法,它在Java Web开发课程实践教学中有着重要的应用价值。本文将对结对编程在Java Web开发课程实践教学中的应用进行探讨,并对其效果...

    结对编程软件方法的研究与应用(1).pdf

    结对编程作为一种源自敏捷开发的软件开发实践,已经逐渐成为业界关注的焦点。它涉及到两名程序员共同在一台电脑上工作,一人专注编写代码,另一人则负责审查和提供即时反馈。这种实时的同行评审和合作机制被认为是...

    结对编程方法在C语言教学中的应用.pdf

    为了提升学生的学习兴趣和编程能力,结对编程这一教学方法在C语言教学中的应用得到了广泛的探讨与实践。结对编程,亦称为同伴编程,是一种强调协作的编程实践,在提高学生编程质量、团队合作能力以及交流技巧方面...

    结对编程在数据结构教学中的应用.pdf

    在数据结构的教学实践中,结对编程(Pair Programming)是一种极为有效的教学方法。结对编程是极限编程(Extreme Programming)实践中的一个环节,不仅能够帮助学生更快地掌握编程技能,还能够显著提升他们的团队...

    结对编程-魔方1

    结对编程是一种有效的软件开发方法,它鼓励两人一组共同编写代码,通过互相协作、讨论和监督来提高代码质量和团队效率。在这个场景中,学生们通过结对编程的方式解决了一项关于魔方状态表示和处理的编程任务。 首先...

    Addison Wesley - 结对编程启示录(手册)

    《结对编程启示录》是Addison Wesley出版的一本关于结对编程的实用手册,旨在帮助读者快速理解和掌握这种编程方法,以提升代码质量和开发效率。结对编程(Pair Programming)是极限编程(XP,Extreme Programming)...

    结对编程.zip

    结对编程

Global site tag (gtag.js) - Google Analytics