名词解释:
- 极限编程Extreme Programming,XP
- XP中极限Extreme的含义:为成功做好准备,不要因为踌躇退缩而与成功失之交臂。尽力而为,然后处理其结果。
XP概览
XP是一种确保软件开发成功的方法论,由价值观、原则和实践三大部分组成。
- 价值观:沟通、简单、反馈、勇气、尊重
- 原则:人性化、经济学、互惠互利、自相似性、改进、多样性、反省、流、机遇、冗余、失败、质量、婴儿步、接受责任
- 实践:基本实践和扩展实践。
三者之间关系:
image.png
- 价值观是让实践有的放矢
- 实践代表具体做的事,是价值观的体现
- 原则是具体实践的指导方针,是价值观和实践之间的桥梁
XP的适用范围
- 适用于软件开发团队,用于解决软件开发中的问题,不解决项目投资管理、财务、执行、市场和销售问题。
- 适用于任何规模的团队
- 适合模糊或者快速变化的需求
XP与其他方法对比,其优势:
- 开发周期短,提供及早的、具体的、持续的反馈。
- 增量计划方法。迅速地提出一个总体计划,并在项目生命周期中不断演进。
- 能够灵活安排功能的实现,以对变化的业务需求做出反应。
- 使用由程序员、客户和测试人员编写的自动测试来监控开发进度,支持系统的演化,并今早发现缺陷。
- 通过口头沟通、测试和源代码沟通系统机构和意图。
- 演化的设计过程贯穿整个系统生命周期。
- 依赖于能力普通但能积极参与的程序员之间的紧密协作。
- 各种实践兼顾项目成员的短期直觉以及项目的长期利益。
XP为何有效?因为能解决开发过程中的风险,如下:
- 进度延迟——XP提倡短发布周期,每周迭代,每周进度反馈。优先实现高优先级功能。
- 项目取消——XP中的最小发布必须是满足最大商业意义的部分,商业成员决定哪些功能最有价值,然后优先实现。
- 系统恶化——XP中创建并维护一整套自动测试,每次系统发生改变后都要运行这些测试,以确保质量基线。XP总是保证系统处于可部署的状态,而不允许出现问题的积累。
- 缺陷率——XP中既包含来程序员书写的每个函数的测试,也包括来客户书写的对每个程序特性的测试。
- 业务误解——XP提倡业务人员成为团队成员。项目特性在开发过程中不断改进,因此客户和团队的知识都能反映在软件中。
- 业务变更——XP缩短来发布周期,因此在一个单独的发布周期中几乎没什么变化。在一个发布周期中,客户可以随意用新的功能替代没有完成的功能。开发团队甚至不会注意到她们是在开发一个新发现的功能还是几年前就定义的特性。
- 错误特性太多——XP坚持只解决最高优先级的特性。
- 人员流动——XP中鼓励新成员逐渐承担越来越多的责任,鼓励新老成员之间相互沟通。
理想XP团队中的你,应该是这样的:
- XP假设你从内心深处把自己看出团队的一部分。
- XP假设你有清晰的目标和向着目标执行计划。
- XP假设你乐于与团队成员一起工作,并相互沟通帮助。
- XP假设可以经济地应付变化。
- XP假设你希望成长、改善自己的技能,改善人际关系。
- XP假设你原意做出改变来达成这些目标。
理想XP团队中的你,能收获什么?
- 放弃旧的、低效的技术和习惯而采用新的有效的技术和习惯。
- 因为今天的竭尽全力而充分欣赏自己。
- 努力在明天做的更好。
- 按照对团队共同目标做出的贡献来评价自己。
- 让一些人性需求在软件开发中得到满足。
XP的核心魅力:提升团队应对变化的能力
- 问题:软件中的所有东西都在变。需求在变,设计在变,业务在变,技术在变,团队在变,团队成员也在变。问题不在于变化,因为变化总是要发生:问题在于我们没有应对变化的能力
- 解决问题:XP让你通过不断的、小的纠正来适应,通过短周期的部署软件来朝着目标前进,随着开发的继续,团队(包括客户)将会意识到哪些实践需要加强,哪些实践偏离来目标。每项实践都是一个改进效率、沟通、自信心和生产率的试验。这样就不会过很长时间才发现自己走错来方向。
- =》XP的范式:保持清醒、适应、变化
网友评论