众所周知,在敏捷开发世界里,结对编程给我们带来许多在一般的软件工程中所无法解决的问题的好处,如花费大约一半的时间就能编写
出质量更高的代码等等。但结对编程并不是万灵的,它在一定的情况下才能给我们带来这些好处,而在另一些情况下,它就会失效、行不能。
下面就举一个例子来看看结对编程失效的情况。
因为结对编程需要两个人不断进行的沟通与做决定,所以如果不能沟通或者做不了决定的话,结对编程就行不通了。
打个比方说,小许为了赶工期,弄得非常紧张,但他的项目经理坚持让他去配合小王。这样小许就很不情愿的去跟小王搭档。他让小王把
代码给他看看。尽管他觉得DataAccesser这个类很不合适,但他一心在想着他的项目的截止日期。他说道:“哦!去掉这个类,太花时间了。你简
单把它改名成DBTable吧。”小王说:“不行!现在整个系统的结构全部集中在数据库上,再这样下去系统会崩掉的。我们一定要解决这个结构
!所以项目经理让你过来帮我的……”之后,小王在写代码的时候,小许根本没认真看。他一点建议都没给。
上面这种情况,就是属于不能沟通的情况。小许不愿意跟小王结对编程(小许自己本身就有很急的任务),他们表面上是搭档的,事实上
根就本没有。
因为两人之间没有共同的目标(比如,改进系统的结构)。如果人没有共同的目标,那他们就没有沟通的欲望。
但这并不是无法沟通的唯一原因。比如,如果一个搭档比较情绪化,不喜欢跟人交流,那就无法沟通了。当小王
和小许在写testDeleteAll这个方法的时候,小王建议用“t”来代替“abc”作表名。如果小许这样回答:“abc就行了,我写了好几年的测试
,都是用这种数据的。你懂什么?你才刚毕业好不好?我在编程的时候,你还在幼儿园呢。” 在交流的方式上,沟通可能也会有问题。如果一
个搭档缺乏信心,他什么意见都不敢提。小王跟小许在一起
写DBTable的时候,正确的情况下,小王问小许为什么要在写DBTable类之前写一个失败的测试。可是如果小王被小许的经验和能力震住了,一
个问题也不敢提?那系统开发过程中,就得不到小王任何有意义的建议了。
缺乏自信只是不提意见的一个原因。另一个原因看起来就很傻了。当小王还给小许解释DataAccesser类里
面的deleteAll方法中有关级联删除的代码时,如果小许觉得不懂这些代码是一件很蠢的事情,然后就不细看,也不提问题直接跳过去,那会怎
么样?小许对系统了解就不够多,也就给不了重构的什么好建议了。
总结了一下,以下是造成结对编程无法正常工作的一些情况:
1、不情愿的配合
2、拒绝别人的意见,甚至攻击对方。
3、小心翼翼有意见不敢提。
4、怕别人觉得自己笨不敢问问题。
5、如果这些问题真的发生了呢?不过这个跟管理以及个人性格更有关系,最好的方式就是不让他们结对,或者
让他们跟别的人结对。
分享到:
相关推荐
"结对编程——敏捷开发" 结对编程(Pair Programming)是敏捷开发(Agile Development)中的一种实践方法,它是指两名开发者坐在一起,共享一台电脑,共同编写代码的过程。 结对编程的优点: 1. 提高代码质量:...
敏捷软件开发方法中,结对编程是一种实践,它要求两名开发人员在同一台计算机上协同工作。这一方法源自于国际大学生程序设计竞赛(ACM/ICPC)中的团队合作模式。结对编程强调的是两个人的协作,与传统方式相比,它...
**结对编程(Pair Programming)**是极限编程(XP,Extreme Programming)中的一项核心实践,旨在提高软件开发的效率和质量。在这个过程中,两位程序员坐在同一台电脑前,共同编写代码,一人为主程序员(Driver),...
在人手紧张的情况下,管理者可能会认为结对编程浪费了人力,因为表面上看两位程序员只能共享一台机器进行工作。 #### 三、交换编程的概念及特点 ##### 1. 概念 交换编程是在结对编程基础上发展起来的一种新模式,...
2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件...
是软件工程中结对编程与应用的描述与实现方法
### 结对编程技术与策略 #### 一、引言与背景 在当今快速发展的软件行业中,结对编程作为一种新兴的协作开发模式,正逐渐受到广泛关注。这种开发方式不仅改变了传统意义上的个体开发流程,而且也在软件工程领域内...
### 自组织团队与松结对编程 #### 一、自组织团队的概念与特点 自组织团队是指团队成员能够自我管理并自主决定工作流程的一种团队形式。这种团队模式强调团队内部的高度自治性和协作性,旨在通过减少层级管理和...
结对编程,作为一种创新的软件开发实践,源自敏捷开发的理念,旨在提高代码质量和团队协作效率。"结对编程启示录"这本书深入浅出地探讨了这一主题,为小团队提供了宝贵的资源,帮助他们在有限的人力条件下产出高质量...
结对编程还可以减少项目组的主要任务都由能力强的同学完成的情况,使得每个学生都能更好地参与到项目中,提高自己的学习兴趣和动手能力。 结对编程在Java Web开发课程实践教学中的应用还可以提高教师的教学效率。...
在数据结构的教学实践中,结对编程(Pair Programming)是一种极为有效的教学方法。...在教学实践中,教师需要根据学生的实际情况灵活运用结对编程的技巧,并引导学生如何更好地进行合作,以达到教学效果的最大化。
结对编程方法在C语言教学中的应用 结对编程方法在C语言教学中的应用是计算机专业基础必修课《C语言程序设计》的教学中引入的一种新颖的教学方法。该方法的提出是为了提高学生的编程能力和兴趣,提高教学效果。结对...
结对编程
### 结对编程在复杂项目开发中的应用 #### 一、结对编程概述 结对编程是一种极限编程(Extreme Programming, XP)技术,它要求两位开发者共同在一个工作站上合作完成编程任务。一位开发者负责编写代码(驱动者),...
《结对编程启示录》是Addison Wesley出版的一本关于结对编程的实用手册,旨在帮助读者快速理解和掌握这种编程方法,以提升代码质量和开发效率。结对编程(Pair Programming)是极限编程(XP,Extreme Programming)...
结对编程是一种有效的软件开发方法,它鼓励两人一组共同编写代码,通过互相协作、讨论和监督来提高代码质量和团队效率。在这个场景中,学生们通过结对编程的方式解决了一项关于魔方状态表示和处理的编程任务。 首先...
结对编程是一种软件开发实践,源自敏捷开发方法论,它提倡两个程序员在同一台电脑上共同工作,一人编写代码,另一人则审查、建议并提供反馈。这种方法的核心理念是通过即时的同行评审和协作来提高代码质量,减少错误...