Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum最初只应用于软件开发,当前Scrum通常被认为是一种用于开发任何产品或管理人和工作的迭代式的,增量的过程。
一、Scrum定义
Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums.
二、Scrum中的两种角色
“猪”角色
猪是全身投入项目和Scrum过程的人; they are the ones with “their bacon on the line.”
产品负责人代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写用户故事,排出优先级,并放入产品订单。Scrum主管(或促进者)促进Scrum过程,他的主要工作是解决那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。Scrum主管确保Scrum过程按照初衷进行。Scrum主管是规则的执行者。开发团队是负责交付产品的团队。由5至9名具有跨职能技能的人(设计者,开发者等)组成小团队来完成实际的开发工作。
“鸡”角色
鸡角色并不是实际Scrum过程的一部分,但是必须考虑他们。使用户和利益相关者参与到过程中是敏捷方法的一个重要实践。“鸡”角色参与每一个冲刺的评审和计划,并提供反馈,对于Scrum过程来说是非常重要的。
用户软件是为用户而创建的,就像“假如森林里有一棵树倒下了,但没有人听到,那么它算发出了声音吗”,“假如软件没有被使用,那么它算是被开发出来了么?”利益所有者(客户,提供商)是影响项目成功与否的人,他们只直接参与到冲刺评审的过程中。经理是为产品开发团体架起环境的那个人。
三、Scrum术语
- 产品负责人 Product Owner: 负责维护产品订单的人,代表利益相关者的利益。
- Scrum主管 Scrum Master: 为Scrum过程负责的人,确保scrum的正确使用并使得Scrum的收益最大化。一般不翻译。
- 开发团队 Team: 由负责自我管理开发产品的人组成的跨职能团队。
- 产品列表 Product Backlog:根据用户价值进行优先级排序的高层需求。
- 冲刺订单 Sprint Backlog:要在冲刺中完成的任务的清单。
- 产品增量 Increment:最终交付给客户的内容
- 计划会 Sprint Planning Meeting:在每个冲刺之初,由产品负责人讲解需求,并由开发团队进行估算的计划会议。
- 每日立会 Daily Standup Meeting:团队每天进行沟通的内部短会,因一般只有15分钟且站立进行而得名。
- 评审会 Review Meeting:在冲刺结束前给产品负责人演示并接受评价的会议。
- 反思会/回顾会 Retrospective Meeting:在冲刺结束后召开的关于自我持续改进的会议。
- 冲刺 Sprint: 一个时间周期(通常在2周到1个月之间),开发团队会在此期间内完成所承诺的一组订单项的开发。
四、Scrum开发流程
- 首先产品经理(产品团队)把需要上线的产品特性做成产品需求列表(Prodcut Backlog),由产品经理(产品团队)基于产品整体战略、目标、业务价值、实现难度等因素甄选出优先级较高的项目,交个整个团队进行讨论。
- 召开迭代规划会议,研发团队、产品经理和开发团队负责人(Scrum Master)讨论用户故事的优先项,且决定本次次迭代要研发的需求项。并由开发团队负责人开展可行性评估和工时评估,确定迭代的需求排期,形成迭代需求列表(Sprint Backlog)。
- 会议结束后,团队中的每个成员需要对每个用户故事有深刻的理解。团队负责人根据需求拆分相应的子任务,分配相应的开发成员执行,并评估相应的工时。
- 研发团队要在一到三周的时间里开发完成迭代需求列表中的需求,在迭代中,每日站会用于团队来交流他们做完了什么,正在做什么,以及遇到的问题,及早发现风险。
- 每次迭代的产出都是一个可以发布的产品版本,在迭代结束前,会进行迭代评审会(Sprint Review Meeeting),由研发团队向产品经理做案例演示并接受评价。产研团队根据整个迭代需求的完成情况和缺陷处理情况,最终决定整个产品是否上线,也可以在发布前增加新功能。确认上线后,由运维进行上线环境部署,正式上线。
- 在迭代结束时,产品和开发会举行迭代回顾会(Sprint Retrospective Meeeting),团队一起思考工作中可以改进的地方,制定改进措施。每次迭代都需要进行这样的会议,来不断改进产品的质量。
- 最后,产品团队在产品功能上线后,持续收集用户的反馈,分析数据形成新的用户故事,进入下一次迭代。
延伸阅读
Scrum工具推荐
- PingCode
- ActiveCollab
- easyBacklog
- Infinity
- VersionOne
- QuickScrum
- Nutcache
- Smartsheet
文章标题:什么是scrum,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34001