敏捷Agile方法

什么是Scrum?

  Scrum是一种应用于项目管理的敏捷方法,Scrum方法是目前软件开发中最普遍使用的一种方法,Scrum过程适合于那些需求快速改变或非常紧急的项目,Scrum软件开发过程是由一系列迭代组成,这个迭代称为sprints, 一般持续一到两周. Scrum模型建议每一个 sprint开始于一个简短的计划会议或评审review.

  在敏捷Scrum世界, 并不是提供有关项目中每件事的完整详细描述,而是将这些留给开发团队在过程中解决,因为他们最合适知道问题在哪里,问题是如何显现的。

  在敏捷开发中,一个sprint计划会议是用愿景结果来描述,而不是象其他项目管理需要提供系列条文规范、任务定义,校验准则 退出要求等等。

  Scrum依赖于一个自我组织和跨功能的团队. 自我管理意味着没有一个全局团队领导,由他来指定任务或决定问题怎么解决。问题的决定由团队全体来决策。跨功能意味着每个人都需要知道从需求功能到细节实现。

   Scrum团队一般由两个特殊角色提供支持:第一个是Scrum教练ScrumMaster, 可以看成是团队的主教练,帮助团队成员在一个高层次实施Scrum过程。产品所有者(产品经理PO)是另外一个角色,代表业务领域专家 客户和用户,知道团队沿着一个正确产品方向前行。

步骤

  Scrum模型建议项目通过一系列sprints推进. sprints是一个时间盒,大部分是两周,有超过一个月。

  Scrum方法 主张将一个计划会议作为一个sprint的开始, 在这里团队成员能够知道他们有多少条目需要提交,然后创建一个sprint任务列表Backlog – 一种在当前Sprint可以执行的任务列表。

  产品Backlog是指根据初始需求分解出的任务列表,包括功能性和非功能性的所有功能,由产品经理为产品 Backlog中的任务确定优先级别,当开发团队开始某个任务的时候,再精确定义和分解这个任务。 产品Backlog是产品所要具备的所有功能的总纲。当一个项目刚刚开始时,没人能够事先预见到所有的任务和需求,并为之制定一个充分、详细而包罗万象的计划。可行的方式是,先为一个项目写下所有它该具备的显著特性和功能,数量不必很多,做好能保证团队的第一个Sprint有活可干。 随着Sprint的进行,生产出可发布的产品增量,客户对产品的直观认识也会随之加深,他们可以据此建议更改或者添加产品Backlog中的任务。

  在一个敏捷Scrum sprint中,Scrum团队会完成一些功能从分析设计到实现以及测试,最后,这些功能完成后,意味着已经完成代码 完成测试,也集成入了演进的产品中了。

  在sprint的每一天, 所有团队成员应该参加每天的Scrum会议,包括ScrumMaster 和产品经理。这个会议由时间限制,不超过15分钟。在这段时间内,团队成员分享他们前一天的工作心得和成果,以及今天将要工作的目标,确认开发流程中的障碍。

  在一个sprint结束时,团队要举办一个sprint评审会,在其中团队向产品经理演示新功能,而产品经理需要提供一个反馈,这些反馈会影响下一个阶段的sprint.反馈循环会导致发布功能的改变,但是也会修订和增加一些条目到产品任务列表Backlog中。

  Scrum项目管理中另外一个活动是在每个sprint结束的回顾 retrospective. 整个团队都要参与包括教练和PO,这个会议提供一个机会,在Sprint结束时能够确认需要提高的地方。

要点

   Scrum开发的首要神器是产品自身,Scrum模型期望团队能够将产品带到可交付状态,产品backlog是另外一个神器. 这是一个可以不断持续加入的完整功能列表。产品经理会区分出优先级别。最流行和成功的Scrum方法方法是创建backlog,然后通过用户故事导出。

角色职责

  一个ScrumMaster主教练不同于传统的项目经理给队员提供每天方向向个人分配任务。一个好的ScrumMaster帮助团队排除外界干扰,使团队成员能够聚焦于他们所选择的目标,教练是帮助队员成为最好的。

  产品经理是保证产品的正确方向,这是通过产品backlog完成这一点。

  打个比喻:Scrum团队是汽车,准备向指定的方向飞驰。产品经理是司机,确保车辆始终朝着正确的方向行驶。而ScrumMaster的是首席机械师,保持汽车有良好优化和最佳效能。

什么是Scrum积压?

敏捷