xp是什么意思(简要描述极限编程与敏捷过程的关系)

xp是什么意思(简要描述极限编程与敏捷过程的关系)

 

什么是极限编程 (XP)?

极限编程(XP) 是2000 年代初期最广为人知和使用最多的敏捷方法之一。XP 是Kent Beck、Ron Jeffries和Ward Cunningham的创意,基于他们在戴姆勒克莱斯勒的集体经验。它的名字变成了马麦酱并推迟了管理。它错误地唤起了冲浪者的幻想和缺乏专业精神。

XP 是一种迭代方法。团队计划少量工作并在称为 1 到 4 周迭代的短时间盒内构建它。XP 与其他迭代框架的主要区别在于,XP 专注于达到极端水平的软件工程实践。例如,许多研究表明代码审查是发现缺陷的最有效方法之一。XP 将这一点发挥到极致,并通过结对编程 100% 地鼓励同行评审。

XP 不仅专注于短迭代,而且还规定了较短的发布周期,以降低技术产品交付中固有的风险。进度延误、陈旧的需求与客户需求不一致、业务变更和不必要的功能都可以通过较短的发布周期来解决。

XP 实践 (Best Practices)

自 Kent Beck 首次发表“极限编程解释”以来,XP 实践一直在不断发展。但是,下图显示了与 XP 最常关联的集合。

xp是什么意思(简要描述极限编程与敏捷过程的关系)

image.png

敏捷开发方法XP的12个最佳实践

1.规划游戏 (planning game)

快速制定计划,随着细节的变化而改进;
详细说明:需结合项目进度和技术条件确定下一阶段拟开发和发布的系统范围。当计划跟不上实际变化时,应更新计划。

  1. 小发布 (Small release)

系统的设计应该能够尽早交付;
详细说明:强调新版本应该在极短的时间内增量发布,这样每个迭代周期的进度很容易估计,工作量和风险也很容易控制;同时,用户的反馈也能得到及时处理。
3.系统隐喻 (System Metaphor)

找一个合适的比喻来传达信息;
详解:通过比喻来描述系统的工作原理以及系统如何添加新的功能。它通常包含一些可以参考和比较的类和设计模式。

  1. 简单的设计 (Simple Design)

只处理当前的需求,保持设计的简单;
在任何时候,系统都应设计得尽可能简单。不必要的复杂性一旦被发现就会被移除。

  1. 测试驱动 (Test-driven)

先写测试代码,再写程序;
说明:程序员不断地编写单元测试,只有这些测试能够正确运行才能继续开发。

  1. 重构 (Refactoring)

重新检查需求和设计并重新清晰地描述它们以满足新的和现有的需求;
代码重构是在不改变系统行为的情况下,重新调整和优化系统内部结构,以降低复杂度,消除冗余,增加灵活性,提高性能。
7.结对编程 (Pair Programming)

两个程序员在同一台计算机上编写代码来解决同一个问题。
解释:通常一个人负责编写代码,另一个人负责保证代码的正确性和可读性。

  1. 集体所有 (Collective Programming)

任何人都可以随时随地更改系统中的任何代码。
说明:每个会员都有修改代码的权利,每个人对所有的代码负责。

  1. 持续集成 (Continous integration)

可以按天甚至按小时运行,供客户运行版本;
提倡一天集成几次系统,随着需求的变化,不断进行回归测试,避免系统集成一次的噩梦。

  1. 每周40小时 (40 hour work)

目组成员每周工作时间不得超过40小时,加班时间不得连续超过两周,否则会影响生产效率。

  1. 现场客户 (One-site customer)

在团队中添加一个真正的、功能性的用户,他将全职回答问题。
说明:在整个项目开发周期中,至少需要一名实际客户代表在现场确定需求,回答团队问题,并编写功能验收测试。

  1. 代码标准 (Code Standards)

通过指定严格的代码规范来强调沟通,以尽量减少不必要的文档。

XP值 (Values)

XP 在Scrum 框架采用价值之前几十年就将价值纳入方法论中。4个 XP 值 (core Values)是:

xp是什么意思(简要描述极限编程与敏捷过程的关系)

image.png

沟通 (Communication) - 保持正确的对话流畅以减少问题的发生。
简单 (Simplecity) - 今天做一件简单的事情,而不是制造你可能永远不需要的镀金。
反馈 (Feedback) - 与系统、客户以及彼此驱动解决方案的反馈循环。
勇气 (Courage) - 做出艰难的决定以帮助您以最快的速度交付。
尊重 (Respect) - 尊重意味着分享成功和失败的同时,我们尊重彼此、我们的协议和承诺。

XP角色 (Roles)

XP 规定了特定的角色。它非常重视程序员,并希望程序员能够享受测试他们的代码的乐趣。XP 程序员不仅需要广泛的技术实践,还需要有效的沟通和人际交往能力来实施结对编程等实践。

尽管开发团队执行测试的平衡,XP 需要测试人员。测试人员的角色转变为帮助客户定义和编写验收测试。

所有软件项目都有一个客户。XP 将客户角色发挥到极致,需要与开发团队共处,他们必须能够对产品做出决策并以用户故事的形式指定系统的行为。

为支持团队,XP 包含一个跟踪器,可为团队提供有关他们使用数据执行情况的宝贵反馈。还有一位教练可以帮助 XP 团队实现更高水平的绩效。

  • What is a Self-Organizing Team in Scrum?
  • What is Pig and Chicken in Scrum?
  • What is Cross-Functional Team in Agile?
  • Classical Project Management vs Agile Project Management
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论