📜  Scrum +极限编程

📅  最后修改于: 2021-01-07 06:16:46             🧑  作者: Mango


极限编程是最早出现的敏捷方法之一,并且一直在不断发展。演化了极限编程的肯特·贝克(Kent Beck),以使用最佳编程实践并将其付诸实践的前提为基础进行了开发。

当前方案中的极限编程着眼于目前行业中流行的最佳实践,并将它们带到了极致。最流行的例子是测试驱动开发,整体团队方法,可持续步伐等。

XP –灵活性即技术

极限编程如此受欢迎的原因之一是它的灵活性。此外,极限编程更多地是关于技术而不是过程,因此与以过程为中心的方法很好地融合在一起。因此,无论何时何地,您都可以轻松地将极限编程的功能与其他想法结合起来

  • 在此过程中,某些极限编程实践是互补的。

  • 极限编程本身不适合实施。

但是,请记住,您选择的任何“极限编程实践”都应以其核心实现。否则,您不能声称您正在使用极限编程。

实际上,这对于您执行的任何过程都是正确的。允许进行混合匹配,但前提是您使用的是附加功能,并且不影响所使用功能的价值。

当前使用最流行的极限编程混合是Scrum +极限编程混合。我们将从基本且仍然流行的软件开发方法论-瀑布模型开始。

瀑布模型

在Waterfall模型中,开发是分阶段进行的,在较早阶段完成之前没有任何阶段可以开始。

瀑布模型

尽管有些组织将瀑布模型视为传统方法,但瀑布模型仍在一些组织中使用。如果在开发开始之前就完全了解需求,那么这是一种既定又有效的方法。该过程很简单,不需要任何培训或指导。

您需要记住的是,没有一种方法适用于每种情况,每种方法都有其优点和缺点。因此,您必须了解哪种方法适合您的环境,环境和客户利益。

让我们看一下Waterfall方法的缺点-

  • 由于所有要求都将在开发开始之前就已经知道,因此当要求不完整或含糊不清时,这是不合适的。

  • 由于该方法正朝一个方向发展,因此尽管可以从最终产品上获得更多的清晰度,但任何阶段的反馈都不能带回到任何早期阶段。

  • 仅在开发完成后才进行测试,由不参与早期阶段(例如需求收集或开发)的开发人员组成的团队。这种最后测试的方法通常会导致缺陷隐患,高缺陷率,交付的高缺陷被客户发现。

  • 该工作产品要等到开发结束后才能使用,因此,即使正确开发了正确的产品,也没有人知道是否构建了正确的产品。

  • 缺陷修复和对需求的更改很难被吸收,因为很有可能破坏设计,并且产生的成本也很高。

如果您在开发中预测了这种情况,那么敏捷方法将是最合适的。

敏捷方法

敏捷方法论倡导者-

  • 经常发布工作产品增量,从而使反馈在适当的时间流入。

  • 以团队为中心的方法,使每个人对最终产品负责并负责。

  • 灵活的计划侧重于向客户交付价值,满足客户期望和投资回报。

  • 准备在任何开发点接受更改,以使交付的最终产品不会过时。

几种敏捷方法应运而生,其中Scrum变得越来越流行并被广泛使用。

Scrum如何产生影响?

在Scrum中,项目分为发行版和带时间限制的短冲刺。对于每个冲刺,您将仅采用客户优先考虑的必需和足够的功能,并且可以在冲刺中交付。在每个Sprint的末尾,您都有可以发布的有效产品。

需求称为待办事项,迭代称为sprint。将采用“测试优先”的方法进行连续测试。开发人员和测试人员还参与了用户故事的编写,这是积压项目。这为团队中的每个人提供了产品行为的前瞻性视图,也有助于在冲刺本身开始时达到接受标准。

Scrum差异

就像我们前面所说的那样,Scrum的定义在某些情况下是有效的,但与其他开发方法一样,也有其自身的缺点。

  • 带有时间限制的sprint将不会在发布时间表中提供任何灵活性,从而影响开发和测试。

  • Scrum本身并不能提供发展方向。

因此,Scrum通常会与其他更注重开发策略的敏捷方法相结合。

Scrum +极限编程混合

Scrum经常被用于结合了免费的极限编程实践,极限编程侧重于工程方面,例如持续通信,频繁的反馈循环,重构,集体所有权,持续集成,测试驱动的开发等,而scrum则侧重于冲刺,燃尽图等的固定范围。

  • 由于Scrum是一种已定义的方法,因此从项目的第一天开始就更容易适应。

  • 由于极限编程更加注重沟通和团队凝聚力,因此团队更加专注于开发。

因此,发现Scrum + Extreme Programming混合是有效的。

Scrum + XP Hybrid项目的工具

SpiraTeam和Rapise之类的工具适用于Scrum + Extreme Programming混合项目.SpiraTeam在一个为Scrum和Extreme Programming项目量身定制的合并视图中提供关键项目质量和进度指标的报告仪表板。

一些指标是-

  • 需求测试范围
  • 任务进度
  • 项目速度
  • 最高风险和问题

Rapise工具是一种测试自动化解决方案,可以完全集成到您的开发过程中,并可以适应不断变化的需求。您可以将其用于测试桌面,Web和移动应用程序。开发人员,测试人员和业务用户可以使用此工具来生成验收测试。