Scrum + 极限编程



极限编程是最早出现的敏捷方法论之一,并且在不断发展。肯特·贝克(Kent Beck)发展了极限编程,其前提是使用最佳编程实践并将它们发挥到极致。

在当前情况下,极限编程侧重于目前业界流行的最佳实践,并将它们发挥到极致。最普遍的例子包括测试驱动开发、整体团队方法、可持续节奏等。

XP – 灵活性作为技术

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

  • 一些极限编程实践在流程中是互补的。

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

但是,请记住,您选择的任何极限编程实践都应完全贯彻执行。否则,您不能声称自己在使用极限编程。

事实上,这适用于您采用的任何流程。允许混合搭配,但前提是您使用的是互补的功能,并且没有损害所用功能的价值。

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

瀑布模型

在瀑布模型中,开发按阶段进行,在完成前一阶段之前无法开始下一阶段。

Waterfall Model

尽管有些人认为瀑布模型是一种传统方法论,但它仍在许多组织中使用。如果在开发开始之前完全了解需求,则它是一种成熟且有效的方法论。该流程简单明了,不需要任何培训或指导。

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

让我们看一下瀑布方法论的缺点:

  • 由于所有需求都必须在开发开始之前确定,因此当需求不完整或模糊时,它不适用。

  • 由于该方法论是单向的,因此无法将任何阶段的反馈重新纳入任何早期阶段,尽管获得了关于最终产品的更多清晰度。

  • 测试仅在开发完成后进行,由未参与早期阶段(例如需求收集或开发)的开发人员团队进行。这种“测试最后”的方法通常会导致缺陷控制不佳、缺陷率高、交付给客户的缺陷数量多。

  • 在开发结束之前,无法获得可用的产品,因此没有人会知道是否正在构建正确的东西,尽管它正在被正确地开发。

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

如果您预测开发中会出现这种情况,则敏捷方法论最合适。

敏捷方法论

敏捷方法论提倡:

  • 频繁发布可工作的产品增量,使反馈能够在正确的时间流入。

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

  • 灵活的计划,重点放在为客户提供价值、满足客户期望、投资回报率上。

  • 随时准备接受更改,以便交付的最终产品不会过时。

出现了多种敏捷方法论,其中 Scrum 变得越来越流行,并且被广泛使用。

Scrum 如何带来改变?

在 Scrum 中,项目被分解成发布和时间盒式的短冲刺。对于每个冲刺,您只会承担客户优先级最高且您可以在一个冲刺中交付的必要功能。在每个冲刺结束时,您将拥有一个可以发布的可工作产品。

需求称为积压项目,迭代称为冲刺。将采用持续测试与测试优先方法。开发人员和测试人员也参与用户故事的编写,这些用户故事是积压项目。这为团队中的每个人提供了对产品行为的预先了解,也有助于在冲刺开始时确定验收标准。

Scrum Difference

正如我们之前所说,Scrum 本身根据定义,在某些情况下是有效的,但与任何其他开发方法论一样,它也有其自身的缺点。

  • 时间盒式的冲刺不允许在发布计划中进行任何灵活性,这会阻碍开发和测试。

  • Scrum 本身没有提供开发方向。

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

Scrum + 极限编程混合方法

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

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

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

因此,发现 Scrum + 极限编程混合方法是有效的。

Scrum + XP 混合项目的工具

SpiraTeam 和 Rapise 等工具专为 Scrum + 极限编程混合项目而设计。SpiraTeam 提供关键项目质量和进度指标的报告仪表板,在一个集成的视图中,专为 Scrum 和极限编程项目量身定制。

一些指标包括:

  • 需求测试覆盖率
  • 任务进度
  • 项目速度
  • 主要风险和问题

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

广告

© . All rights reserved.