敏捷方法与模型
什么是敏捷方法?
术语“敏捷方法”指的是在项目软件开发生命周期中鼓励持续开发和测试的过程。与瀑布模型不同,在敏捷软件测试风格下,开发和测试操作是同时进行的。
敏捷方法与传统软件开发
将公司需求愿景转化为软件解决方案的最简单、最成功的方法之一是使用敏捷软件开发方法。持续规划、学习、改进、团队协作、演化开发和早期交付都是用于定义敏捷软件开发方法的术语。它增强了面对变化时的适应能力。
强调了敏捷软件开发的四个基本价值观。
个人与团队之间的互动胜过流程和工具。
可工作的软件胜过面面俱到的文档。
客户合作胜过合同谈判。
响应变化胜过遵循计划。
本敏捷项目管理教程将教你如何 -
什么是敏捷方法,它是如何工作的?
瀑布模型与敏捷模型
Scrum
产品积压
Scrum 方法
Scrum 方法流程
极限编程 (XP) 是一种编程类型 (XP)
极限编程阶段 -
水晶方法
动态软件开发方法 (DSDM)
面向特征的开发 (FDD)
精益软件开发
看板
灵活的指标
瀑布模型与敏捷模型
敏捷和瀑布模型是两种不同的软件开发方法。尽管它们的方法不同,但根据需求和项目类型,这两种方法在某些时候都可能有效。
| 敏捷模型 | 瀑布模型 |
|---|---|
| 敏捷方法的定义:敏捷方法提倡采用增量和迭代的方式进行软件开发。 | 瀑布模型 - 软件开发以从头到尾的逻辑顺序进行。 |
| 在软件工程中,敏捷过程被分解成开发人员工作的离散模型。 | 设计过程未被分成多个模型。 |
| 为客户提供尽早和定期检查产品并做出决策和调整项目的机会。 | 产品仅在项目结束后才向客户可见。 |
| 产品仅在项目结束后才向客户可见。 | 与瀑布模型相比,敏捷模型被认为是非结构化的。 |
| 由于瀑布模型非常注重计划,因此它们更安全。 | 可以在短时间内完成小型项目。对于大型项目,很难预测开发时间。 |
| 可以估计和完成各种项目。 | 可以在项目期间更正错误。 |
| 整个产品仅在最后进行测试。如果发现需求错误或需要进行更改,则必须从头开始重新启动项目。 | 开发方法是迭代的,项目在短迭代(2-4 周)中完成。几乎没有计划。 |
| 开发过程被划分为多个阶段,每个阶段都比迭代大得多。每个阶段都以对下一阶段的完整摘要结束。 | 软件开发优先于文档。 |
| 文档是一项高度责任,它可以用来培训员工并借助另一个团队更新软件。 | 每个迭代都有一个测试步骤。它允许在部署新功能或逻辑时实现回归测试。 |
| 在漫长的实施期后,所有设计的特性都会一次性提供。 | 开发人员和测试人员协作。 |
| 测试人员与开发人员分开。 | 在每次冲刺后完成用户验收。 |
| 在每次冲刺后完成用户验收。 | 在项目结束时完成项目的用户验收。 |
| 需要与开发人员进行强有力的协作,以及对需求和计划的联合分析。 | 开发人员不参与需求或计划阶段。通常,测试和编码之间存在时间差距。 |
敏捷过程
敏捷测试采用多种敏捷方法,如下所述 -
Scrum
SCRUM 是一种敏捷开发方法,专注于基于团队的开发环境中的任务管理。Scrum 来自橄榄球比赛中发生的行动。Scrum 提倡以小团队的形式工作,并相信赋予开发团队权力(例如 7 到 9 名成员)。敏捷和 Scrum 中有三个角色,其职责如下 -
Scrum Master
Master 负责组织团队、主持冲刺会议以及消除开发障碍。
产品负责人
产品负责人负责创建产品积压工作、对其进行优先级排序并确保在每次迭代中交付功能。
Scrum 团队
团队监督和组织他们的工作以完成冲刺或周期。
产品积压
这是一个跟踪需求的存储库,包括每个版本必须满足的需求数量(用户故事)。产品负责人应该跟踪它并对其进行优先级排序,并且应该将其提供给 scrum 团队。团队也可以请求包含、修改或删除新需求。
Scrum 方法流程
以下是 scrum 测试流程 -
冲刺是 scrum 的迭代。
产品积压工作是一个包含创建最终产品所需所有信息的列表。
在每个冲刺期间,从产品积压工作中选择最重要的用户故事并将其转换为冲刺积压工作。
团队致力于已建立的冲刺积压工作。
团队每天都会复查工作。
团队在冲刺结束后提供产品功能。
极限编程 (XP)
当客户的需求或规范不断变化,或者他们不确定系统如何工作时,极限编程方法会派上用场。它鼓励在短开发周期中进行产品的多次“发布”,从而提高系统的效率并提供一个检查点,以便可以快速合并任何客户需求。XP 以客户为中心创建软件。
使用故事来收集业务需求。停车场是所有这些故事的存放地。
发布基于称为迭代的较短周期,在这种方法下,迭代覆盖 14 天的时间范围。每次迭代都包括开发、单元测试和系统测试等步骤,每个步骤都会向程序添加小或大的功能。
极限编程阶段
在敏捷 XP 方法中,定义了以下六个阶段 -
计划
利益相关者和赞助商识别
基础设施需求
信息收集和安全相关信息
服务等级协议 (SLA) 及其条款
分析
停车场里的讲故事
在停车场中,对故事进行优先级排序。
通过擦洗估算故事
迭代跨度是指一个人(时间)的次数
开发和质量保证团队都需要安排其资源。
设计
任务分解
为每个任务准备测试用例。
回归自动化框架
执行
编码
单元级测试
执行手动测试用例。
生成缺陷报告
将回归测试用例从手动转换为自动。
第二次迭代审查
每次迭代结束时的审查
包装
小批量发布
回归测试
演示和评估
根据需求创建新故事。
根据每次迭代后收到的反馈改进流程
结束
试点计划启动
培训
生产启动
保证服务水平协议
检查你的 SOA 方法。
生产协助
有两个故事板可用于每天监控工作,为了方便起见,它们列在下面。
纸板故事
这是一种常见的方法,用于以便利贴的形式将所有故事存储在板上,以跟踪日常 XP 活动。最好切换到在线形式,因为此手动过程需要更多工作和时间。
在线故事板
可以使用在线应用程序 Storyboard 保存故事。它可以被多个团队用于不同的目的。
水晶方法
三个原则支撑着水晶方法。
制定阶段包括创建开发团队、进行初步可行性研究、生成初始策略以及微调开发技术。
循环交付 - 在主要开发期间,产品将经历两个或多个交付周期进行开发。
团队更新和完善发布策略。
通过一个或多个程序测试集成周期来实现部分需求。
将完全集成的产品提供给实际用户。
审查项目策略和使用的开发技术
收尾 - 此阶段包括将产品部署到用户环境、部署后评估和反思等活动。
动态软件开发方法 (DSDM)
DSDM 是一种敏捷项目交付方法,基于快速应用开发 (RAD) 的软件开发方法。DSDM 的关键特征是用户必须积极参与,并且团队拥有决策权。使用 DSDM,积极的重点转向定期交付产品。DSDM 采用多种策略。
时间盒
MoSCoW 规则
原型设计
DSDM 项目有七个阶段。
项目前
可行性研究
业务调研
功能模型迭代
设计和构建迭代
实施
项目后
面向特征的开发 (FDD)
此策略侧重于“开发和构建”功能。与其他敏捷软件工程方法不同,FDD 概述了必须针对每个功能独立完成的非常精确和简短的工作阶段。它包括领域演练、设计检查、提升到构建、代码检查和设计。FDD 在考虑以下标准的情况下创建产品。
领域对象建模
基于功能的开发
组件和类的所有权
观察团队
检查
配置管理
定期结构
显示进度和结果。
精益软件开发
精益软件开发流程以“准时制生产”的理念为基础。它的目标是加快软件开发速度并降低成本。精益开发过程可以分为七个部分。
减少浪费
增强学习
延迟承诺(尽可能晚地做出决定)
准时交付
提高团队的自主性
提高完整性
优化整个流程。
看板
看板是一个日语词,指的是一张卡片,其中包含完成产品在通往完成的每个步骤中所需的所有信息。此框架或方法广泛应用于软件测试,尤其是在敏捷方法中。
看板与Scrum
下表突出显示了看板和 Scrum 之间的主要区别 -
| Scrum | 看板 |
|---|---|
| 在 Scrum 方法中,必须将测试分解,以便可以在一个冲刺中完成。 | 不需要特定项目大小。 |
| 规定了按优先级排序的产品待办事项列表。 | 不需要优先级。 |
| 对于每次迭代,Scrum 团队都会承诺完成一定量的工作。 | 承诺是一种选择。 |
| 需要使用燃尽图。 | 不需要特定项目大小。 |
| 每个冲刺后都会重置 Scrum 看板。 | 看板是持久的。它限制了可以在工作流程状态下进行的操作的数量。 |
| 无法向正在进行的迭代添加内容。 | 可以根据容量添加项目。 |
| 间接限制 WIP。 | WIP 受到严格限制。 |
| 需要具有固定时间限制的迭代。 | 具有时间限制的迭代是一种选择。 |
敏捷指标
以下是一些可以收集的指标,以确保有效地使用敏捷 -
阻力因子
不有助于冲刺目标的工时
减少共享资源的数量和非贡献活动的数量以改善阻力因子。
新估计可以通过阻力因子的百分比来改进,如下所示:新估计 =(旧估计 + 阻力因子)
速度
已转换为冲刺就绪功能的积压工作项(用户故事)的数量。
已引入的单元测试数量有所增加。
完成每日构建所需的时间
在先前版本或早期迭代中发现的错误
生产缺陷泄漏
哪些敏捷项目管理工具最有效?
敏捷项目管理需要一个通用的解决方案,使您能够使用看板和燃尽图来衡量进度,同时还能管理任务和沟通信息。因此,我们建议以下知名敏捷工具 -
Wrike
Monday.com
ClickUp
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP