2015年
1月
7日
敏捷开发及scrum简介
主要介绍敏捷开发流程以及scrum的概念介绍
一、敏捷开发
我们比较熟知的软件项目管理方法是瀑布。其基本流程是需求-> 设计->开发->测试。基本假设只要把每一个环节都做正确,那么最终得到的结果也是正确的。瀑布开发有非常成功的案例,比如微软。但从总体来讲,瀑布项目失败率比较高。国外的软件先行者们针对瀑布开发中暴露出来的问题进行了一系列的探索、思考和总结,最终提出了Agile的概念,中文翻译为敏捷开发。敏捷开发有很多种方式,其中scrum是比较流行的一种。
二、scrum
2.1 scrum里面的角色
scrum由product owner(产品经理)、scrum master和team(研发团队)组成。
- 其中product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
- scrum master 负责召开各种会议,协调项目,为研发团队服务。
- 研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
2.2 迭代开发
与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。
2.3 scrum的基本流程
scrum的基本流程如上图所示:
- 产品负责人负责整理user story,形成左侧的product backlog。
- 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
- 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,最终每个任务都有明确的负责人,并完成工时的最初估计。 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
- 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
- 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。