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
分享到:
相关推荐
#### 二、书籍介绍及评价摘要 《Succeeding with Agile:Software Development Using Scrum》是一本由Mike Cohn编写的关于如何在软件开发项目中成功运用Scrum方法的书籍。该书不仅深入浅出地介绍了Scrum的基本概念...
例如,可能会讨论Scrum或Kanban等敏捷框架在实际项目中的应用效果,或者探讨如何通过自动化测试工具提升测试效率。 其次,数据科学领域的摘要可能涵盖了大数据处理、机器学习模型构建、预测分析等内容。学生会接触...
摘要在软件开发中采用敏捷方法需要很多组织级的改变,例如企业文化、个人角色、过程等。作为一个组织,想要进行敏捷转变,就必须学着妥善处理这些变化。文中,我参考了敏捷、Scrum和精益理论。所以谨慎起见,我在...
4. 敏捷开发:强调迭代和增量开发,灵活应对需求变化,如Scrum和Kanban等框架。 四、软件质量管理 软件质量保证和质量控制是软件工程的关键环节。ISO 9001和CMMI(能力成熟度模型集成)提供了质量管理的国际标准和...
ScrumYo 是一个命令行工具,可以在您的控制台中获取您最近的 GitHub 提交和拉取请求的摘要。 截图 安装 $ gem install scrum_yo 如果使用 RVM,请将其安装到全局 gemset: $ rvm @global do gem install scrum_...
#### 执行摘要与全球趋势 最新发布的《第十三次敏捷年度报告》显示,敏捷方法在全球范围内得到了更广泛的采纳和发展。本次调研收集了来自欧洲、亚洲、南美洲以及非洲等地的数据,这些地区的受访者比例均有所增加。...
例如,敏捷方法论如Scrum或Kanban,提供了一种灵活、迭代的方式来管理软件开发,以适应不断变化的需求和环境。 项目经理在项目管理中还需要关注团队建设、沟通协调、风险评估和控制、变更管理等多个方面。他们不仅...
本资源摘要信息主要关注软件开发部的规章制度和软件项目管理方法,以确保软件开发项目的顺利进行和质量控制。 软件开发部规章制度 1. 日常工作制度:软件开发部员工需遵守公司考勤制度,提前书面形式填写请假申请...
自定义显示在 Jira RapidBoard 上的卡片 - 使摘要的字体更小,头像图片更大,并将它们淡入背景 Jira Scrum of Scrums 快速板 对 Jira 中 Scrums Rapid Board 的 mobile.de Scrum 的修改 - 根据“开发”列中的票证在...
4. 各种项目管理方法综述:项目管理方法综述包括ISO9000、TakeIT、XP、CMM、SCRUM、PRINCE、Crystal、ITIL、DSDM、COBIT、FDD、ISO/IEC17799、ASDSPICE、Open Source等多种方法。 5. 关于体系的问题:关于体系的...
4. 敏捷开发的艺术:本节讨论了敏捷开发的概念和应用,包括使用Scrum、Kanban等敏捷开发方法。 5. Rework摘录:本节摘录了Rework的部分内容,讨论了软件开发和项目管理中的各种问题和解决方案。 6. 近期看过的和想...
显示 Scrum 工作场所常见的快速填写摘要的预设列表。 允许您向列表中添加更多自定义快速填充。 设计和布局也将发生变化,以便: 隐藏不需要的字段,例如“团队成员”和“任务”。 (对不起,如果你真的使用这些。)...
- **敏捷方法**:强调灵活性、迭代开发和快速响应变化,注重团队协作,如Scrum或Kanban等。 3. **论文结构**: - **摘要**:300至320字,概述项目背景、主要功能、你的职责和项目结果。 - **正文**: - **项目...
很抱歉,根据您提供的信息,标题和描述的内容似乎并不包含具体的IT知识点,它们更像是一个文件命名的模式,而不是具体的IT主题。...如果你能提供文档的关键内容摘要或具体的学习主题,我将能够生成详细的IT知识解释。
* 项目管理的趋势包括 Agile 项目管理、Scrum 项目管理、敏捷项目管理等。 * 这些趋势强调了项目管理的灵活性、迭代性和客户中心性。 七、项目管理的知识领域 * 项目管理的知识领域包括项目整体管理、项目范围管理...
6. **项目管理**:讲解软件项目计划、进度控制、质量管理、风险管理等,通常会提及敏捷方法论,如Scrum或Kanban。 7. **维护与演化**:讨论软件的维护工作,包括错误修复、功能增强、软件重构等。 8. **软件质量**...