敏捷开发 与 Scrum

敏捷开发的概念起源于20世纪90年代末期,旨在解决传统软件开发方法中存在的效率低下问题。

传统软件开发方法因其繁琐的过程和对文档的严格要求,导致了“重型化危机”,这使得开发效率大幅下降。为了应对这些问题,敏捷方法应运而生‌。

敏捷开发的起源可以追溯到2001年2月,当时Martin Fowler、Jim Highsmith等17位软件开发专家在美国犹他州雪鸟滑雪圣地聚集,共同签署了《敏捷宣言》,标志着敏捷开发作为一种新的软件开发方法正式诞生。

敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则

敏捷宣言4个核心价值观

  • 个体和互动高于流程和工具
  • 工作的软件高于详尽的文档
  • 客户合作高于合同谈判
  • 响应变化高于遵循计划‌

敏捷项目管理的12个原则

这些原则旨在鼓励更敏捷、灵活和高效的项目管理方法,使项目团队能够更好地满足客户需求、应对变化并持续提供高质量的产品。

敏捷开发的核心原则包括主张简单尽早交付可持续的开发以及不断改进。这些原则强调了软件开发过程中应注重简单性和实用性,通过迭代和循序渐进的方式不断交付可工作的软件,并基于客户反馈进行调整和优化‌。

1、客户满意度最高的优先级是通过早期和持续交付有价值的软件来满足客户。

示例:在软件开发项目中,团队致力于以最小可行产品(MVP)的形式交付初始软件版本,以便客户尽早享受一些功能,而不必等待完整的产品。

2、欢迎变化,即使在项目的后期也同样欢迎。敏捷过程利用变化,以帮助客户获得竞争优势。

示例:项目团队允许客户在项目过程中提出变更请求,而不是坚持原始计划。这使得软件能够适应市场变化和客户需求。

3、经常交付可工作的软件,频率越高越好,通常在几周或几个月内。

示例:在敏捷开发中,软件交付是周期性的,例如每两周一次。这有助于客户及早检查和反馈,以确保产品与其期望保持一致。

4、业务人员和开发人员必须在整个项目过程中紧密合作。

示例:业务代表参与在每个迭代期间的需求定义和优先级确定,以确保开发人员了解客户需求。

5、构建项目团队,围绕那些能够完成工作的个体,提供他们所需的支持和信任。

示例:团队成员在项目中具有多样的技能,相互信任,鼓励开放的交流,以实现项目目标。

6、面对面的沟通通常是最有效的。

示例:团队成员通常举行每日站会,面对面讨论进展、问题和计划,以促进高效沟通。

7、可工作的软件是进度的首要度量标准。

示例:项目的进度与软件的可工作版本交付进度相关,而不仅仅关注文档和计划。

8、可持续的开发,支持不断的开发进程。

示例:团队通过定期迭代来保持软件的持续发展,不断添加新功能、修复问题和提高质量。

9、良好的设计和技术卓越,增强敏捷性。

示例:团队注重软件的整体架构和设计,以确保可扩展性、可维护性和性能。

10、简单性,即最大限度地减少不必要的工作,是必要的。

示例:团队遵循KISS(保持简单愚蠢)原则,避免过度复杂的解决方案,专注于解决问题的最简单方法。

"KISS" 是 "Keep It Simple, Stupid" 的缩写,意思是要保持事物简单。这个原则是敏捷开发中的一项重要指导原则,它鼓励团队在设计、开发和管理过程中尽量保持简单,避免过度复杂化。

KISS原则的核心思想是,简单的解决方案通常更容易理解、实施和维护,同时也减少了出错的机会。以下是KISS原则的一些具体含义和示例

10.1解决方案的简洁性:在面对问题或挑战时,团队应该寻求最简单的解决方案,而不是过度复杂的解决方案。例如,在设计软件功能时,不要添加不必要的复杂性,而是选择最直接的方法来满足用户需求。

10.2避免不必要的特性:不要为项目添加过多的特性,特别是那些用户并不真正需要的特性。这会使项目变得复杂,增加了开发和维护的成本。在敏捷开发中,团队应专注于构建核心功能,以便更早地交付有价值的产品。

10.3简化流程:不仅适用于软件开发,KISS原则也适用于项目管理和流程设计。例如,尽量简化项目管理流程,减少冗长的文件和报告,以提高团队的效率。

10.4易于维护:简化的解决方案通常更容易维护。复杂性可能导致难以识别和解决问题。通过遵循KISS原则,团队可以减少维护成本并更快速地应对变化。

11、自组织的团队能够产生最好的架构、需求和设计。

示例:在敏捷项目中,团队成员具有决策权,可以自主组织工作,制定最佳的解决方案。

12、团队在定期回顾中反思并调整,以提高效率和效果。

示例:团队定期进行迭代回顾,评估过去的工作,识别问题并制定改进计划,以不断提高工作流程。

Scrum

