Scrum实践

相关概念

Agile

敏捷的概念与瀑布模型是相对的,敏捷是一种以人为核心,不断迭代的技术团队管理方式。

以人为核心

瀑布模型是以文档驱动的,而敏捷模式强调人与人之间的交流。

迭代

瀑布模型通常用来管理一个比较大、比较完整的产品的开发周期,而敏捷则倾向于将产品分割为多个可交付的小周期开发任务,不断地迭代开发周期,以使产品渐渐趋于完善。

Scrum

Scrum是一种敏捷的模型,它注重过程,适应需求的变化,针对功能的发布强调快速迭代。

Scrum角色介绍

Product Owner

产品的拥有者,负责确定产品需求,交付日期。周期结束时,产品将交付给Product Owner。

Scrum Master

Scrum Master是整个模式中最重要的管理人员,他将主导整个Scrum流程,协调Scrum Member和Product Owner ,确保流程正确,阻止成员以非Scrum思想进行工作,制止官僚主义,使成员专注于Sprint内的任务,停止无意义的争辩,构建交叉知识树,补充全局文档,让所有成员对整个系统,包括开发和测试都有良好的理解,承担小部分开发和测试,专注于每一个成员的个人诉求。如何做好Scrum Master是一个非常值得在实践中探讨的问题。

Scrum Team

团队成员包括开发与测试人员,一般情况下人数在3到10人之间。

Scrum流程实践

Product Backlog

Sprint中所有的需求都来自于需求池,需求池的维护需要靠Product Owner和Scrum Master共同承担。

Sprint Backlog

在Sprint开始前,需要从需求池中挑选出不同重要程度的Product Backlog来作为本次迭代的任务。

Refine Meeting

Refine Meeting标志着一次迭代的开始,在会议中,Product Owner会介绍挑选出来的需求任务。而团队成员则会就需求细节方面向Product Owner提问并确认。

Plan Meeting

在所有人都对挑选出来的需求了解以后,需要进行故事点(需求难易程度)的估算、需求的拆分、子任务的工时估算、以及任务的分配。

Daily Stand Meeting

整个Sprint周期一般为2到4周。在每日工作的过程中,需要进行Daily Stand Meeting,站会一般在早晨,所有团队成员总结昨日的工作,计划今日的工作,并提出遇到的问题。每日站会非常重要,他是Scrum以人为核心的基础,理想状态下能够让所有团队成员都了解所有需求的完成情况。

Code Review

Code Review需要所有团队中的开发人员参加,以能够更好地找出代码中隐藏的问题,和让所有成员都对代码有所了解。

Demo Meeting

产品演示一般安排在Sprint的倒数第二天,以防Product Owner对产品质疑后需要对产品打补丁。

Release & Launch

产品的发布一般安排在Sprint的倒数第二天,部署上线一般安排在最后一天。

Review Meeting

回顾会议标志着一个Sprint的结束。回顾会议由Scrum Master主持,需要确认产品文档的产出是否正常,每个成员消耗的工时与预估的工时的对比,以及Sprint的健康程度。

实践建议

Scrum Master的任务是非常重要的,也是非常繁重的,一个优秀的Scrum Master会处理好产品与成员的关系,并推动整个团队健康地完成迭代 。建议Scrum Master由成熟的团队成员轮流承担以减轻领导者压力,并培养团队成员的责任感。建议Scrum Master任要兼任小部分开发或者测试工作,以了解团队工作内容,防止官僚主义的发生。

另外,Sprint过程中每日的持续化集成报告也是很有价值的材料,可以借此敦促团队成员完成所需任务,以及及时了解项目情况。