`
kidiaoer
  • 浏览: 825367 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Scrum一个轻量级的软件开发方法

阅读更多
Scrum一个轻量级的软件开发方法

Scrum是一个敏捷开发框架,是一个增量迭代的开发过程.。在这个框架整个开发周期由若干个小的迭代周期,每个小的的迭代周期称为一个Sprint,每个Sprint的长度2到4周。在每个Sprint中,Scrum的开发团队拿到一个排列好优先级的需求列表,我们称它为用户故事或者叫Sprint backlog, 所以我们先开发的是对客户具有较高价值的需求。  在每个迭代结束后,都会开发完成可交付的产品。
一个简单的框架

Scrum由三个角色,三种活动,3种交付物组成:

三个角色:

Product Owner

Scrum Master

Scrum Team

三种活动:

the sprint planning meeting

daily scrum meetings

sprint review meetings

3种产物:

the product backlog

the sprint backlog

a burndown chart
一个经历过时间考验的开发过程

Scrum最早由Jeff Sutherland在1993年提出,Ken Schwaber 在1995年OOPSLA会议上形式化了Scrum开发过程,并向业界公布。

之后,Scrum成为领先的敏捷开发方法之一,目前世界上有超过500家公司在使用Scrum。



Scrum的特点:

    * Scrum是一个敏捷的流程,可用于管控研发工作。
    * Scrum是现有设计流程的总结。
    * Scrum以团队为基础,是一种在需求求迅速变化情况下迭代地、增量地开发系统和产品的方法。
    * Scrum是一个控制由利益和需求冲突导致的混乱的流程。
    * Scrum是改善交流并最优化合作的方式。
    * Scrum是一种检测产品开发和生产过程中障碍并将其去除的方式。
    * Scrum是最大化生产率的一种方法。
    * Scrum适用于单一的项目到整个组织。Scrum可以控制并组织多件具有相关性的产品开发以及拥有超过千名开发者和执行者的项目实施过程。
    * Scrum能让每个参与者都对自己所做的工作以及自己做出的贡献感到骄傲,并让他们发挥到最佳水平。





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

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


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


Scrum有3个角色: Product Owner, ScrumMaster, and Scrum Team.

Product Owner的职责:

    * 确定产品的功能。
    * 决定发布的日期和发布内容。
    * 为产品的profitability of the product (ROI)负责。
    * 根据市场价值确定功能优先级。
    * 在30天内调整功能和调整功能优先级。
    * 接受或拒绝接受开发团队的工作成果。

Product Owner参与Scrum planning。

ScrumMaster 作为team leader和Product owner紧密地工作在一起,他可以及时地为团队成员提供帮助。他必须:

    * 保证团队资源完全可被利用并且全部是高产出的。
    * 保证各个角色及职责的良好协作。
    * 解决团队开发中的障碍。
    * 做为团队和外部的接口,屏蔽外界对团队成员的干扰。
    * 保证开发过程按计划进行,组织 Daily Scrum, Sprint Review and Sprint Planning meetings。

ScrumMaster 除了主持Daily Scrum meeting之外,还有三个主要职责:

   1.
      Scrummaster需要知道什么任务已经完成,哪些任务已经开始,哪些新的任务已发现,和哪些估计可能已经发生变化。Scrummaster需要根据以上的情况更新反映每天完成的工作量以及还有多少没有完成的Burndown Chart。
      scrummaster还必须仔细考虑进展中的开放任务数,进展中的工作需要得到最小化,以实现精益生产率的收益。
   2.
      该scrummaster需要找出阻碍 Scrum的障碍和依赖。他们需要的优先次序和跟踪。根据优先级指定计划解决这些障碍。其中有些问题可以在团队内部解决,有些则要团队之间的协调,还有的要管理层的介入来解决,甚至有些是公司的问题阻碍了团队达到他们的生产力。比如:一个电信公司最近实施了Scrum,但后来发现只有两个问题和scrum team有关,其他的全是公司的问题需要管理层关注。
   3.
      最后但并非最不重要, scrummaster可能会注意到,个人问题或冲突在Scrum里是需要解决的。这些都需要被澄清,或通过内部的沟通解决,或向管理层和HR寻求帮助解决。Scrum Master 必须注意去确保团队资源完全可被利用并且全部是高产出的。

Scrum Team:

    * 具有不同特长的团队成员,人数控制在7个左右
    * 确定Sprint目标和具体说明的工作成果。
    * 在项目向导范围内有权利做任何事情已确保达到Sprint的目标。
    * 高度的自我管理能力。
    * 向Product Owner演示产品功能。

Scrum有三个仪式:Sprint规划会,Sprint评审会,Scrum每日站会
Sprint Planning Meeting(Sprint规划会)

根据Product Owner制定的产品或项目计划在Sprint的开始时做准备工作。Product Owner可以是客户或者客户代表或代理。对于产品型的公司,客户就是市场,Product Owner扮演市场代理的角色。一个Product Owner需要一个确定产品最终目标的远景,规划出今后一段时间产品发展的路线图,以及根据对投资回报的贡献确定的产品特性。他要准备一个根据商业价值排好序的客户需求列表。这个列表就是Prodct Backlog,一个最终会交付给客户的产品特性列表,它们根据商业价值来排列优先级。

当为一个Sprint定义好足够多的Product Backlog,并且排列好优先级后Scrum就可以开始了,Sprint规划会是用来细化当前跌打得开发计划的。规划会开始的时候,Product Owner会和Scrum team一起评审版本,路线图,发布计划,及Product Backlog。Scrum Team会评审Product Backlog中功能点的时间估计并确认这些估计尽可能的准确。Scrum Team会根据资源情况看有多少feature可以放在当前的Sprint中。Scrum Team按照优先级的高低来确定开发的先后是很重要的。

当Sprint backlog确定后,ScrumMaster带领Scrum Team去分解这些功能点,细化成Sprint的一个个任务. 这些任务就是细化的来实施这些功能点的活动. Sprint Planning的这个阶段需要控制在4个小时。
Daily Scrum Meeting(每日站会)

一旦计划阶段结束,30天周期的Sprint就开始了。ScrumMaster需要组织团队成员每天开站会. 这个会议是用15分钟的时间来让大家过一下scrum的状态。在会上,每个团队成员需要问3个问题:我昨天做了什么,今天做什么,遇到哪些障碍。谁都可以参加这个会议,但只有Scrum团队成员有发言权。这个会议的目标是得到一个项目的全局观,用于发现任何新的依赖,定位项目成员的要求,实时的调整当天开发计划.
Sprint Review Meeting(Sprint评审会)

在Sprint结束的时候召开Sprint评审会. 这个会议最多不超过4个小时.会议的前一半时间用来演示在这个Sprint中开发的产品功能给Product Owner. Produc Owner会组织这阶段的会议并且邀请相关的利益相关者参加。 业务,市场,技术都要做相关的评审。有Product Owner来决定Product Backlog中的哪些功能已经开发完成 ,还要和Scrum Team及相关的利益相关者讨论下个Sprint中Product Backlog的优先级。下个Sprint的目标在这个时候被确定下来。

会议的下半部分,是由Scrum Master和Scrum Team一起回顾当前的Sprint。团队评估大家在一起的工作方式,找出好的方式以后继续发扬,找出需要做的更好的地方,想办法提升。

Sprint评审会结束后,新一轮的迭代又继续开始,迭代会一直继续,直到开发了足够多的功能去交付一个产品。

  • 大小: 12.7 KB
  • 大小: 3.5 KB
  • 大小: 4.5 KB
分享到:
评论

相关推荐

    Scrum敏捷软件开发方法

    Scrum,源自橄榄球运动中的术语,是一种轻量级框架,用于管理复杂产品开发。它将敏捷的原则转化为具体实践,通过定义角色、工件和事件来促进敏捷开发的实施。Scrum的核心构成包括: - **角色**:产品负责人...

    Scrum敏捷开发方法

    Scrum敏捷开发方法是一种用于软件开发项目的迭代式增量软件开发过程,其核心在于以人为核心,倡导跨功能团队的协作以及产品的持续交付。Scrum方法的提出者是Ken Schwaber和Jeff Sutherland,他们制定的Scrum指南为...

    scrum敏捷软件开发方法介绍

    Scrum是一种广泛使用的敏捷框架,它定义了一种轻量级的过程控制结构,适用于复杂的产品开发。Scrum的核心组件包括Sprint、产品负责人(Product Owner)、Scrum Master和开发团队。其主要特点包括: - **Sprint**:...

    轻量级开发的成功秘诀

    轻量级开发是一种高效、灵活且适应性强的软件开发方法,它强调快速迭代、敏捷响应变化和团队协作。这一概念起源于21世纪初,是对传统重量级开发模式的一种反叛,后者通常涉及复杂的流程、繁琐的文档和严格的计划。轻...

    SCRUM(敏捷开发模式)演讲PPT

    软件过程的重量级与轻量级是软件开发方法论的两种类型。重量级通常指对过程控制较为严格,文档要求全面的方法;轻量级则指更为灵活、效率更高、强调快速迭代和最小化文档的方法。选择合适的软件过程需要根据项目特性...

    Scrum敏捷软件开发

    Scrum是一种轻量级的框架,用于管理复杂的产品或项目开发过程。它强调团队协作、自我组织以及适应性。Scrum的核心组件包括:Scrum Master、产品负责人(Product Owner)、开发团队、产品待办事项列表(Backlog)、冲刺...

    敏捷软件开发之Scrum实践

    Scrum是一种轻量级的框架,用于管理复杂的产品开发过程。它强调的是团队合作、迭代开发和持续改进。Scrum的核心元素包括: - **角色**:包括Product Owner(产品负责人)、Scrum Master(Scrum导师)和Development ...

    01.Scrum 与 Visual Studio 2010 敏捷软件开发平台

    **Scrum** 是一种轻量级的敏捷开发框架,主要用于管理复杂的产品开发过程。其核心理念在于通过一系列短周期的迭代(Sprint)来逐步完善产品。每个Sprint通常持续2-4周,目的是在每次迭代结束时交付可用的产品增量。 ...

    Scrum敏捷开发模式PPT学习教案.pptx

    1. Scrum敏捷开发方法简介:Scrum是一个轻量级的软件开发方法,它通过一个或多个跨职能的小型团队分多个迭代持续增量的交付软件产品。 2. 使用产品Backlog管理产品或项目需求。 3. Sprint计划会分析、讨论和估算得到...

    敏捷游戏开发(Scrum)

    1. **Scrum框架介绍**:Scrum是一种轻量级的项目管理框架,旨在帮助团队有效地管理复杂的产品开发过程。它强调通过迭代的方式逐步构建产品,每个迭代周期称为Sprint。 2. **游戏开发的特点**:相较于传统的软件开发...

    Scrum敏捷软件开发Software.Development.Using.Scrum

    Scrum是一种轻量级的敏捷项目管理框架,特别适用于软件开发领域。它强调团队合作、迭代进展以及适应变化的能力。通过定期检查和调整进度,Scrum帮助团队有效地应对开发过程中遇到的不确定性。 #### 二、书籍介绍及...

    90分钟掌握Scrum框架

    Scrum是管理软件项目的一个轻量级的敏捷方法, 名字来源于橄榄球运动中的scrum 过程 简单,但高度的纪律性 依赖迭代和增量的敏捷方法. Scrum 是一种工作管理的方法,不仅仅限于软件开发,可以用来管理其它活动. Scrum...

    Pro Agile .NET Development with Scrum

    模拟是软件开发中一种强大的测试手段,它允许开发者创建出轻量级的、可预测的测试替身(test doubles)来代替复杂的依赖项。 产品待办事项列表管理: 本书在附录D介绍了如何使用Pivotal Tracker这一工具来管理产品...

    THE SCRUM PRIMER: An Introduction to Agile Project Management with Scrum

    Scrum是一种轻量级的框架,用于管理和控制复杂的产品或项目开发过程。它的核心组成部分包括Scrum团队、Scrum事件、Scrum工件。 1. **Scrum团队**: - **产品负责人(Product Owner)**:负责定义产品需求并确定...

    Scrum中软件缺陷管理方法的研究与应用

    Scrum是一种轻量级的敏捷开发框架,它强调的是团队合作、快速迭代和持续改进。在这个框架下,开发过程被划分为一系列短周期的迭代,每个迭代称为一个Sprint。Sprint通常为2到4周的时间,在这段时间内,开发团队需要...

    Scrum and XP trenches

    Scrum是一种轻量级的框架,用于管理与控制复杂的产品开发过程。它基于迭代和增量开发,强调团队合作、自我组织以及适应性。Scrum的核心组成部分包括: - **Sprints**:固定时间周期(通常为2-4周),在此期间,团队...

Global site tag (gtag.js) - Google Analytics