1.解释
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。而敏捷开发有很多种方式,其中scrum是比较流行的一种。
2.特性
Scrum是一个包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括:
Scrum Master是Scrum教练和团队带头人,确保团队合理的运作Scrum,并帮助团队移除实施中的障碍;
产品负责人(Product Owner),确定产品的方向和愿景,定义产品发布的内容、优先级及交付时间,为产品投資報酬率(ROI)负责;
开发团队(Team),一个跨职能的小团队,人数5-9人,团队拥有交付可用软件需要的各种技能。
在每一次冲刺(一个15到30天的周期,其长度由开发团队决定)当中,开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的功能来自产品订单(product backlog)。产品订单是按照优先级排列的要完成的工作的概要的需求,哪些订单项会被加入一次冲刺将由冲刺计划会议决定。 在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。
管理Scrum过程有很多实施方法,从即时贴、白板,一直到软件包。Scrum最大的好处之一是它非常容易学习,而且启动Scrum应用并不需要太多的投入。
3.角色设定
- 产品负责人(Product Owner)
- 确定产品的功能和完成时间;
- 对产品的收益负责;
- 根据市场需求确定产品功能的优先级;
- 在每个Sprint开始之前,可以修改功能需求和优先级;
- 有权决定接受或否决各Sprint的工作成果。
- Scrum Master
- 负责监督整个Scrum项目进程,调整项目计划
- 确保开发团队成员的能力能够胜任产品的开发;
- 促进团队中不同角色的成员间充分交流和沟通,并负责为项目的进行扫除障碍;
- 保证开发团队不受外力的干扰和阻挠;
- 掌握产品开发进度,参与每日Scrum会议、Sprint计划会议和Sprint评审会议。
- Scrum Master最经常的情况就是由过去的项目组长(Team leader)来担当。
- 开发团队
一般由5-10个能全职工作的成员组成较为理想;团队成员横跨各个职能,通常包含开发,测试,文档设计人员等等。
4.过程
5.相关介绍
迭代计划会(Sprint Planning Meeting) :在每个Sprint开始之前,需要召开Sprint计划会议,一般为4至8个小时。参加人员有产品责任人、Scrum Master、Scrum团队和其他感兴趣的人,比如管理层人员和客户代表。Product Owner从产品Backlog中挑选优先度高的任务,并与Scrum团队一起决定在这个Sprint中需要完成多少功能;Scrum团队将这些任务分解成小的功能模块; Scrum团队成员详细讨论如何能按需求完成这些功能模块,并估计完成每个功能模块所需的大概时间。
每日例会(Daily Stand-up Meeting):既团队每日例会,条件允许的话,每天都应该在同样的时间和地点,所有成员站立着举行。由于是站立的状态开会,因此时间比较短,一般为15分钟左右。这个会议最好是在每天的早晨开,有利于团队成员们安排好当天的工作计划。只有团队成员可以在每日Scrum会议上发言,其他人员如果对项目进度有兴趣也可以参加,但只能旁听而不能发言。
会议由Scrum Master主持,Scrum团队的所有成员轮流回答上图中的三个问题,即:
- 昨天我完成了什么工作;
- 今天我打算做什么;
- 我遇到了什么障碍。
通过这三个问题,团队成员之间可以彼此相互熟悉工作内容,充分了解项目进度,相互帮助解决问题。Scrum Master除了倾听团队成员的发言外,他还有责任设法解决团队成员在会上提出的困难,尽快扫除阻碍他们工作的障碍。即使有的问题Scrum Master没有能力解决,例如某些技术细节问题等,他也应该找到团队中或其他团队的来帮助快速的解决问题。另外,还有两点需要注意的地方:其一,这是团队成员之间的交流,也是相互的承诺,并不是用来向老板汇报工作进度的;其二,这也不是一个专门用于解决各种问题的会议,成员们遇到的问题可以在会上提出来,而有能力解决这些问题的人可以在会后帮助他们解决问题。
Sprint评审会(Review Meeting):Sprint结束时召开;由开发团队展示这个Sprint中完成的功能;长度为两个小时左右;不需要PPT;一般是已完成的功能的Demo; 谁都可以参加:客户、管理层、Product Owner、其他开发人员等等。 在每个Sprint结束时,应该组织一个Sprint评审会议。Scrum开发团队将在会上展示他们在这个Sprint中所做的工作。一般采用向大家演示产品新功能的方式来展示。 相对来说,Sprint评审会议不必很正式。通常不需要用到PPT幻灯片,而且长度最好控制在两个小时之内。也就是说,不要让Sprint评审会议成为Scrum团队的负担,他们不必花太多时间来准备这个会议。 Sprint评审会议的参与者,可以包括所有对该产品感兴趣的人:产品责任人,Scrum团队,利益相关者,管理层人员,客户,甚至来自其他项目的开发人员等等。
在Sprint评审会议上,Scrum团队用Demo的形式展示产品的新功能之后,与会人员依据在Sprint计划会议上确定的本Sprint的目标来评审具备了这些新功能的产品。