当前位置: 首页 > news >正文

scrum 开发模型

一 什么是Scrum?

    Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。

    Scrum的基本假设是:

    开发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专案成功。Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。

    Scrum 开发流程通常以 30 天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于 30 天后交付成果,团队每天用 15 分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。

    二 Scrum较传统开发模型的优点

    Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。下面的图片使用传统的软件开发模型(瀑布模型、螺旋模型或迭代模型)。随着系统因素(内部和外部因素)的复杂度增加,项目成功的可能性就迅速降低。

    
    下图是Scrum模型和传统模型的对比:

    
    三 Scrum模型

    一) 有关Scrum的几个名词

    backlog: 可以预知的所有任务, 包括功能性的和非功能性的所有任务。

    sprint:一次跌代开发的时间周期,一般最多以30天为一个周期.在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。

    sprint backlog:一个sprint周期内所需要完成的任务。

    scrumMaster: 负责监督整个Scrum进程,修订计划的一个团队成员。

    time-box: 一个用于开会时间段。比如每个daily scrum meeting的time-box为15分钟。

    sprint planning meeting: 在启动每个sprint前召开。一般为一天时间(8小时)。该会议需要制定的任务是:产品Owner和团队成员将backlog分解成小的功能模块, 决定在即将进行的sprint里需要完成多少小功能模块,确定好这个Product Backlog的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。

    Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向ScrumMaster汇报三个项目:今天完成了什么? 是否遇到了障碍? 即将要做什么?通过该会议,团队成员可以相互了解项目进度。

    Sprint review meeting:在每个Sprint结束后,这个Team将这个Sprint的工作成果演示给Product Owner和其他相关的人员。一般该会议为4小时。

    Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为3小时。

    二)实施Scrum的过程简单介绍

    1) 将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。

    2) 召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。

    3) 进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。

    4) 整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner.

    5) 团队成员最后召开Sprint retrospective meeting,总结问题和经验。

    6) 这样周而复始,按照同样的步骤进行下一次Sprint.

    整个过程如下图所示
     

转载于:https://www.cnblogs.com/wblade/archive/2010/09/28/1837246.html

相关文章:

  • Win2003 AD迁移至Win2008 R2 AD 2
  • EXTjs 同时支持文件上传和图片上传的htmleditor
  • ITIL管理系列之文档管理
  • dos cmd xp 有用的命令
  • B3log Solo 0.1.0 发布了!
  • 用户界面设计和用户体验设计的区别
  • 如何调试MFC中的内存泄漏
  • 80后的你如果懂得这些,那么你就长大了!
  • 网站流行色
  • 编码相关
  • 煤矿监控
  • 篮球飞人火爆版
  • 在域控上如何批量的增加用户
  • 2010年10月blog汇总:敏捷练习和建模
  • java 的万年历代码
  • python3.6+scrapy+mysql 爬虫实战
  • [译]如何构建服务器端web组件,为何要构建?
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • CentOS从零开始部署Nodejs项目
  • codis proxy处理流程
  • GitUp, 你不可错过的秀外慧中的git工具
  • Js基础知识(四) - js运行原理与机制
  • log4j2输出到kafka
  • ng6--错误信息小结(持续更新)
  • Python打包系统简单入门
  • react 代码优化(一) ——事件处理
  • Spring Cloud中负载均衡器概览
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • windows-nginx-https-本地配置
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 后端_ThinkPHP5
  • 译有关态射的一切
  • 原生Ajax
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • (2020)Java后端开发----(面试题和笔试题)
  • (3)nginx 配置(nginx.conf)
  • (9)目标检测_SSD的原理
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (论文阅读40-45)图像描述1
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法设计与分析)第一章算法概述-习题
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)Mysql的优化设置
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)程序员技术练级攻略
  • (转)创业的注意事项
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net CoreRabbitMQ消息存储可靠机制