敏捷开发框架Srum实例
2016-01-21 22:09
316 查看
一、Scrum 简介
1.1 Scrum 定义
Scrum是跨职能团队以迭代、增量的方式开发产品或项目的一种开发框架。在这个框架中人们可以解决复杂的自适应问题,同时也能高效并有创造性地交付尽可能高价值的产品。它不是产品开发的一种流程或者技术,而是一个框架,在这个框架里可以应用各种流程和技术。Scrum能使产品管理和开发实践的相对功效(relative efficacy)显现出来,以便进行改进。(《Scrum权威指南》)1.2 Scrum特点
Scrum总体特点就是快,迭代式开发,迭代周期在4周以内。灵活多变,依据项目的特点以及项目中遇到的问题,不断改进项目流程和优化人员合作交流效率,在混乱中寻找有序,让每一个人发挥最大的价值,具体如下:(个人理解,具体可参加《Scrum理论与实践的轻量级指南》)迭代开发,周期短且不可改变
敏捷开发,最短时间交付最有价值的部分
经验开发,开发流程根据经验不断调整和优化
以人为本,责任感和主人翁意识
1.3 Scrum理论
Scrum基于经验型流程控制理论,或者称为经验主义。经验主义主张知识源于经验,而决策基于已知的事物。Scrum采用迭代增量式的方法来优化可预测性和管理风险。透明性、检视、调整是经验型流程的三大支柱,支撑起每个经验型控制流程的实施。(《Scrum权威指南》)
透明性
流程中的关键环节必须为那些对产出负责的人可见。要拥有透明性,就要为这些关键环节制定统一的标准,这样所有留意这些环节的人都会对观察到的事情有统一的理解。
检视
Scrum的使用者必须经常检视Scrum的工件和完成Sprint目标的进度,以发现不必要的偏差。检视不应该过于频繁而阻碍了工作本身。当熟练的检视者认真履行检视工作时,效果最佳。
调整
如果检视者发现流程中的一个或多个方面背离了可接受的标准,并且将会导致产品不合格时,就必须对流程本身或者流程化的内容进行调整。调整工作必须尽快实施以最小化进一步的偏差。
Scrum指定了进行检视和调整的4个正式事件,将在“Scrum事件”一节中详细描述:
Sprint计划会议
每日Scrum站会
Sprint评审会议
Sprint回顾会议
1.4 Scrum团队
产品负责人 开发团队 Scrum Master
1.5 Scrum 事件
Sprint计划会议Sprint计划会议的目的就是要为这个Sprint的工作做计划。这份计划是由整个Scrum团队共同协作完成的。
对于周期为一个月的Sprint,计划会议的时限为8小时。对于较短的Sprint,会议时间通常会缩短。Scrum Master要确保会议顺利举行,并且每个参与者都明白会议的目的,同时还要教导大家遵守时间盒的规则。
Sprint计划会议要解决以下两个问题:
接下来的Sprint交付的增量中要包含什么内容?
要如何完成交付增量所需的工作?
每日Scrum站会
每日Scrum站会是以15分钟为限的事件,开发团队成员在这里分享各自的工作情况,并为接下来的24小时制定计划。这需要检视上个每日站会以来的工作和预测下个每日站会之前所能完成的工作。每日站会在同一时间同一地点进行来降低复杂度。会议上,每个开发团队成员都需要说明:
昨天我为开发团队达成Sprint目标做了什么
今天我准备如何帮助团队达成Sprint目标
有什么事情阻碍了我帮助团队达成Sprint目标
Sprint评审会议
Sprint评审会议在Sprint结束时举行,用以检视所交付的产品增量并按需调整产品待办事项列表。在Sprint评审会议中,Scrum团队和相关干系人讨论Sprint中完成的工作。然后,根据完成情况和Sprint期间产品待办列表的变化,与参会人员讨论接下来可能要做的事情来优化价值。这是一个非正式会议,而不是一个进度汇报会议,演示增量的目的是为了获取反馈并促进合作。
对于周期为一个月的Sprint,评审会议的限时为4小时。对于时间少于一个月的Sprint来说,会议的长度会有所缩短。Scrum Master要确保会议顺利举行,并且每个参与者都明白会议的目的,同时还要教导大家遵守时间盒的规则。
Sprint评审会议包含以下内容:
产品负责人邀请Scrum团队以及相关干系人参加会议
产品负责人说明哪些工作“完成”了,哪些工作没有“完成”
开发团队讨论在Sprint中哪些工作进展顺利、遇到了什么问题、问题是如何解决的
开发团队演示完成的工作并解答关于所交付增量的问题
产品负责人描述当前产品待办列表的完成情况,并根据进度推测可能的完成日期(如果有需要的话)
参会的所有人就下一步的工作进行探讨,这样,Sprint评审会议就能为接下来的Sprint计划会议提供有价值的信息。
评审市场或者潜在的产品使用方式所带来的接下来要做的最有价值的东西的改变
为下个产品版本的发布评审时间表、预算、潜在功能和市场
Sprint回顾会议
Sprint回顾会议是Scrum团队检视自身并创建下个Sprint改进计划的机会。
Sprint回顾会议发生在Sprint评审会议结束之后,下个Sprint的计划会议之前。对于长度为一个月的Sprint,会议限时为3小时。对于较短的Sprint,会议时间通常会缩短。Scrum Master要确保会议顺利举行,并且每个参与者都明白会议的目的,同时还要教导大家遵守时间盒的规则。Scrum Master作为Scrum流程的监督者,也需要作为团队的一员参加该会议。
Sprint回顾会议的目的是:
对前一个Sprint周期中的人、关系、过程和工具进行检视
找出做得好的和潜在需要改进的主要方面,并进行排序
制定改进Scrum团队工作方式的计划
1.6 Scrum工件
产品待办列表 Sprint待办列表
二、项目介绍
当前我们从事的是一个互联网产品(某某安卓模拟器),该产品符合大众级的互联网产品特征,快速开发、不断迭代,用户体验驱动开发。当前从事该项目的人员较少同时团队组建十分年轻。人员组成如下:产品策划一人:负责用户问题收集、竞品分析、以及研发遗留问题的评估,同时兼任测试。
产品经理一人:负责项目管理、Sprint任务的制定、项目的跟进、产品发布风险评估。
测试二人: 负责产品测试
研发三人:1人负责UI设计开发、1人Android系统开发、1人虚拟机开发
UI设计运营等(包括社区的开发)复用其他项目成员。
三、项目流程
3.1 项目管理工具
禅道:bug管理 白板:Sprint每日进度跟踪
3.2 项目流程
整个项目流程基本符合Scrum开发框架;不同的是我们没有一个严格的产品负责人,而是采用的两个产品人员,一个专心与需求分析、一个专心与项目的跟踪和风险的评估。整个团队运行较为流畅,但由于OEM版不断打断主板本的开发,主板本出现过项目延期的情形,但平均保持在4周出一个版本的进度。
流程不详解了,具体如下图(其中Sprint评审会议和回顾会议未能做有效的区分,二者合二为一,待改进):
项目开发流程图
相关文章推荐
- php初学第一课
- java笔记
- hadoop - hadoop2.6 伪分布式 - eclipse 中 配置 和 示例 wordcount
- 最短寻道时间优先算法(SSTF)
- 软件工程知识体系
- Android Material Design之Toolbar与Palette实践
- [LeetCode328]Odd Even Linked List
- 第二百九十四天 how can I 坚持
- Mat转换为QImage
- java nio对OP_WRITE的处理解决网速慢的连接
- 安卓笔记
- CSS格式化排版
- Java [Leetcode 107]Binary Tree Level Order Traversal II
- php 实现 mysql数据表优化与修复
- 处事智慧
- 【BZOJ】3339 - Ⅲ - 变式Ⅱ+变式Ⅲ
- 学习Slim Framework for PHP v3 (一)
- docker安装与启动
- 字符设备控制
- andriod APP