前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【敏捷2.2】极限编程XP

【敏捷2.2】极限编程XP

作者头像
硬核项目经理
发布2021-11-10 14:54:20
1.3K0
发布2021-11-10 14:54:20
举报

极限编程XP

一提到 XP ,很多人的第一反应是微软的那个操作系统。没错,XP 似乎已经是它的代名词了。但是,在敏捷领域,也有一个 XP ,而且也是一样的如雷贯耳。那就是传说中的 ExtremeProgramming 极限编程,它的简称就是 XP 。

既然都带有编程两个字了,那么很明显这个理论框架就是出自软件开发行业。之前的文章也说过了,敏捷最初就是一帮软件大神搞出来的,而 XP ,不仅代表着敏捷,还代表着敏捷中的极限。即使你完全不了解这个 XP ,但有几个东西你一定听说过,重构、结对编程、持续集成、编码标准。我说出来了,那你也应该猜到了,这些东西都是 XP 的关键实践,也是 XP 大力推广的内容,甚至更有完全是 XP 创建的概念。

XP的核心价值

XP 是由 Kent Back 这位大神创建的一个敏捷方法框架。关于这位大神,如果你要学习敏捷,他就是绕不过去的一个人。背景问题我们就不多说了,直接进入主题,XP 的核心是什么?只有八个字。

沟通、简单、反馈、勇气

沟通不必多说,任何问题到最后都可以归结为沟通的问题。特别是在敏捷中,沟通是解决各种问题的一剂万能药。而且,沟通不仅限于敏捷项目开发,传统的 PMP 中,也有专门的一个知识领域就是 项目沟通管理 。在 XP 中,会强调客户在现场、会强调两个程序员用一台电脑的结对编程、会强调使用隐喻来说明需求,这些,都是为了更好地沟通。

整个敏捷体系都推崇简单的做事,做好事。而 XP 更是将这个简单发挥到了极限,我们在做任何的项目时,都应该从最简单的方向入手,千万不要一上来就以淘宝的架构来设计一个 PV 过不了百的小网站。而是应该一步一步地,通过不断地重构来完善系统。同时,采用测试驱动开发,来保证代码具有极高的质量。

反馈,就是收集系统、客户和团队的各方各面的回馈信息,同时,就像上面的测试驱动开发,其本质也是一种代码上的反馈。它与沟通和简单是紧密相连的。Kent Back 的原话是“编程中的乐观主义是危险的,而及时反馈则是解决它的方法。”

你有重构核心代码的勇气吗?你有提醒产品专家或客户代表不要过度设计的勇气吗。或许有的人天生就喜欢挑战自我,而有的人可能就喜欢循规蹈矩。在 XP 中,我们更倾向于用一组实践来诠释勇气,你只要在规则的限定下,在代码规范下,在测试驱动开发的框架内,那么,自然而然就能够有重构的勇气。当你明白了价值是项目和产品最重要的部分,也通过沟通获得了客户的信任,那么,你也能够有勇气指出产品设计中的问题。

除了这四大核心之外,现在还有一个词也慢慢融入到了 XP 的核心思想中,那就是 “尊重” 。尊重团队、尊重客户,尊重产品,尊重代码,更重要的是,尊重自己。在一个项目中,做到对自己负责,能够有收获,提交的都是有质量的内容;对团队负责,能够有产出,信任他们的代码;对客户负责,能够有结果,相信产品的价值;反过来,他们也自然会尊重你。一个好的 XP 团队,会把尊重放在重要的位置,我们尊重的不仅是你的代码和能力,更重要的是,我们是通过团队成员间的信任,来达到真正的尊重。

XP的生命周期

只要是牵涉到项目开发,就一定有一个生命周期的概念,PMP 是如此,XP 也是如此,后面我们要学习到的 Scrum 也会有它的生命周期。XP 的生命周期就如下图所示。

在这个图中,我们看到了 用户故事 ,注意,它很重要,在敏捷中,需求都会定义为 用户故事 ,关于它的内容我们后面还会学到。然后就是根据 用户故事 定义的 发布计划 。我们会在 发布计划 中包含 总体估算 和 隐喻 。在这里,需要记住的是敏捷中的估算都是相对估算,都是不精准的。

接下来,我们会根据 发布计划 和 用户故事 来确定每个 迭代中需要做的事情,也就是 迭代计划 。在这个计划中,通过客户对功能的解释会将 用户故事 进行更加深入的拆分,变成任务。之后就是通过 结对编程 来实现我们的产品。

当 迭代 结束时,或者到了 发布计划 制定的发布结点时,我们就需要通过 小规模发布 来实现产品的迭代、增量开发,从而达到敏捷的能力。

上述几个步骤,就是一个 XP 项目开发的整个生命周期过程,完整的产品最后就是通过这样不停地迭代实现的。在图中,我们还看到了 架构探针 和 探针 这两个东西。其实,它们是为了些特殊情况而使用的,比如说采用了新的技术、或者使用了新的架构、或者我们第一次尝试 XP 开发。这个时候,一个探针就像是一次测试的微型迭代。探针 是为了减少风险的,并且可能在整个项目开发中经常会使用到。

总结

本次列车还没有到站,为什么呢?在文章中,你是不是发现了一大堆新名词。可能有的你懂了,比如说 沟通、简单、反馈、勇气 在 XP 中的意义;有的你可能似懂非懂,比如 重构、小规模发布、结对编程;另外有些则感觉非常朦胧,就像 隐喻、简单设计 都是什么鬼。别急,关于 XP 的内容一篇文章可讲不完,下篇文章我们就将继续学习关于 XP 的一些关键实践,这些关键词也会一一解答。

参考文档:

《某培训机构教材》

《用户故事与敏捷方法》

《高效通过PMI-ACP考试(第2版)》

《敏捷项目管理与PMI-ACP应试指南》

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农老张 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 极限编程XP
    • XP的核心价值
      • XP的生命周期
        • 总结
        相关产品与服务
        项目管理
        CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档