📅  最后修改于: 2021-01-07 06:07:07             🧑  作者: Mango
XP开始通过引入基本价值,原则和实践来降低变更成本。通过应用XP,系统开发项目在更改方面应该更加灵活。
极限编程(XP)基于五个值-
通讯
简单
反馈
勇气
尊重
沟通在项目成功中起着重要作用。由于缺乏沟通,项目经常会出现问题。许多情况下可能导致通信中断。一些常见的问题是-
开发人员可能不会将设计中的重大更改告知他人。
开发人员可能不会向客户提出正确的问题,因此做出了关键的领域决定。
经理可能没有向开发人员提出正确的问题,并且错误报告了项目进度。
开发人员可能会忽略客户传达的重要信息。
极限编程强调团队成员,经理和客户之间持续不断的沟通。极端编程实践,例如单元测试,结对编程,简单设计,常见隐喻,集体所有权和客户反馈,着重于沟通的价值。
XP雇用了一位教练,他的工作是在人们不交流时通知他们,并重新介绍他们。首选面对面交流,并通过结对编程实现,并且始终有客户代表在现场。
极限编程认为,“今天做一件简单的事情,明天再付一点钱来改变它,比“今天做一件更复杂的事情反而永远不会使用”要好。
做需要和要求做的事,但再也不要做。
“做可能可行的最简单的事情” DTSTTCPW原理。
以最简单的方式实施新功能。也称为KISS原则“保持简单,愚蠢!”。
当教练看到极限编程开发人员做不必要的复杂工作时,他可能会说DTSTTCPW。
使用当前功能部件将系统重构为最简单的代码。这将使迄今为止的投资创造的价值最大化。
采取简单的小步骤即可实现目标,并在故障发生时减轻故障。
创建您引以为傲的东西,并以合理的成本长期维护它。
永远不要实现您现在不需要的功能,即“您不需要它”(YAGNI)原则。
沟通和简单性相互支持。
交流得越多,您就能清楚地看到需要完成的工作,并且对真正不需要做的事情更有信心。
系统越简单,就需要的开发人员越少,您进行的交流就越少。这导致更好的沟通。
交付有效的软件会认真对待每个迭代承诺。该软件会尽早交付给客户,并会提供反馈,以便可以根据需要进行必要的更改。有关系统当前状态的具体反馈是无价的。反馈的价值是一个连续运行的系统,该系统以可靠的方式传递有关其自身的信息。
在极限编程中,确保在不同时间范围内的各个级别提供反馈-
客户告诉开发人员他们感兴趣的功能,以便开发人员只能专注于这些功能。
单元测试告诉开发人员系统的状态。
该系统和代码向管理人员,利益相关者和客户提供有关开发状态的反馈。
频繁的发布使客户能够执行验收测试并提供反馈,并且开发人员可以基于该反馈进行工作。
当客户编写新功能/用户故事时,开发人员会估计交付更改所需的时间,以与客户和经理一起设定期望。
因此,在极限编程中,反馈-
推动变革
表示进度
使开发人员确信他们走上了正确的道路
极限编程通过以下方式为开发人员提供了勇气-
只专注于要求
交流并接受反馈
说实话进度和估计
重构代码
随时随地适应变化
丢弃代码(原型)
这是可能的,因为没有人一个人工作,教练不断地指导团队。
尊重是一个很深的价值,一个价值位于其他四个价值的表面之下。在极限编程中
每个人都相互尊重,成为有价值的团队成员。
每个人都贡献着热情等价值。
开发人员尊重客户的专业知识,反之亦然。
管理层尊重开发人员对其工作承担责任和获得授权的权利。
结合沟通,简单和具体的反馈,勇气变得极为宝贵。
交流支持勇气,因为它打开了进行更多高风险,高回报实验的可能性。
简单性支持勇气,因为您可以通过简单的系统承担更大的勇气。您不太可能在不知不觉中打破它。
勇气支持简单性,因为一旦您看到简化系统的可能性,便可以尝试一下。
具体的反馈支持勇气,因为如果您看到测试最后变成绿色,则尝试对代码进行重大修改会更安全。如果任何测试都没有变为绿色,则说明您可以丢弃该代码。
这些值很重要,但是它们含糊不清,因为可能无法确定某些东西是否有价值。例如,从别人的角度来看简单的事情可能在别人的角度来看很复杂。
因此,在极限编程中,基本原理是从值中派生的,因此可以对照这些原理检查开发实践。每个原则都体现了价值,更具体,即快速反馈-您是否拥有它或没有。
极限编程的基本原理是-
快速反馈
假设简单
增量变化
拥抱变化
优质的工作
快速反馈是获取反馈,理解反馈并将学习成果尽快返回系统。
开发人员设计,实施和测试系统,并在几秒钟或几分钟内使用该反馈,而不是几天,几周或几个月。
客户检查系统以检查其可做出的最大贡献,并在几天或几周而不是几个月或几年内给出反馈。
假设简单就是将每个问题都视为可以简单解决。
传统上,您会被告知要为将来做计划,为重复使用而设计。这种方法的结果可能会变成“今天客户的要求没有得到满足,最终交付的产品可能已过时且难以更改”。
“假设简单性”意味着“出色地完成今天的工作,并相信您有能力在将来需要的地方增加复杂性。”在“极限编程”中,您被要求出色地工作(测试,重构和交流),着重于当今重要的事情。
通过良好的单元测试,您可以轻松地重构代码以进行其他测试。
关注YAGNI(您将不需要它)。
遵循DRY(请勿重复自己)原则。例如,
没有相同(或非常相似)代码的多个副本。
没有多余的信息副本。
在不必要的情况下,不会浪费时间和资源。
在任何情况下,一次完成的重大更改都是行不通的。一系列最小的改变可以解决任何问题。
在极限编程中,增量更改以多种方式应用。
设计一次更改一些。
计划一次更改一点。
团队一次变化一点。
即使采用极限编程,也必须一步步采取。
最好的策略是在实际解决最紧迫的问题时保留最多选项的策略。
每个人都喜欢做好工作。他们试图生产出他们引以为傲的质量。团队
效果很好
喜欢工作
善于生产有价值的产品