【极限编程】简介

2019-03-30  本文已影响0人  小船哥说敏捷

1. 极限编程简介

极限编程(Extreme Programming,XP)是一种敏捷开发方法,供中小型团队用于开发需求快速变化的软件。

美国软件工程专家Kent Beck对极限编程进行了解释:

XP是一种轻质量、高效、低风险、柔性、可预测、科学而充满乐趣的软件开发方法。

极限编程是价值而非实践驱动的高度迭代的开发过程。其价值体现在以下几个方面:

  1. 简单

    在XP中,简单被定义为“在管用的前提下,做简单的事情”即实现最简单的可行方案。XP认为应该尽量保持代码的简单,只要能够满足工作需要就行,这样有利于代码重构和优化。

  2. 交流

    所有的方法都包含在交流过程中,而在XP中,这是其核心价值观。它侧重于口头交流,XP追求有效的交流,而且强调项目开发人员、设计人员、客户之间的有效的、及时的交流,确保各种信息的畅通。

  3. 反馈

    反馈对于任何项目的成功都是生死攸关的,在XP中,有关软件状态的问题是通过持续的、明确的反馈来回答的。通过反馈,达到迅速交流、编码、测试、发布项目的目的。

  4. 勇气

    即勇于放弃和重构,对于用户的反馈,XP程序员要勇于对自己的代码进行修改,即使有些修改可能会使得原来已经通过的测试又出现错误,但是经过团队的共同攻关,最终必然会取得满意的效果。

2. 极限编程的开发过程及特点

与传统的开发过程不同,极限编程的核心活动体现在需求——测试——编码——设计过程中,因此对工作环境、需求分析、设计、编程、测试、发布等提出了新的思路和需求。

  1. 工作环境

    XP要求每个参加项目开发的人都担任一个角色,并履行相应的权利和义务。所有的人都在一个开放式的开发环境中工作,最好是在同一个大房间中工作,随时讨论问题,强调每周40小时工作制度,不加班。

  2. 需求分析

    客户被纳入开发队伍。由于客户不具备计算机专业知识,无法用专业术语明确的描述需求,所以开发人员和客户在一起,用讲故事的方式把需求表达出来,开发人员根据经验将许多故事组合起来,或将其进行分解,最终记录在小卡片上,这些故事将陆续被研发团队在各个周期内,按照商业价值、开发风险优先顺序逐个开发。

  3. 设计

    XP强调简单设计,即用最简单的办法实现每个小需求。在XP中,没有哪种传统开发模式中一次性的、针对所有需求的总体设计,这些设计只要能够满足客户在当前的需求就可以了,不需要考虑将来可能的变化,整个设计过程包括在整个螺旋式发展的项目中。

  4. 测试

    XP开发人员在编写代码之前进行测试,而不是在开发完成后再进行测试。开发人员编写单元测试,对方法以及可能出现问题的每个地方进行测试。编写好对针对组件的所有测试后,开发人员只编写刚好能够通过测试的代码。编写这样的测试将为系统提供一套完整的测试,而我们只编写最简单的,能够管用的代码。仅当类通过了所有的测试,编写工作才算完成。所有这些测试是极限编程开发过程中最重要的文档之一,也是最终交付给用户的内容之一。

  5. 编程

    结对编程是极限编程的一大特色,即两个人一起使用同一个屏幕,同一个键盘,共同完成一段程序的编码。结对编程的好处是,可以提高纪律性,更容易写出优质代码,同时保证编程的流畅进行,更重要的是,能够使得整个团队更方便的分享编程经验,有利于新手快速成长。

  6. 发布

    XP要求按照开发计划,每经过一个开发周期,软件就发布一次,而不是像传统的开发方法那样,整个软件开发完后才发布。在一个开发周期内,开发人员要求客户选择最有价值的user story作为未来一两个星期的开发内容,一个开发周期完成后,提交给客户的系统虽然不是最终的产品,但是已经实现了几个客户认为是最重要的story ,因此,虽然软件并不完备但是,发布的软件客户还是可以真正使用的。

3. 极限编程的优点

4.极限编程的缺点

5. 极限编程的运用

XP适用于规模小、进度紧、需求变化大、质量要求严的项目。它希望以最高的效率和质量来解决用户目前的问题,以最大的灵活性和最小的代价来满足用户未来的需求,XP在平衡短期和长期之间做了巧妙的安排。

国内的软件开发过程经常存在一些问题,如:客户需求变化频繁、系统交付时间一推再推、交付系统错误层出不穷、因程序员半途跳槽而导致工作不能顺利完成、需求估计不足、因程序员之间交流少而导致代码重复开发、文档不能真实地反映实际情况等等。为了有效地克服上述问题,软件机构在项目开发时,有意识地采用XP方法,并且取得了一定效果。通过对这些应用的总结,可以概括出,XP应用确实具有一定的适用范围,而应用成功的关键在于,充分认识XP应用过程中的优缺点,在保持组织既有的开发过程和生命周期模型的前提下,结合应用类型、项目特点和组织文化,借鉴、汲取个别项目有效的XP方法,在领会其精神实质的基础上灵活运用,而不是全部照搬硬套。另外以下几个问题也是在应用中需要注意的:

上一篇下一篇

猜你喜欢

热点阅读