最近接触了下关于敏捷方面东西,也就顺带了解了下SCRUM, 订阅了google group讨论,发现国内还是有很多SCRUM的认识和先行者,也提出了很多关于SCRUM的建设性意见,我全当归总下。
1.啥叫SCRUM
2.为啥要用SCRUM?
3.如何实施SCRUM?
4.Scrummaster是啥角色?
5.SCRUM的困难所在
1.啥叫SCRUM?
一直以来,在软件开发领域存在着N中软件开发方法,最常见的就是瀑布,而从今年横空出世了敏捷的开发方法,于是乎瀑布 VS 敏捷的争论声音就一直没有消停过.而Scrum又作为敏捷的一个很杰出的代表出现了。
Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来。
Scrum的基本假设是:开发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专案成功。Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。 Scrum 开发流程通常以 30 天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于 30 天后交付成果,团队每天用 15 分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。
下面解释下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小时。
2.为啥要用SCRUM?
Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。所以,国内的很多做外包业务都被国外的客户要求用这种开发方法。需求的不断变化,今天要求是A,明天可能又完全换成了B,在这个客户就是上帝的年代,开发人员是和客户讲不了道理的,所以,不断的跟踪客户需求和及时的根据需求变更做出相应的调整和变化就是scrum的本质好处。
3.如何实施Scrum ?
(1) Scrummaster将整个产品的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。
(2) Scrummaster召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。
(3) 进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。
(4) 整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner.
(5) 团队成员最后召开Sprint retrospective meeting,总结问题和经验。
(6) 这样周而复始,按照同样的步骤进行下一次Sprint.
4.Scrummaster是啥角色?
Scrummaster 有很多的定义,但是我觉得他只是角色的定义,而不是职位的定义。
下面的定义解释也正好符合这个观点:Scrummaster 就角色来说的任务是维护scrum流程的无障碍运转,其作用不在于领导和管理,而在于维护过程。他不是一个管理决策者,也不参与开发的实际操作,其管辖的只是流程。
5.SCRUM的困难
1, Sprint Backlog确定依赖在团队的经验和实诚程度, 经验不足可能导致选择有大偏差,不实诚可能故意减少(也就是拿软柿子),如果经验不足的话,又会对潜在的风险缺乏认识和掌握,最后造成失败的后果。如果团队选择的Sprint Backlogs和团队一个Sprint内的开发能力匹配,那么Scrummaster就有责任敦促开发人员的开发责任,这也是他的权责范围:赏与罚。
2, 燃尽图的制作没有客观的依据,依赖主观判断
3,Spring Backlog的规模度量没有客观依据,无法在多个团队间共享度量方法。Sprint Backlog规模度量直接映射到人天,估计者会受到很多心理压力(估计工作更像是开发人员的一种承诺,开发人员的性格又都各有差异,谁都不想给在很大压力的环境下工作吧)
参考网址:
http://www.controlchaos.com/about/
http://www.microsoft.com/Taiwan/msdn/columns/200311softdev.htm
google agilechina
分享到:
相关推荐
《Scrum敏捷项目管理》探索Scrum的每一方面,包括科学原理、全新的项目角色及责任、ScrumMaster、产品负责人、如何有效管理未知因素和不断变化的产品需求、如何结束混乱、如何计划和报告、及如何扩展项目团队规模等...
- **冲刺计划会议**: 在评估的基础上,团队确定冲刺目标和待办列表,确保每个人都对冲刺的目标和任务有清晰的认识。 综上所述,Scrum不仅是一种项目管理框架,更是一种思维方式,它强调团队合作、持续改进和客户...
Scrum被认为是目前全球最流行与最有效的敏捷项目管理理念与方法之一,在软件业... 不论你是项目管理者,还是IT或R&D高管,还是想创造卓越的产品负责人,还是产品与系统开发者,此书是你认识与掌握Scrum的必渎之作。
- **参与者**:产品负责人、Scrum Master和团队成员共同讨论,确保每个人都对冲刺目标有清晰的认识。 2. **每日站会(Daily Scrum)** - **形式**:简短的站立会议。 - **内容**: - 每位成员汇报自上次会议...
在Scrum中,透明性意味着所有的关键信息和数据都必须清晰可见,确保所有利益相关方对于项目的进展和状态有着共同的认识。这包括但不限于: - **统一术语**:所有参与者使用相同的语言描述项目进展。 - **明确的...
在认识到传统工业技术的局限性之后,人们意识到需要一种新的方法来处理复杂的项目工作。这个方法必须能够支持迭代、增量的开发周期,以此来适应经验性过程控制的要求,从而最大化应用智能。Scrum鼓励小型的、跨功能...
通过这些经验,读者可以更好地认识到敏捷开发不是一成不变的模板,而是需要根据具体情况进行调整的实践过程。 本书的内容不仅适用于想要了解敏捷开发和Scrum的入门者,也适用于那些正在考虑实施敏捷开发但缺乏实践...
通过以上内容,我们可以看到Scrum作为一种敏捷开发方法论的强大之处,同时也认识到在实践中可能遇到的问题及其解决方案。对于想要尝试或已经采用Scrum方法的团队来说,本文档提供了宝贵的指导和启示。
它可能会涵盖Scrum的起源、目标,以及如何在实际项目中应用Scrum,帮助我们建立起对Scrum框架的整体认识。 综合这四份文档,我们可以系统地学习到Scrum的理论基础、实战技巧以及如何解决实施过程中遇到的问题,从而...
从提供的文件信息中,我们可以提取出以下IT行业知识: 知识点一:敏捷开发方法Scrum介绍 Scrum是一种敏捷开发方法,它是...同时,也认识到了OCR技术在文档扫描中的局限性,以及认证到期后需采取的措施以维持相关资格。
Sprint计划会议是整个Scrum过程中非常重要的一步,它不仅确保团队成员对于即将到来的工作有清晰的认识,还促进了团队间的沟通与协作。 4. **制定Sprint计划**:在这个阶段,团队需要具体规划如何实现Sprint目标,...
### Scrum开发指南核心知识点详解 #### 一、Scrum概览 **Scrum**是一种轻量级的项目管理和软件开发方法,它基于敏捷开发的原则和实践,...随着越来越多的组织认识到敏捷方法的重要性,Scrum的应用范围也在不断扩大。
对Scrummaster较为全面的总结,看完本PPT对SM有较全面的认识。
两者结合可以实现更高效的开发流程,比如Scrum中的Sprint计划会议可以融入XP的计划游戏,每日Scrum可以与XP的结对编程和持续集成相结合,确保团队对进度有清晰的认识。 **中文版优势** 《Agile(Scrum&XP)实践-中文...
Scrum模式之所以适用于软件开发,是因为它认识到软件开发的本质是探索性和不确定性的。传统的“瀑布式”模型在面对需求变更和不确定性时显得力不从心。Scrum模式则允许在开发过程中动态调整,通过短周期的迭代...
- **定义验收标准**:在工作开始之前就明确“完成”的标准,确保所有成员对工作结果有一致的认识。 - **处理依赖关系**:识别和管理积压工作之间的依赖关系,确保正确排序。 - **响应需求变更**:灵活应对需求变化,...