`
liano
  • 浏览: 25369 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
Scrum 摘要
Scrum 理论是基于一个国外的学科,叫《过程动态学,建模及控制》,什么意思呢?过程控制方法有两种:预定义过程控制和经验性过程控制。预定义过程就是在执行之前先要制定详细的计划,然后严格按照计划执行,这种控制方式在过程比较简单的情况下比较适用,但是如果过程不可能预测的非常详尽的话,预定义过程就显得力不从心,这时候“经验过程控制”就更合适于过程控制。
经验过程控制讲究“检查”和“调整“,就是在执行过程中不断的检查是否出现问题然后根据实际情况来调整过程的执行。
这两种过程各有优缺点。
预定义过程在当今软件业仍然有着广泛的应用,为什么呢?就是因为预定义过程可以在项目开始之前就能给出大概的项目预算和风险评估,这样投资人才可能放心的投资项目。当然它的弊端就是应对变化的风险很差,尤其在于软件开过程中,变化是不可避免的,很多情况是不可预知的,所以预定义过程在这种情况下就显得力不从心。
下面谈谈scrum如果用经验过程控制来进行项目管理。
典型的瀑布式项目的分工一般是:项目经理,team lead, developer, 需求分析员,系统构架师,测试人员。往往测试人员、需求分析人员和开发人员在不同的team,之间通过书面的交流,这是典型的预定义开发方式。


Scrum的角色和职责:
Scrum角色有team,scrum master和product 负责人
Scrum Master:负责组织team进行开发,对team进行指导和观察,对出现的问题进行纠正。Scrum Master不是项目经理,不能对team下命令,只能提供指导。另外,scrum master要阻止team以外所有干扰team 工作的因素,所以scrum master 被比作“牧羊犬“,保护羊群并且指导羊群的方向。
Team: 负责需求分析和开发工作,所有工作都自行组织。
产品负责人:负责提出需求和排列需求的优先级。

Scrum 的principles:
1.“The art of possible”
   “可能性的艺术”是scrum一个显著的原则,它强调人们想事情的时候不应该把注意力集中在“不能做的事情”,而是应该把注意力放在“什么事情可以做或者可能做”,不要被诸多的不确定性因素所困扰,先做可以做的,然后看有什么新的发现,有什么新的思维出现。这完全是基于经验过程控制理论

2. Self-Organization
Team自行决定开发和解决问题的方法,因为没有人比team自己更了解他们的系统。
而且这种team自组织的方式,相比较manager派发任务而言,能够使团队士气高涨,让队员有更多的责任感。
另外就是让开发工作变成一件有趣的事情。

3. communication
scrum强调沟通,团队在工作过程中要随时可以进行面对面的及时有效的沟通,反对团队内部文档沟通的方式,一切沟通障碍都要被去除。
比如传统公司之间的隔间,非常严重的阻碍了交流,应除去。

4.daily visibility into the project
经验过程控制的基础就是让项目透明,让问题浮现,因为这样才能够进行检查和调整。
所以每天都要有站立会议供大家来交流问题。
另外就是velocity chart和burn up(down)chart来显示速度和项目进度。
5.incremental product delivery
基于“art of possible”, scrum会在每个迭代周期完成可以完成具有高优先级的需求,从而实现每个迭代都可以deliver business value。这样客户就可以递增的拿到可用的产品,从而可以进一步提出更加现实可用的需求。
其实每一个iterative development都可以deliver 业务功能,但是没有特别的强调,只是scrum严格强调这一点。因为它是基于经验过程理论的自然的产物。

Scrum 相对于传统开发方式的values:
1.迭代交付让客户在项目完成以前就可以拿到可使用的产品,增加了客户满意度、项目成功的几率和后续需求提出的准确性。
尤其是抵御变化的能力较强。
2.“art of possible”可以让项目尽快启动,并且快速出成果。
3.“daily visibility”可以把项目的问题有效的呈现出来,有利于及时的解决问题。
4.self-organization有利于激发团队士气,让最了解系统的人做正确的事情。

Scrum的各个环节:
1.quick start
任何项目开始的时候投入的资源都比较少,对于scrum,一般会有2到3个人,包括dev,BA来开始对项目进行分析,找到master stories。
2.前期分析结束后,会投入更多的dev来进行开发,并且有每日的简会。简会的价值就在于:检查和调整,检查进度是否一致,是不是出现了新的问题,然后调整下一步的工作, 而不是简单的向scrum master汇报工作。
3.dev开发story的同时,BA做新的story卡。
4.新卡做好以后,由客户根据业务需要来排列优先级
5.而后组织dev对story card进行工作量的评估,不是以人天为单位,而是以point。
4.开发过程大多采用XP,XP和scrum配合的相当好
5.每个迭代结束的时候要向客户展示产品。

Scrum开发方式面对定价项目的竞标
1.客户可以在任何一个迭代结束的时候停止项目,仍然可以得到可以上线的产品。
2.scrum 对于变化的抵御能力较强,任何一个迭代开始之前,客户都可以修改需求,而且无需付费,这在定价合同的竞标上有很大优势。
Scrum在实施过程中通常会遇到的问题
1.scrum的实施必须以公司的企业文化为背景,必须和企业文化相融合,否则很难成功。
2.没有人能绝对预测以后会发生什么事,尤其是情况不明的时候。
所以在每一个迭代做estimation的时候,预估不准确是正常现象,尤其是在前几个迭代。
3.很多情况下,在业务功能开始实现之前会做一些基础设施的建设,这些工作在前几个iteration会占较大比重,而且优先级比较高,但是同时,每个迭代也要进行业务功能的发布,
因为基础设施需要实际的业务功能来验证其正确性。

Reference
《scrum 敏捷项目管理》by Ken Schwaber
《Agile Software Development With Scrum》by Ken Schwaber and Mike Beedle
http://www.scrumalliance.org

分享到:
评论
2 楼 stone0660 2009-10-01  
谢谢你的文章,简洁明了。让我快速了解了scrum的概要。
1 楼 bingkuaiaj 2008-12-27  
恩,很好,解决了我当下的困惑。

相关推荐

    从零开始—敏捷SCRUM在软件企业中的成功推行历程

    摘要简介:本文取自真实的敏捷SCRUM应用实践。笔者认为,敏捷方法的推行实施在企业中是一个系统的工程。因此,本文不是简单地从头到尾的流水式描述,本文从敏捷SCRUM的背景分析,推行准备,推行实施,推行总结几个...

    应对Scrum项目带来的变化

    摘要在软件开发中采用敏捷方法需要很多组织级的改变,例如企业文化、个人角色、过程等。作为一个组织,想要进行敏捷转变,就必须学着妥善处理这些变化。文中,我参考了敏捷、Scrum和精益理论。所以谨慎起见,我在...

    scrum_yo:每天站起来都很棒!

    ScrumYo 是一个命令行工具,可以在您的控制台中获取您最近的 GitHub 提交和拉取请求的摘要。 截图 安装 $ gem install scrum_yo 如果使用 RVM,请将其安装到全局 gemset: $ rvm @global do gem install scrum_...

    grease-that-monkey:使用 GreaseMonkey Firefox 扩展使网络变得更美好的脚本集合

    自定义显示在 Jira RapidBoard 上的卡片 - 使摘要的字体更小,头像图片更大,并将它们淡入背景 Jira Scrum of Scrums 快速板 对 Jira 中 Scrums Rapid Board 的 mobile.de Scrum 的修改 - 根据“开发”列中的票证在...

    中软内部培训 高级项目管理ppt 适用于系统集成项目管理师和高级管理师

    4. 各种项目管理方法综述:项目管理方法综述包括ISO9000、TakeIT、XP、CMM、SCRUM、PRINCE、Crystal、ITIL、DSDM、COBIT、FDD、ISO/IEC17799、ASDSPICE、Open Source等多种方法。 5. 关于体系的问题:关于体系的...

    BetterQuickBase:使 Quickbase (2014) 更好的用户脚本

    显示 Scrum 工作场所常见的快速填写摘要的预设列表。 允许您向列表中添加更多自定义快速填充。 设计和布局也将发生变化,以便: 隐藏不需要的字段,例如“团队成员”和“任务”。 (对不起,如果你真的使用这些。)...

    vim-fetch-jira:无需离开 vi 即可获取 JIRA 信息

    为 git commit 消息插入 Jira 票证摘要 <F7> 插入模式获取当前 sprint 剩余工作的概览。 对于想要高层次地了解团队进展的 Scrum 大师很有帮助。 <F8> 插入模式安装(Vundle) Plugin 'DanBradbury/vim-fetch-jira':...

    TechnoSave:TechnoSave 会为您找到最优惠的价格

    通过单击“添加到摘要”来比较项目,将特定产品添加到您的购物篮! 单击“显示地图”按钮以查看最近的相关商店的位置。 #发展 要求 节点 0.10.x 蓝鸟 2.3.11 EJS 0.8.5 快递 4.9.0 安装依赖 从根目录中: ...

    USCrimeVisualizer

    项目名Pithy项目说明团队产品负责人:Tim Scheys Scrum Master :Edgar Pabon 开发团队成员:杨宝文,汤米·桑德目录用法一些使用说明#鲍文和蒂姆的问候##启动服务器打开终端窗口npm安装凉亭安装运行“ mongod”...

    planning-poker:使用React和Firebase计划扑克应用程序

    如Poker Scrum工具箱所述,Planning Poker是一个Web应用程序,构建为一种用于估计用户请求的工具。 该应用程序包含2个自动同步的主视图: 董事会:显示计划扑克会话的概述。 它可以是笔记本电脑,平板电脑或任何...

    Jira Sub-task Creator-crx插件

    摘要作为Scrum Master,我必须手动为Sprint准备好的故事创建所有子任务。该过程需要一段时间,必须为每个故事创建8-10个子任务(每次Sprint大约20个),当其中5-6个是默认子任务时,所有故事都是相同的。这一(乏味...

    Trello Cards Optimizer-crx插件

    TCO可以与Scrum扩展结合使用,例如Plus For Trello等(Plus具有处理卡后,它会得到特殊支持)。 可以在“扩展选项”对话框中打开和关闭所有功能。 Trello Cards Optimizer设置可以按板否决。 ====支持Trello的Plus =...

    CardJIRA-crx插件

    如果您有Scrum板并且当前正在运行sprint,则CardJIRA将打印该sprint的问题。 如果您有看板,则可以选择一个或多个问题(按住Ctrl键并单击),CardJIRA将打印这些选定的问题。 当然,您也可以打印单个问题-只需打开...

Global site tag (gtag.js) - Google Analytics