本文大部分内容摘自
InfoQ《硝烟中的Scrum和XP》该书介绍了应用Scrum的经验,很值得一读。
本文主要摘选Scrum其中的一些名词概念作为记录参考。其中可能因个人理解出现错误,也还希望各位能指正。
关于Scrum团队的概念尚未总结记录。待续。
前言 写道
Scrum不是方法学,而是框架。
-------- Ken Schwaber
Scrum是一种灵活的软件管理过程,它可以帮助你驾驭迭代,递增的软件开发过程。Scrum于1995年由Advanced Development Methodologies,Inc提出,并在2001年“敏捷联盟(Agile Alliance)”形成后受到了更多欢迎。这个轻量的过程可以作为包装器,也就是说你可以把Scrum与其它灵活的过程框架组合起来,比如说RUP。
首先我们先了解一下其大致结构。请看下图。
其中我们可以看出的几点应该是:
一个Product(产品或项目)将由多个sprint(阶段)组成,每个sprint中包含一个backlog(可认为是特性清单),每个backlog包含了多个story(故事、功能点、需求),而每个story中又包含了多个task(比story更细,更小的故事)
组成结构非常简单,具体每个节点的含义请继续阅读。
Product:
当然你可能认为用Project(项目)更为合适,随便吧。
Sprint:
这是有一个开始时间和一个结束时间的日期段。可以称为阶段,比如“sprint-1”,用来约定从08-12-01到08-12-15这个时间段。阶段需要尽可能短。这样才能保证每个阶段之后遇到的BUG不会一下扎堆全冒出来。以下是一个划分好的product sprints,你可以先看完后面的再来看这个表。
backlog:
Backlog是Scrum的核心,也是一切的起源。它就是一个由Story(需求、或故事、或特性)组成的列表。
务必保持backlog停留在业务上,也就是避免出现“给events表添加索引”这样的story,改成这样“提高在后台系统中搜索事件表单的响应速度”,因为Scrum团队里可能会出现客户,所以要避免出现这样的技术字眼。否则会出现沟通困难的情况。。
story(故事):
有时候也叫backlog条目,故事是产品负责人所关心的。其中用一些字段来描述,如:
- ID:统一标识符,就是个自增的数字而已。防止重名的故事。不过我想故事如果重名了最好还是改一改。与其去记一串数字不如记这个数字的内在含义简单。
- Name(名称):简短的、描述性的故事名。比如“查看自己的交易明细”。它必须要含义明确,这样开发人员和产品负责人才能大致明白我们说的是个什么东西,跟其他故事区分开。一般由2到10个字组成。
- Importance(重要性):产品负责人评出的一个数值,指示这个故事有多重要,比如10或150.分数越高越重要。但这个数值并不代表150分值的故事就比10分值的故事重要15倍。
- Initial estimate(初始估算):团队的初步估算,标识与其他故事相比,完成该故事所需的工作量。最小的单位是故事点(story point),一般大致相当于一个“理想的人天(man-day)”。“把3个人关在一起,大约需要4天时间来完成这个故事”那么初始估算的结果就是12个故事点。
- How to demo(如何做演示):它大略描述了这个故事应该如何在sprint演示上进行示范,本质就是一个简单的测试规范。“先这样做,然后那样做,就应该得到....的结果”。
- Notes(注解):相关信息、解释说明和对其他资料的引用等等。一般都非常简短。
故事不能太长,也不能太短,太短可能会使你成为微观管理的受害者,而太长则可能导致故事只能部分完成。一般可控制在2至8个人天之间(1个有效的人-天=6个有效的人-小时)。
下面一张索引卡,对应一个故事,可利用这个卡片可在sprint会议上进行交流。
task(任务):任务是用来更详细的描述story,也就是说story下面可以有N个任务,也就是说,把故事拆分成更小的故事。如何拆分就需要经验的支持了。如果你是TDD的实践者,那么你的第一个任务都是“编写一个失败的测试”,而最后一个任务是“重构”:)
接下来。我们用一个更直观的例子。。下面的图片虚拟出了一个任务板,这个任务板你可以布置在一块白板或直接是在墙壁上,至于你该选用哪种做法,你就尽可能选不会给你造成麻烦的那一个,在这里你可以看到怎么把上面描述的那些东西都组合起来。
1.首先你需要建立这样一块任务板,至少2×2平方米,大团队可能需要3×2平方米。
2.下面的图描绘了这个任务板各个区域的用处,再次提醒,务必保持简单,你可能会想在上面加几个你认为合适的区域,但在那么做之前请先问问“自己真的有必要吗?”
3.下面是每日例会之后的任务板,注意到其中已经有3个任务被“Checked out”
4.几天后,任务板可能变成了这样,特别注意,在任务板的右下角有3个未经过计划的条目。进行sprint回顾的时候应当记住这一点。
接下来我们来看看燃尽图。也就是任务板最右边那个大家伙。
这张图包含的信息:
- Sprint第一天,8月1号,团队估算出剩下的70个故事点要完成。这实际上就是整个sprint的估算生产率。
- 在8月16号,团队估算的还剩下15个故事点的任务要做。跟表示趋势的虚线相比,团队的工作状态还是差不多沿着正轨的。
注意,这里没有把周末放到时间轴上,因为这两天可能大家都没干活或者是只有几个人在,那么会导致这两天的曲线是平的,看上去就像是警告sprint出了问题,这就让人看着不爽了。
下面来看看几组出现问题的sprint
1.出现问题的燃尽图,上面的出现了工作超期,而下面的则出现了工作提早完成,这都是不健康的sprint,团队需要立刻进行调整。
2.没有按照重要重要性来安排工作的sprint
3.过多的未计划条目
如何更新任务板?
当估算与实际工作时间产生差距的时候怎么办?很简单,像这样:
Scrum很强大,也会令人痛苦,因为你不得不根据自己的具体情况来对它进行调整。
- 大小: 48 KB
- 大小: 150.2 KB
- 大小: 49.4 KB
- 大小: 172.1 KB
- 大小: 221.2 KB
- 大小: 180.3 KB
- 大小: 194.9 KB
- 大小: 86.7 KB
- 大小: 125 KB
- 大小: 136.3 KB
- 大小: 139.1 KB
- 大小: 16.1 KB
- 大小: 26.8 KB
- 大小: 19.6 KB
- 大小: 23.3 KB
- 大小: 36.8 KB
分享到:
相关推荐
- 每个成员简要报告自上次Daily Scrum以来所做的工作。 - 讨论接下来的工作计划。 - 阻碍或障碍的识别与解决。 ##### Sprint Review Meeting (冲刺回顾会议) - **定义与目的**:Sprint Review Meeting是在每个...
本文将深入探讨敏捷开发中的三种主要角色:产品负责人(Product Owner)、Scrum主管(Scrum Master)以及团队成员(Team),并简要提及Feature Lead的角色。 #### 二、产品负责人(Product Owner) **角色职责:**...
指导概述>网站部署凉爽的>登录和导航凉爽的>猜色游戏凉爽的>记忆配对游戏凉爽的>蛇游戏凉爽的>井字游戏凉爽的> AP FRQ的凉爽的实施工作Scrum会员描述戴维·拉姆塞耶(David Ramsayer) 使用javascript(打字稿),...
3. **用例描述**:了解如何编写详细的用例描述,包括简要描述、前置条件、后置条件、主成功场景、异常流等组成部分。 4. **用例的细化和扩展**:探讨如何通过扩展用例来处理可选行为或异常情况,以及如何通过包含...
3. 用户故事:用户故事是从用户或客户角度描述需求的一种方式,帮助团队理解他们要解决的问题。有效的用户故事应具备“INVEST”原则:独立(Independent)、可协商(Negotiable)、有价值(Valuable)、可估算...
【描述】: 由于描述只给出了文件名"第一讲.zip",没有更多的信息,我们可以推测这可能是一个自我解释性的标题,意味着压缩包内包含的是一个讲座或课程的第一部分的内容。这可能包括课件、演示文稿、阅读材料、练习题...
"根据[产品、服务和目标市场的简要描述],指导我利用营销4Ps(产品、价格、地点、促销)制定全面的市场营销策略。" 2. **创建有影响力的品**牌: "帮助我运用黄金圈模型为我的[产品或服务]打造一个难忘且有影响力...
《用户故事与敏捷方法》是一本深入探讨软件开发过程中用户故事和敏捷方法的书籍,尤其在2018年这个时间点,它...配合read.txt文件,可能是对书籍内容的简要介绍或阅读指南,可以帮助读者更好地消化和应用书中的知识。
1. **用户故事**:用简短、人性化的语言描述功能,帮助团队理解用户的需求。 2. **积压工作列表(Backlog)**:包含所有待处理任务的列表,按优先级排序。 3. **冲刺(Sprint)**:固定时间长度(通常2-4周)的工作...
- **撰写摘要**:简要概述项目的背景、主要功能、你在项目中的角色和职责,以及项目实施的效果。 - **正文写作**:详细阐述项目背景、选用的软件开发模型及其实施效果,同时讨论可能存在的改进点。 2. **软件开发...
这可能涉及到敏捷开发方法(如Scrum或Kanban)、项目管理工具(如Jira或Trello)的使用以及团队协作经验。 2. **技术技能提升**:概述在过去一年中学习和掌握的新技术或工具,例如编程语言(Java、Python、...
描述项目开发过程中将使用的技术方法和管理工具,例如敏捷开发、Scrum框架、项目管理软件(如Microsoft Project)等,以提升项目效率和质量。 6. **交付物** 交付物是项目过程中的重要产出,包括阶段性的成果和...
很抱歉,但根据您给出的信息,"tapd2-30修改.zip" 是一个压缩文件,而描述中并未提供任何具体的技术细节或知识点。标签为空,也无法提供更多线索。压缩包子文件的名称仅列出本身,即 "tapd2-30修改",这同样没有提供...
1. **项目概述**:这部分简要介绍项目的基本信息,包括项目名称、目标、背景和预期的业务价值。对于Java项目,可能需要提及所采用的技术栈(如Spring Boot、Hibernate等)以及项目的核心功能。 2. **项目目标**:...
3. **软件开发流程**:如果是在软件开发背景下,流程图可能包括了敏捷开发的迭代模型,如Scrum或Kanban,或者是传统的瀑布模型。每一步都可能涉及代码编写、代码审查、集成测试和用户反馈。 4. **项目管理**:...
6. **专业技能**:除了编程语言,还可以包括软件工程原则、敏捷开发方法(如Scrum、Kanban)、版本控制(如Git)、自动化测试等。 7. **证书与奖项**:如果你有任何与编程或IT相关的认证(如Oracle Certified ...
4. **项目经验**:提供至少两个相关的项目实例,描述项目的目标、所使用的技术和你在其中扮演的角色。这有助于展示实际操作Java编程的经验。 5. **工作经验**(如果有):尽管对于刚毕业的大学生来说,可能没有太多...
很抱歉,根据您提供的信息,"上机课作业2022年10月31日.zip"这个压缩包文件的描述过于简洁,没有提供具体的IT知识点。通常,上机课作业可能涵盖各种IT主题,如编程语言(如Python、Java、C++)、数据结构、算法、...
通常,这样的文本文件会提供每个主题的简要介绍,以及相关的章节或视频链接,以便学习者按部就班地进行学习。 全栈工程师需要掌握的核心技能包括但不限于以下几点: 1. **前端技术**:HTML、CSS和JavaScript是构建...
虽然标签部分为空,但我们可以通过标题和描述来推测这可能是一份关于第二天学习内容的复习资料。接下来,我们将深入解析这份文件可能涵盖的IT知识领域。 首先,"day02"通常表示学习或培训的第二天,这意味着我们...