Scrum框架

最近发现很多地方都用 Scrum 框架来管理软件开发项目,那么什么是 Scrum 框架呢,它有什么用并且如何使用呢?下面让我一一讲讲自己的理解。

两张好图

结合图说说

在做软件开发的时候,一开始总是会有一些想法,我们把这些想法统一放到一个地方,也就是product backlog(代办列表)。这里面有一个人对这里面的所有条目负责,这个人就叫做product owner。有了这些条目和产品负责人后,我们可以进入到我们的迭代,也就是我们的sprint,注意,在进入sprint之前,我们的product backlog里还是会有准备好的至少一个sprint的内容。

在进入sprint后呢,第一个事情,就是开一个sprint planning,在这个计划会中有两件重要的内容,一个就是我们在这个sprint里要做什么,一个就是这些条目如何实现。我们会从product backlog中选择一些条目放进sprint planningsprint planning结束后,我们会有两个输出: 一个输出是这个 sprint的目标(sprint goal),一个就是白板(sprint backlog)。一般的白板会包括TO DO, DOING, DONE几个部分。

有了这个sprint backlog后,开发团队每天会对着这个这个白板进行daily scrum,在daily scrum上,每个成员要回答三个问题,即昨天我做了什么帮助团队实现sprint目标,今天我准备做什么帮助团队实现sprint目标,还有在这中间有没有遇到什么问题或者障碍。

随着sprint一天一天的进行,团队最后有一个产出物,叫做increment(产品增量)。产品增量的含义是,我们从 product backlog中取出了几个条目,这几个条目已经被完全实现了,产生了最后的产品增量。

有了产品增量后,我们会在sprint review中,去对交付内容(产品增量)进行反馈,sprint review主要是对产品进行反馈。sprint review结束后,我们还有一个sprint retrospective,整个团队会回顾整个sprint哪些地方做的好或不好,主要是团队对自己的工作流程工作方法进行反馈。

这里面注意,进行sprint的人叫做development team,而组织整个scrum的,则称为scrum master

总结

现在我们可以看到,scrum的元素已经基本呈现出来了:

  • product backlog, sprint backlogincrement三个工件
  • product owner, development teamscrum master三个角色
  • sprint, sprint planning, daily scrum, sprint reviewsprint retrospective五个事件
  • Openness, Courage, Commitment, Respect, Focus, 即开放、勇气、承诺、尊重、专注是五个价值观

以上就是Scrum框架的全部内容,举个例子让我们再完整的看一下: 从一开始有 product backlog,我们从中选取了几个条目放入 sprint planning, 在 sprint planning 对他进行拆分,形成 sprint backlogsprint goal。有了 sprint backlog 后,团队每天会进行 daily scrum。在这个过程中,整个团队会不断进行,最终会生成产品增量 increment,产品增量会进入我们的 sprint review,而sprint review 最关键的则是对我们的产品进行反馈,反馈又会体现在一开始的 product backlog 里。

Q: 我发现了,scrum framework 是一个反馈的框架,那么反馈都体现在哪里呢?

A: 好问题。daily scrum 是一个每天的反馈,sprint scrum 是一个对产品的反馈,sprint retrospective 是对工作方法和工作流程的反馈, 主要体现在这三个地方。

comments powered by Disqus