📅  最后修改于: 2021-01-23 06:00:10             🧑  作者: Mango
敏捷是一种软件开发方法,可使用1到4周的短迭代来逐步构建软件,从而使开发过程与不断变化的业务需求保持一致。敏捷不是采用6到18个月的单次开发来预先预测所有需求和风险,而是采用频繁反馈的过程,即在经过1到4周的迭代后交付可行的产品。
Scrum Master是团队负责人和协助者,可以帮助团队成员遵循敏捷实践,从而实现他们的承诺。 Scrum Master的职责如下-
使所有角色和职能之间紧密合作。
删除任何块。
保护团队免受任何干扰。
与组织合作以跟踪公司的进度和过程。
确保正确利用敏捷的Inspect&Adapt流程,其中包括
产品负责人是从业务角度推动产品发展的人。责任或产品负责人如下-
每个敏捷团队都应该是一个自给自足的团队,拥有5至9名团队成员,平均经验为6至10年。通常,敏捷团队由3至4个开发人员,1个测试人员,1个技术负责人,1个产品所有者和1个Scrum Master组成。
产品负责人和Scrum主管被认为是团队界面的一部分,而其他成员则是技术界面的一部分。
敏捷团队进行迭代工作,以提供每次迭代为10到15天的用户故事。每个用户故事都根据其积压优先级和大小进行计划。团队利用其能力-团队有多少小时来完成任务-决定他们必须计划多少范围。
点数定义团队可以投入多少。一个点通常是指8个小时。每个故事以点数估算。
容量定义一个人可以承诺的数量。容量以小时为单位。
用户故事是一项定义用户要求的功能要求。用户故事可以采用两种形式-
在发布计划期间,使用相对比例作为点对用户故事进行粗略估计。在迭代计划期间,将故事分解为任务。
团队决定做什么意味着什么。该标准可能是-
标准定义了功能所需的功能,行为和性能,以便产品所有者可以接受。它定义了要执行的操作,以便开发人员知道用户故事何时完成。
需求定义为
2001年2月,在犹他州Snowbird度假胜地,有17位软件开发人员开会讨论了轻量级开发方法。会议的结果是以下有关软件开发的敏捷宣言-
我们正在探索通过开发和帮助他人来开发软件的更好方法。通过这项工作,我们实现了价值-
- 流程和工具上的个人和互动
- 通过综合文档工作软件
- 通过合同谈判进行客户合作
- 响应变更按照计划
也就是说,尽管右侧的项目有价值,但我们更重视左侧的项目。
客户满意度-通过尽早并持续交付有价值的软件,可以满足客户的最高要求。
欢迎更改-在软件开发过程中不可避免发生更改。不断变化的需求应该受到欢迎,即使在开发阶段的后期也是如此。敏捷流程应努力提高客户的竞争优势。
交付有效的软件-考虑到更短的时间,经常交付有效的软件,从几周到几个月不等。
协作-在项目的整个生命周期中,业务人员和开发人员必须一起工作。
动机-项目应该围绕有积极性的人建立。提供一个环境来支持单个团队成员并信任他们,以使他们感到有责任完成工作。
面对面的对话-面对面的对话是向开发团队内部和内部传达信息的最有效的方法。
根据工作软件衡量进度-工作软件是关键,它应该是进度的主要衡量标准。
保持稳定的步伐-敏捷过程旨在实现可持续发展。业务,开发人员和用户应该能够与项目保持恒定的步调。
监控-定期关注技术卓越性和良好的设计以增强敏捷性。
简单性-使事情保持简单,并使用简单的术语来衡量尚未完成的工作。
自组织的团队-敏捷团队应该是自组织的,并且不应该严重依赖其他团队,因为最好的架构,需求和设计都来自自组织的团队。
定期检查工作–定期检查所做的工作,以便团队可以思考如何提高效率并相应地调整其行为。
大多数敏捷开发方法将问题分解为较小的任务。没有针对任何需求的直接长期规划。通常,计划迭代的时间间隔很短,例如1-4周。为每次迭代创建一个跨职能团队,该团队可从事软件开发的所有功能,例如计划,需求分析,设计,编码,单元测试和验收测试。迭代结束时的结果是一个有效的产品,并在迭代结束时向涉众展示。
演示后,将收集评论意见,并计划根据需要将其纳入工作软件中。
每个敏捷团队在Scrum方法论中都应该有一个客户代表,例如产品负责人。该代表有权代表利益相关者行事,他可以在两次迭代之间回答开发人员的查询。
信息辐射器(物理显示器)通常位于办公室的醒目位置,路人可以在其中看到敏捷团队的进度。该信息发送器显示了项目状态的最新摘要。
日常站立是任何敏捷开发的共同文化。它也被称为每日Scrum 。这是一种简短的会话,每个团队成员互相报告他们已完成的工作,下一步做什么以及面临的任何问题的状态。
顾名思义,每日站立是敏捷团队所有成员之间的每日状态会议。它不仅提供了定期更新的论坛,还使团队成员的问题成为焦点,以便可以快速解决。不管团队的办公地点如何,无论如何建立敏捷团队,每天都要站起来。
日常站立会议是所有团队成员之间的日常状态会议,大约举行15分钟。
每个成员必须回答三个重要问题-
每日站立是为了状态更新,而不是任何讨论。为了进行讨论,团队成员应在其他时间安排另一次会议。
与会者通常是站着而不是坐着,这样会议才能很快结束。
每天进行敏捷站立的好处如下-
Scrum负责人,产品负责人和交付团队应每天参加站立会议。
鼓励利益相关者和客户参加会议,他们可以充当观察员,但不应参加站立会议。
记下每个团队成员的疑问和他们面临的问题是Scrum管理员的责任。
敏捷团队成员可以在不同时区进行操作,可以通过多种方式进行站起来-
轮流选择一个成员,该成员可以参加位于不同时区的团队的站立会议。
每个团队都有一个单独的站台,使用Rally,SharePoint,Wiki等工具更新站台的状态。
准备好各种通讯工具,例如电话会议,视频会议,即时通讯程序或任何其他第三方知识共享工具。
下面给出了用户故事,迭代和发布的完成的定义。
用户故事是用用户的日常语言用几句话来表达的要求,并且应该在迭代中完成。用户故事完成时
迭代是有时间限制的用户故事/缺陷的集合,这些故事/缺陷将在产品发布时进行处理并接受。在迭代计划会议期间定义迭代,并通过迭代演示和审查会议完成迭代。迭代也称为sprint 。迭代完成时
发布是一个重要的里程碑,代表内部或外部交付的产品/系统经过测试的有效版本。发布完成时
发布计划的目的是创建一个计划以向产品交付增量。每2至3个月完成一次。
Scrum Master -Scrum Master充当敏捷交付团队的推动者。
产品负责人-产品负责人代表产品待办事项列表的一般视图。
敏捷团队-敏捷交付团队提供有关技术可行性或任何依赖关系的见解。
利益相关者–客户,项目经理,主题专家等利益相关者在制定发布计划决策时充当顾问。
发布计划的前提条件如下-
排序的产品待办事项,由产品负责人管理。通常,产品所有者认为可以使用五到十个功能,这些功能可以包含在发行版中
团队关于能力,已知速度或任何技术挑战的意见
高层视野
市场和业务目标
确认是否需要新产品待办事项
发布计划所需的材料清单如下-
进行发布计划所需的数据列表如下-
发布计划的输出可以如下:
发布计划的议程可以是-
开幕式-欢迎词,审查目的和议程,组织工具和业务发起人介绍。
产品愿景,路线图-显示产品的大图。
查看以前的版本-讨论可能影响计划的任何项目。
发布名称/主题-检查路线图主题的当前状态,并进行必要的调整(如果有)。
速度-显示当前版本和先前版本的速度。
发布时间表-查看关键的里程碑并确定发布时间以及发布内的迭代时间。
问题和疑虑-检查任何问题或疑虑并记录下来。
审查和更新的定义中完成-审查的基础上的技术,技能或团队成员自上次迭代/释放的变化进行并作出适当修改的定义。
要考虑的故事和项目-在当前发行版中提供要考虑进行计划的产品待办事项列表中的用户故事和功能。
确定尺寸值-如果速度未知,则规划要在发布计划中使用的尺寸值。
缩小故事的大小-交付团队确定要考虑的故事的适当大小,如果故事太大,则将故事分为多个迭代。产品负责人和主题专家将澄清疑问,详细说明接受标准,并进行适当的分类。 Scrum主管促进了协作。
将故事映射到迭代中-交付团队和产品所有者根据大小和速度在迭代中移动故事/缺陷。 Scrum主管促进了协作。
新问题或新问题-根据以前的经验检查任何新问题,并记录下来。
依赖关系和假设-检查在发布计划期间计划的任何依赖关系/假设。
提交-Scrum主管要求进行计划。交付团队和产品负责人将其标记为最佳计划,然后承诺移至下一个计划级别,即迭代计划。
沟通和物流计划-审查/更新发布的沟通和物流计划。
停车场-处理停车场意味着应解决所有项目或将其设置为操作项目。
分发行动项目和行动计划-在其所有者之间分发行动项目,处理行动计划。
回顾-征集参与者的反馈以使会议成功。
关闭-庆祝成功。
迭代计划的目的是使团队完成排名靠前的产品待办事项集。该承诺根据迭代的时间和团队速度在时间上加框。
Scrum Master -Scrum Master充当敏捷交付团队的推动者。
产品负责人-产品负责人处理产品待办事项的详细视图及其接受标准。
敏捷团队-敏捷交付定义了他们的任务,并设定了履行承诺所需的工作量估算。
以下是迭代计划中涉及的步骤-
敏捷团队根据过去的迭代来计算速度。速度是在迭代中完成用户故事所需的平均单位数。例如,如果团队在最后三个迭代的每次迭代中获得12、14、10个故事点,则团队可以为下一次迭代以12作为速度。
计划的速度告诉团队在当前迭代中可以完成多少个用户故事。如果团队迅速完成分配的任务,则可以引入更多用户故事。否则,故事也可以移出至下一个迭代。
团队的能力来自以下三个事实-
假设一个团队有5名成员,致力于在一个项目上全职工作(每天8小时),并且在迭代过程中没有人请假,那么两周迭代的任务能力为-
5×8×10 = 400小时
产品待办事项是要完成的项目的列表。项目按功能描述排序。在理想情况下,应将项目分解为用户故事。
每个产品应具有一个产品待办事项列表,该待办事项列表可以包含一系列从大型到大型的功能。
多个团队可以处理一个产品积压。
功能排名是根据业务价值,技术价值,风险管理或战略适用性进行的。
在发布计划期间,排名最高的项目会分解为较小的故事,以便可以在以后的迭代中完成。
这是产品所有者或客户设置的条件,以便接受有效的功能并遵守其要求。
这是一个持续的过程,产品经理或客户通过从敏捷团队获得反馈来管理积压的产品。此过程涉及确定投资组合项目的优先级,将其分解为较小的项目,为将来的迭代计划它们,创建新故事,更新验收标准或详细制定验收标准。
这是团队可以在一次迭代中完成的工作量。
对产品或对利益相关者有价值的功能所做的改进,可以在发行版中进行开发。
基于主题的工作项,可以在一个时间范围内完成并在产品发布中被接受。迭代工作是在迭代计划期间定义的,并以演示和评审会议结束。它也被称为Sprint。
增量是随着产品逐步发展而改变的状态。通常用里程碑或固定迭代次数表示。
该产品所有者是敏捷交付团队的一成员,负责在产品积压收集和排名的业务需求。产品负责人传达要在发布/迭代中执行的操作。他/她设定承诺,并负责保护团队免受迭代过程中需求的任何更改。
设置功能性和非功能性产品要求。
可能是敏捷团队要开发的用户故事,缺陷,功能。
一个通用单位,用于设置用户故事,功能或其他任何项目组合的相对大小。
一个完成工作以支持将可测试增量交付给软件的时间框。在Scrum中,发行版包含多个迭代。
满足规定的合同或功能的软件产品的规范。用户案例和项目组合项是需求的类型。
敏捷团队用来估算用户故事和功能的相对大小的单位。
与迭代相同。
一个固定的持续时间,在该持续时间中将开发可交付成果。通常,除了固定时间的开始和结束日期外,资源的数量也固定。
它是一个工作单元,有助于在迭代中完成用户故事。用户故事被分解为多个任务,每个任务可以在团队成员之间划分,将其标记为任务所有者。团队成员可以根据需要负责每个任务,更新估计,记录已完成或要做的工作。
列出的接受标准,可以满足用户的某些要求。通常是从最终用户的角度编写的。
在迭代或时间盒中加权已接受工作的度量。通常,它是迭代中接受的故事点的总和。