符合敏捷价值观和原则的开发方法包括:极限编程(XP),Scrum,精益软件开发(Lean Software Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Crystal Clear)等等。

Scrum框架可以概括为3(角色) 3(工件) 5(活动) 5(价值观):

 角色【3】:

  • 产品负责人(Product Owner):负责定义产品愿景、管理Product Backlog。
  • Scrum Master:确保团队遵守Scrum原则和实践,解决阻碍进展的问题。
  • 开发团队:负责实际开发工作,通常是跨职能团队。

开发团队的规模?

Scrum 提倡小团队就保持敏捷,大团队则去完成重要工作,推荐 5 ~ 9 人的团队规模,但不用纠结这个数。关键是团队要有完成产品增量(PI)的所有技能,且能高效协作。团队有 11 人能高效协作就不用减人,有 4 人能完成产品增量(PI)也不用加人。

工件【3】:

  • Product Backlog:产品待办事项列表(需求的清单,持续更新)。
  • Sprint Backlog:冲刺待办事项列表(目标所需的具体任务)。
  • Product Increment (PI):产品增量(Sprint结束时的可交付的成果/产品)。

活动【5】:

  • Sprint:时间固定的开发周期,通常2-4周。
  • 日常站会(Daily Scrum):每天短会议,讨论进展、计划和障碍。
  • Sprint计划会议:确定Sprint目标和待办事项。
  • Sprint复盘会议:展示和评估Sprint成果。
  • Sprint回顾会议:回顾过程,讨论改进方法。

Scrum就是迭代开发?

这样理解是有偏差的。敏捷是个大概念,迭代开发只是很多敏捷开发用的主要基础实践之一。敏捷开发除了迭代开发,还包括很多其他管理和工程技术实践,像演进式架构设计、敏捷建模、重构、自动回归测试等等。

迭代周期如何选择?

选择迭代长度时考虑的因素:

1)不确定性的多少。不确定越多,迭代就应该越短;

2)获得反馈的难易程度。获得反馈越难,迭代就应该越短;

3)优先级可以保持多久不变。优先级变化越快,迭代就应该越短;

4)紧迫感的维持。越保持急迫感,迭代就应该越短。

不管迭代周期选多长,最好定好一个长度就一直用,别变来变去。比迭代周期更重要的是,团队遇到问题后怎么应对和改进,要真正把改进任务加到每个迭代里去做。

价值观【5】:

勇气Courage:有勇气去面对各种挑战。

专注Focus:每个迭代只专注于该迭代要完成的事情。

承诺Commitment:作为一个团队,在迭代开始时做出承诺,并在迭代中全力完成。

尊重Respect:团队是能随时沟通的,并且能相互理解的。

公开Openness:团队所有的进展、问题、阻碍都是对所有人可视化、透明的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 - 01 - 一些补充和注意点(补充ing...)

目录 一、节流二、在一个发请求的函数中,只有发生下拉动作,才执行关闭下拉代码 最近在学微信小程序,把学习过程中的一些补充和注意点总结一下,内容会比较简单,因为只涉及基础知识,供个人参考 一、节流 情…

AIGC毕设项目分享:基于RAG的数字人对话系统及其应用

本研究的主要目标是设计并实现一个基于检索增强生成(RAG)技术的数字人对话系统,旨在提升数字人系统在多轮对话中的上下文管理、情境感知能力以及动态内容生成效果。系统结合了深度学习中的最新大语言模型技术,通过引入RAG框架来增…

K8S配置MySQL主从自动水平扩展

前提环境 操作系统Ubuntu 22.04 K8S 1.28.2集群(1个master2个node) MySQL 5.7.44部署在K8S的主从集群 metrics-server v0.6.4 概念简介 在K8s中扩缩容分为两种 ●Node层面:对K8s物理节点扩容和缩容,根据业务规模实现物理节点自动扩…

Python列表专题:list与in

Python是一种强大的编程语言,其中列表(list)是最常用的数据结构之一。列表允许我们存储多个元素,并且可以方便地进行各种操作。在Python中,in运算符被广泛用于检测元素是否存在于列表中。本文将深入探讨Python列表及其与in运算符的结合使用。 1. Python列表的基础 1.1 什…

爬虫案例——网易新闻数据的爬取

案例需求: 1.爬取该新闻网站——(网易新闻)的数据,包括标题和链接 2.爬取所有数据(翻页参数) 3.利用jsonpath解析数据 分析: 该网站属于异步加载网站——直接网页中拿不到,需要…

项目开发--基于docker实现模型容器化服务

背景 1、docker-compose build 和 docker-compose up -d分别是什么作用? 2、如何进入新构建的容器当中 3、模型保存的方法区别 4、如何让docker容器启动的时候能使用cuda进行模型推理加速 5、如何实现容器的迭代 解决方案 问题1 docker-compose build 和 docker…

