极限编程(XP):将所有优势推至极致
2020-01-03
来源:技术大V公众号
今天我们来介绍敏捷开发方法中另一个很有影响力的流派:极限编程(Extreme Programming,简称XP)。不同于Scrum和看板方法都最早起源于传统行业,极限编程是一个本身就诞生于软件开发中的敏捷开发方法。极限编程由肯特贝克(Kent Beck,现Facebook脸书员工)于1996年发明,当时最早是用于克莱斯勒集团的薪酬支付系统C3项目中。随后克莱斯勒集团一度被德国的戴姆勒-奔驰集团收购并重组为戴姆勒-克莱斯勒集团,C3项目也于2000年被停止,然而在这个项目中使用的极限编程却流传开来。
极限编程将当时人们认为对编程有益的地方都总结了下来,并把它们进一步强调,推到了一个极致的地步,这就是极限编程得名的由来。比如,大家都认为测试对于软件的质量保证非常重要,于是极限编程就将测试的程度推到极致,要求先写测试代码,再写产品代码,并且每天结束时都要进行整合测试。大家都认为代码审查(Code Review)很重要,于是极限编程又把它推到一个极致,要求两个人结对编程,结对的两个人可以边写边讨论,但同时只有一个人在写代码。这样代码在产生的过程中同时便受到了讨论和审查。
和其他敏捷方法一样,极限编程也很强调用户反馈的重要性,同样它也把用户反馈的实践推到了极致。极限编程把编程活动分为四部分:设计(Design),编码(Coding),测试(Testing)和倾听(Listening)。除倾听之外的其他三部分几乎是每种开发方式中都有定义的,然而倾听这个环节却是极限编程独此一家的定义。要求代码客户直接参与到代码生产中,程序员倾听和理解客户提出的业务逻辑,与他们在作出开发计划时紧密沟通,告诉他们业务逻辑能否或如何实现,客户现场对程序员提出的建议给予反馈。这样产品开发自始至终都随着客户的要求而调整,不会开发出客户不需要或不好用的功能。
为了达到更有效率地交付高质量的代码的目的,极限编程规定了12项具体实践,而这12项具体实践又可以分为四个方面:精细反馈,持续过程,共享认知和程序员福利。以下我们将逐一介绍。
精细反馈(Fine Scale Feedback)
结对编程(Pair Programming)
两个人结对,共用一台计算机,一个人输入代码,另一个人在他输入代码的同时在旁边审查代码,考虑设计,提出意见。每过一段时间之后(比如一个小时),两人互换角色。这样做最大的好处在于代码从最初输入时就在审查之下,立刻就得到了另一个人的反馈。另一个这样做的好处是任何代码都至少会有两人非常熟悉,如果有人离职或休假,不会出现找不到懂得这方面代码的人的情况,避免了单点失败。结对的两人每过一段时间可以交换结对对象,比如头两周AB结对,CD结对,接下来的两周AC结对,BD结对。这样可以增进团队成员间沟通交流,培养出成员间感情,增强团队凝聚力。
计划博弈(Planning Game)
XP的计划会议有两种:发布计划会(Release Planning)和迭代计划会(Iteration Planning)
发布计划会决定要在下一个发布中包含的功能、功能完成日期,客户也被要求参加,以决定每个功能的优先级。
迭代计划会在每个迭代(XP的一个迭代时间为一到三周,最常用的时间是一周)之初进行,根据发布计划会决定的发布清单,将清单中的的功能选出,决定哪些是要在这个迭代完成的,然后将功能转化成具体的任务,把任务发配给相应的开发人员。
同时根据计划的实施情况,实时地修正计划。比如,如果在迭代中发现开发进度比估算的满,那么很可能之前预计的开发速度被高估了,这种情况下,不但要修
免责声明:
1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!
-
延伸阅读:
-