极限编程 - 过程周期
极限编程是一种敏捷过程。
极限编程是一种敏捷过程,因为它:
强调大量的沟通和反馈:
团队内部(结对编程、集体代码所有权、简单设计)
与客户(现场客户和验收测试)
用于发布计划(客户和开发人员参与估算)
极限编程聘用了一位教练,其工作是注意人们何时没有进行沟通并重新引入沟通。
拥抱变化:
频繁迭代(短期发布)
轻松设计和重新设计(简单设计)
持续编码和测试(结对编程)
让客户持续参与(在线客户)
以短迭代(短期发布)向客户交付可工作的产品。
尽早消除缺陷,从而降低成本(结对编程)
代码审查
单元测试
针对每一组更改和测试进行集成
极限编程过程周期
极限编程是迭代和增量的,并且由时间盒周期驱动。因此,极限编程过程的节奏至关重要。
极限编程具有以下活动级别:
产品生命周期
发布
迭代
任务
开发
反馈
每个活动级别都提供下一级别所需的最小输入。它们是:
产品生命周期活动为发布周期提供输入。
发布计划会议为迭代周期提供输入。
迭代计划会议为任务周期提供输入。
任务开发为开发阶段提供输入。
开发产生产品。
反馈是整个项目和所有上述活动级别的持续活动。
产品生命周期
这也被称为探索阶段。它涉及功能集定义和计划。客户获得高价值需求,并且需求以用户故事的形式给出。
故事是此级别活动的初级交付物。
发布
这也被称为承诺阶段。在此活动中:
整个团队聚集在一起,以便:
审查进度。
可以添加新的需求和/或更改或删除现有需求。
客户展示故事。
讨论故事。
开发人员确定技术方法和风险。他们提供第一级估计和选项。
客户对故事进行优先级排序并选择目标发布时间盒。
客户和开发人员承诺要包含的功能以及下一次发布的日期。
开发人员:
将故事安排到可能的迭代中。
包含来自先前发布的验收测试的缺陷修复。
开始迭代。
发布计划是此级别活动的初级交付物。
迭代
这也被称为指导阶段。整个团队聚集在一起,以便审查进度并调整计划。客户为迭代展示故事,并更详细地讨论这些故事。
迭代计划是此活动的初级交付物。
开发人员:
确定详细的技术方法。
为每个故事创建任务列表。
开始开发。
部署系统到
可部署系统是此活动的最终交付物。
任务
开发人员注册任务并开始开发阶段以实现故事。他们确保迭代的任务已完成。开发人员还确保迭代的故事已通过验收测试完成。
开发
开发人员组成配对,这可以是一个持续的动态活动。
每对:
验证他们对故事的理解。
确定详细的实施方法,确保简单设计。
开始测试驱动开发,即编写单元测试、实现代码以通过单元测试、重构以使代码简单。
在适当的间隔将他们的代码集成到系统代码库中。
经常审查进度。
反馈
配对人员在内部和外部与团队进行持续沟通。在线客户也持续参与沟通。某些团队采用每日站立会议,以快速讨论整体团队状态以及必要时可能的重新同步和微计划。
迭代和发布审查提供整体状态和流程调整和改进点。
开发阶段可能会导致重新思考任务。
任务开发可能会导致重新思考故事。
故事重新估算可能会导致迭代更改或恢复。
迭代结果可能会导致发布计划发生更改。
极限编程过程周期如下所示。