敏捷开发流程之Scrum:3个角色、5个会议、12原则

本文主要从Scrum的定义和目的、敏捷宣言、Scrum中的人员角色、Scrum开发流程、敏捷的12原则等几方面帮助你们理解Scrum敏捷开发的全过程。程序员

1、Scrum的定义和目的

Scrum是一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程,目的是让开发人员像打橄榄球同样迅猛并充满激情,经过团队合做,提升工做效率。经过团队间的有效交互,为企业创造价值。网络

2、敏捷宣言

其实,在发表《敏捷宣言》以前,不少的敏捷实践都已经存在且使用了,好比:Scrum、XP、KanBan等。之因此发表《敏捷宣言》,是由于这些实践都是在单打独斗地推动敏捷开发,而不是以一个联合体的形式,且没有一个统一的指导方针。因此17位敏捷联合创始人决定发表《敏捷宣言》,共同在全世界推动敏捷开发运动。下面是敏捷宣言的4句话:架构

3、Scrum中的人员角色

3个角色

Scrum中的人员分为3个角色:产品全部者(Product Owner), Scrum Master,开发团队(Team)。框架

  • 产品全部者:定义全部产品功能,决定产品发布的内容以及日期,对产品的投入产出负责,根据市场变化对须要开发的功能排列优先顺序,合理地调整产品功能和迭代顺序,认同或者拒绝迭代的交付。
  • ScrumMaster :ScrumMaster不是项目经理,他没有分配任务的权力,没有考核的权力,没有下命令的权力,他指导项目组的成员按照Scrum的原则、方法作事情,领导团队完成Scrum的实践以及体现其价值,排除团队遇到的困难,确保团队胜任其工做,并保持高效的生产率,使得团队紧密合做,使得团队我的具备多方面职能的工做能力,保护团队不受到外来无故影响。
  • 开发团队:经典团队拥有 5-9 人,团队成员包含程序员、测试员、用户体验设计等等,团队关系在一个迭代中应该是固定的,我的的职能能够在新迭代开始时发生调整,团队自我组织和管理(自组织,自驱动),团队成员都全职工做。

4、Scrum的开发流程

(图片源自网络)测试

不一样于瀑布模型将开发过程划分为需求、设计、编码、测试等阶段,Scrum将整个开发过程分为屡次迭代(称为Sprint,冲刺),通常为期2~4周,最多见的为2周。Scrum并不是以一段时间集中完成一个过程,而是将全部过程当中必须的每一部分集中在这段时间内完成。需求、设计、编码、测试、上线都必须在一个迭代中完成,每一个迭代必须产生一个能够工做的软件。编码

4.1 五个会议

Scrum 整个开发过程分为五个会议:设计

1)待办事项整理会议(Backlog Grooming Meeting)blog

迭代计划会议开始以前3天召开,Product Owner与Scrum Master必须参加,关键开发者或架构师须要参加;时间控制在30分钟到1小时。排序

由Product Owner将一批但愿团队在下次迭代时实现的用户故事,按照实现顺序描述给在场的团队成员,Scrum Master与在场成员分析用户故事,明确指出团队认为需求不明确的地方,Product Owner现场记录,会后补全,Scrum Master与架构师,还有在场成员分析用户故事须要包含哪些技术任务,Scrum Master先把子任务创建,方便迭代计划会议的时候团队能够更准确地预估任务故事点。图片

会议结束时,Product Owner确保在迭代计划会议开始以前团队提出的问题都能被解决,会议重点若是团队发现须要增强或是完善的地方,Product Owner还有两到三天的时间能够补强,而不是浪费迭代计划会议的时间去作这件事情。

2)迭代计划会议(Sprint Planning Meeting)

产品负责人创建产品功能列表(Product Backlog)。产品功能列表是一组条目化需求,它必须从客户价值角度描述,并按优先级排序。

Scrum Master召集相关人员召开迭代计划会,迭代计划会在每一个迭代第一天召开,目的是选择本次迭代的Backlog和估算本次迭代的工做量。

产品负责人逐条讲解最重要的产品功能,开发团队共同估算Backlog所需工做量,直到本迭代工做量达到饱和。产品负责人参与讨论并回答和需求相关的问题,但不干扰估算结果。队员认领任务(或由组长协商分发),独立或与别人一块儿完成任务;会议时间控制在1-2小时内。

3)每日站会(Standup Meeting)

团队内部利用每日立会来沟通进度,15分钟结束,开发团队利用燃尽图来展现总体进度;如无特殊缘由,迭代期内无变动,在每日站会上团队成员须要回答如下3个问题:

  • 昨天你作了什么?
  • 今天你将要作什么?
  • 你有须要帮助的地方吗?

这些都是团队成员的彼此承诺。

4)评审会(Retrospective Meeting)

小组向产品负责人展现迭代工做结果,产品负责人给出评价和反馈。以用户故事是否能成功交付来评价任务完成状况。整个团队都须要参加,ScrumMaster、产品全部者、团队,可能还有客户,时间控制在1-2小时内。

5)反思会(Retrospective Meeting)

在每一个迭代后召开简短的反思会,总结哪些事情作得好,哪些事情作得很差。作得好的保留,很差的摒弃。会议得出这样的结论:开始作什么、继续作什么、中止作什么,通常控制在15-30分钟。

Scrum是一套开发流程,是敏捷的一种,实施主要仍是看人,强调是自组织、自驱动的,只有不断的在实际应用中仔细体会,才能理解Scrum的真谛,把Scrum用好。

4.2 12原则

下面给出敏捷开发的12原则,这12原则做为敏捷开发对于软件开发流程的指导性纲领,也是对敏捷宣言进行了具备实际操做意义的解释,但愿你们在实际应用中仔细体会。

咱们遵循如下准则:

  • 咱们的最高目标是,经过尽早和持续地交付有价值的软件来知足客户。
  • 欢迎对需求提出变动——即便是在项目开发后期。要善于利用需求变动,帮助客户得到竞争优点。
  • 要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
  • 项目过程当中,业务人员与开发人员必须在一块儿工做。
  • 要善于激励项目人员,给他们以所须要的环境和支持,并相信他们可以完成任务。
  • 不管是团队内仍是团队间,最有效的沟通方法是面对面的交谈。
  • 可用的软件是衡量进度的主要指标。
  • 敏捷过程提倡可持续的开发。项目方、开发人员和用户应该可以保持恒久稳定的进展速度。
  • 对技术的精益求精以及对设计的不断完善将提高敏捷性。
  • 要作到简洁,即尽最大可能减小没必要要的工做。这是一门艺术。
  • 最佳的架构、需求和设计出自于自组织的团队。
  • 团队要按期检讨如何可以作到更有效,并相应地调整团队的行为。

做者:史文帅

来源:宜信技术学院

相关文章
相关标签/搜索