极限编程 - 流程周期

极限编程是一个敏捷过程。

极限编程是一个敏捷过程,因为它−

  • 强调大量的沟通和反馈−

    • 团队内部(结对编程、集体代码所有权、简单设计)

    • 与客户(现场客户和验收测试)

    • 用于发布计划(客户和开发人员参与估算)

  • 极限编程聘请了一名教练,其工作是注意人们何时不沟通并重新介绍他们。

  • 用−接受变化

    • 频繁迭代(短版本)

    • 轻松设计和重新设计(简单设计)

    • 持续编码和测试(结对编程)

    • 让客户持续参与(在线客户)

  • 在短迭代中向客户交付可用的产品(短版本)。

  • 尽早消除缺陷,从而降低成本(结对编程)

    • 代码审查

    • 单元测试

    • 集成每组更改和测试

极限编程过程周期

极限编程是迭代和增量的,由时间限制周期驱动。因此,极限编程过程的节奏至关重要。

极限编程具有以下活动级别 −

  • 产品生命周期

  • 发布

  • 迭代

  • 任务

  • 开发

  • 反馈

每个活动级别都提供下一个级别所需的最小输入。它们是 −

  • 产品生命周期活动为发布周期提供输入。

  • 发布规划会议为迭代周期提供输入。

  • 迭代规划会议为任务周期提供输入。

  • 任务开发为开发阶段提供输入。

  • 开发生产产品。

反馈是贯穿整个项目和所有上述活动级别的持续活动。

产品生命周期

这也称为探索阶段。它涉及功能集定义和规划。客户提出高价值需求,这些需求以用户故事的形式给出。

故事是此级别活动的主要可交付成果。

发布

这也称为承诺阶段。在此活动中 −

  • 整个团队聚集在一起,以便 −

    • 审查进度。

    • 可以添加新需求和/或更改或删除现有需求。

    • 客户提出故事。

    • 讨论故事。

  • 开发人员确定技术方法和风险。他们提供第一级估计和选项。

  • 客户确定故事的优先级并选择目标发布时间框。

  • 客户和开发人员承诺要包含的功能和下一个版本的日期。

  • 开发人员 −

    • 将故事安排到可能的迭代中。

    • 包括上一个版本的验收测试中的缺陷修复。

    • 开始迭代。

发布计划是此级别活动的主要可交付成果。

迭代

这也称为指导阶段。整个团队聚集在一起,以便审查进度并调整计划。客户提出迭代的故事,并更详细地讨论这些故事。

迭代计划是此活动的主要可交付成果。

开发人员 −

  • 确定详细的技术方法。

  • 为每个故事创建任务列表。

  • 开始开发。

  • 尽可能地部署系统

可部署系统是此活动的最终可交付成果。

任务

开发人员注册任务并开始开发阶段以实现故事。他们确保迭代任务已完成。开发人员还确保迭代的故事通过验收测试完成。

开发

开发人员结对,这可能是一个持续而动态的活动。

每对 −

  • 验证他们对故事的理解。

  • 确定详细的实施方法,确保设计简单。

  • 开始测试驱动开发,即编写单元测试、实现代码以通过单元测试、重构以简化代码。

  • 以适当的间隔将他们的代码集成到系统代码库中。

  • 经常审查进度。

反馈

结对的人不断进行内部沟通,也向团队外部沟通。在线客户也持续参与沟通。某些团队会每天召开站立会议,快速讨论团队整体状态,并在必要时进行可能的重新同步和微观规划。

迭代和发布评审提供整体状态和流程调整和改进的要点。

  • 开发事件可能导致重新考虑任务。

  • 任务开发可能导致重新考虑故事。

  • 故事重新评估可能导致迭代更改或恢复。

  • 迭代结果可能导致发布计划更改。

极限编程过程周期如下所示。

极限编程过程周期