WindowsAPI|每天了解几个winAPI接口之Iphlpapi.h网络配置相关文档详细分析三

上一篇:WindowsAPI|每天了解几个winAPI接口之Iphlpapi.h网络配置相关文档详细分析二 如果有错误欢迎指正批评,在此只作为科普和参考。 文章目录 GetTcpTable&GetExtendedTcpTable:获取TCP连接的信息GetOwnerModuleFromTcpEntry&#xff1…

MySQL-08.DDL-表结构操作-创建-案例

一.MySQL创建表的方式 1.首先根据需求文档定义出原型字段,即从需求文档中可以直接设计出来的字段 2.再在原型字段的基础上加上一些基础字段,构成整个表结构的设计 我们采用基于图形化界面的方式来创建表结构 二.案例 原型字段 各字段设计如下&…

深入理解线性表--顺序表

目录 顺序表- Seqlist -> sequence 顺序 list 表 顺序表的概念 问题与解答 顺序表的分类 静态顺序表 动态顺序表 问题与解答(递进式) 动态顺序表的实现 尾插 头插 尾删 头删 指定位置插入 指定位置删除 销毁 总结 前言:线性表是具有相同特性的一类数据结构…

2024 年 04 月编程语言排行榜,PHP 排名创新低?

编程语言的流行度总是变化莫测,每个月的排行榜都揭示着新的趋势。2024年4月的编程语言排行榜揭示了一个引人关注的现象:PHP的排名再次下滑,创下了历史新低。这种变化对于PHP开发者和整个技术社区来说,意味着什么呢? P…

现代数字信号处理I-P3 MVUE学习笔记

目录 1. 参数估计问题的提出与本质 2. 估计的性质 2.1 Ancillary(多余估计) 例1,Ancillary估计量 2. Uniformly Optimal 3. Sufficiency充分性 3.1 统计量充分性定义 例2:利用充分统计量定义获取伯努利分布的充分统计量 …

服务器源IP暴露后的安全风险及防御措施

在互联网安全领域,服务器的源IP地址泄露可能成为黑客攻击的切入点。本文将列举十种常见的攻击类型,并提供相应的防御建议,帮助管理员们更好地保护服务器免受潜在威胁。 一、引言 服务器源IP地址的暴露意味着攻击者可以直接针对服务器发起攻击…

Anaroute - 理论学习(一)

一、贡献: 框架能够在考虑特定约束的同时,高效地完成复杂AMS设计的布线,并实现签署质量的性能。 提出了一种对称性约束的分配算法,根据引脚位置分配合适的网络匹配要求新的引脚聚类策略,以实现规律性的布线模式&…

Flink学习地址

--基础概念 概览 | Apache Flink --应用系列 如何学习Flink:糙快猛的大数据之路(图文并茂)_flink 学习-CSDN博客 --Python系列 pyflink实时接收kafka数据至hive_pyflink下kafka数据经过处理后插入hive-CSDN博客 Pyflink教程(一)&#…

UniApp适合哪些场景

UniApp作为一款跨平台的移动应用开发框架,因其高效、灵活和强大的特性,适用于多种应用场景。以下是一些UniApp适用的主要场景: 多平台应用开发: 对于需要同时在iOS、Android、Web以及各种小程序平台发布的应用,UniApp可…

C# 字符串(string)三个不同的处理方法:IsNullOrEmpty、IsInterned 、IsNullOrWhiteSpace

在C#中,string.IsNullOrEmpty、string.IsInterned 和 string.IsNullOrWhiteSpace 是三个不同的字符串处理方法,它们各自有不同的用途: 1.string.IsNullOrEmpty: 这个方法用来检查字符串是否为null或者空字符串("…

微知-Bluefield DPU使用flint烧录固件报错MFE_NO_FLASH_DETECTED是什么?MFE是什么?

文章目录 背景一些报错场景MFE是什么?有哪些MFE 背景 在DPU的fw操作flint的时候,很多命令都会报这个错误:MFE_NO_FLASH_DETECTED,早期很疑惑并且猜测MFE是Mellanox Firmware Engine。实际并不是,具体还得走到mellanox…

2014年国赛高教杯数学建模B题创意平板折叠桌解题全过程文档及程序

2014年国赛高教杯数学建模 B题 创意平板折叠桌 某公司生产一种可折叠的桌子,桌面呈圆形,桌腿随着铰链的活动可以平摊成一张平板(如图1-2所示)。桌腿由若干根木条组成,分成两组,每组各用一根钢筋将木条连接…

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币,(i 1, 2, 3 , …),那么展开看每一天可以得到的金币数:1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 ,2个2, 3个3…,那么我…

hadoop_core-site.xml配置实例

hadoop3.2.3的高可用集群core-site.xml配置实例 <?xml version"1.0" encoding"UTF-8"?> <?xml-stylesheet type"text/xsl" href"configuration.xsl"?><configuration><property><!--Hadoop文件系统的默…