浅谈Scrum
Scrum的起源
Scrum这个名字来源于英式橄榄球的一种争球方式,为什么要取这个名字?大概创造者认为这种敏捷开发方法跟Scrum有相似的地方吧,迭代,反馈,快速反应和有效的沟通。
1991年Degrace和Stahl在《Wicked Problems, Righteous Solutions》中首次提到了Scrum。
1995年,在美国德克萨斯州,奥斯汀举办的OOPSLA上,美国人Ken Schwaber和Jeff Sutherland联合介绍了Scrum。他们在接下的几年里合作,把前辈们的文章,他们的经验,以及业界的最佳实践融合起来,形成我们现在所知的Scrum。
Scrum好像是最早提出的一种敏捷方法,之后又出现了Xp、Crystal、FDD、Lean等等……
现在在中国大陆,Scrum已经成为最流行的敏捷开发方法之一。
Scrum过程
在我看来Srum是一种轻量级的软件过程,它是一个项目管理框架。
它是由一套关于项目的开发流程,开发维护人员沟通方法,各种最佳实践组成的。
一个完整的Scrum流程包括很多个Spint(就是迭代),每个sprint在2到4周不等。
1. 在项目开始时,将所有需要完成的工作列在一个Product Backlog中。
每次Spint时:
1. 召开Sprint计划会议,在会议上产品负责人(Product owner)为Product Backlog中各项功能需求确定优先级。
2. 随后,开发团队“认领任务”,并把这些任务从Product Backlog中挪到Sprint Backlog中去。
3. 每天举行站立会议,参加人员Team Leader和Srum团队,时间尽量短,15分钟即可。每个人回答3个问题:
a) 你已经做了什么?
b) 你即将做什么?
c) 你遇到了什么困难?
会议完后,相关人员可讨论遇到的问题。
4. 一个Sprint结束之后召开Sprint评审会议。会议主要展示本次迭代完成的原型,主要参与者包括所有对该产品感兴趣的人,可以是产品负责人,开发团队,客户等等,时间控制在两小时以内。
5. 召开Sprint回顾会议。会议由产品负责人、团队开发人员和Team Leader参加,总结本次迭代哪些做得好,哪些做得不好,团队在下一次sprint中要如何改进。