16 敏捷开发实践(1)

  • 敏捷方法:是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。

  • 敏捷开发:是一种以人为核心、迭代、循序渐进的开发方法。

  • 敏捷实践:精益软件开发(LSD)、SCRUM、KanBan、极限编程(XP)

敏捷实践简介

精益软件开发(LSD)

        在创造价值的目标下,通过改良流程不断地消除浪费。现被广泛用于生产制造管理、IT系统建设。

精益开发的基本原则

  • 消除浪费:将所有的时间花在能够增加客户价值的事情上。

  • 推迟决策:保持可选方案的开放性,但时间不能过长。

  • 加强学习:通过短迭代周期、重构、集成测试和频繁的客户反馈会议增强学习。

  • 快速交付:短期迭代或小批量立即交付价值,促进有效的决策制定。

  • 打造精品:使用恰当的方法确保质量,如构建自动化测试、安装和持续集成。

  • 授权团队:精益专注于团队,让创造增值的员工充分发挥自己的潜力。

  • 优化整体:快速试错,快速学习

Scrum

        Scrum一个用于开发和维护复杂产品的框架,是一个增量的、迭代的开发过程,强调团队的自组织和跨功能性。一般由多个Sprint(迭代冲刺)组成,每个Sprint长度一般为2-4周。具体介绍见下一篇:「17 敏捷开发-Scrum(2)」。

  • 三个角色:产品所有者(Product Owner), Scrum Master,开发团队(Team)。

  • 核心:Product Backlog(产品待办事项)、Sprint Backlog(迭代待办事项)、迭代目标。

  • 流程:需求梳理、Sprint Plan(迭代计划)、Sprint (迭代)、Daily Scrum(每日站会)、Sprint Review(迭代评审)和 Sprint Retrospective(迭代回顾)

  • 五个会议:待办事项整理会议(Backlog Grooming Meeting)、迭代计划会议(Sprint Planning Meeting)、每日站会(Daily Meeting)、评审会(Review Meeting)、回顾会(Retrospective Meeting)

Kanban

        Kanban 是把敏捷的过程和产品进行可视化的方法。把过程中的协作、分工、范围、工作、需求、进度、速度、提交物等直观地展现出来。且通过限制「进行中」的任务数量来保持工作流畅。

  • 基本看板三步工作流程:「待办」、「进行中」、「完成」。

  • 在制品 (WIP): 限制设定了工作流中每个状态所能允许的最大制品量。限制在制品数量更易于发现团队工作流中的低效率现象。

  • 看板卡片:通过帮助团队成员之间信息共享。

极限编程(XP)

        一种基于频繁交付周期的软件开发方法,强调团队协作、快速反馈和持续改进。

  • 方法核心实践:测试驱动开发(TDD)、持续集成(CI)、小版本发布和团队协作。

  • 核心价值观:沟通、简洁、反馈、勇气、尊重。

敏捷开发的优势

  • 加速交付:注重迭代开发和快速响应变化,更快地交付。

  • 更灵活项目管理:允许在项目进行中灵活调整计划和需求,以更好地应对变化的市场和技术环境。

  • 增强客户满意度:强调与客户的密切合作和持续反馈,有助于团队更好地理解客户需求并及时调整开发方向,从而提高客户满意度。

  • 促进团队协作:强调团队协作和自组织,有助于激发团队成员的创造力和责任感,提高工作效率和质量。

敏捷开发的挑战

  • 资源规划难:并不是一开始知道产品“最终的样子”,是在过程中挖掘用户需求逐渐知道终局状态,给前期规划带来很大挑战。

  • 有效度量难:敏捷是以增量的方式交付,边走边看意味着开始如果设置了KPI,这跨周期的开发进度使得衡量进度相对困难。

  • 必要文档缺少或分散:频繁交付会导致成员依赖于讨论,缺少文档支撑,一些原型设计、UI设计、需求文档分散于各个迭代,不利于后期维护和交接。

敏捷宣言 12条原则

  1. 为满足客户,尽早并持续交付高价值软件。

  2. 积极面对需求变化,即使是在软件迭代后期,敏捷方法依然是帮助客户获得市场竞争优势的重要手段。

  3. 频繁交付可用的软件,交付周期越短越好。

  4. 在项目过程中,业务人员、开发人员应当保持高度合作关系。

  5. 为软件开发人员提供必要的环境和技术支持。

  6. 保证高效的面对面交谈机会。

  7. 软件可用性是衡量软件开发进度的首要标准。

  8. 敏捷流程倡导可持续开发。软件供应的甲方和乙方要保持长期稳定的合作关系。

  9. 持续地追求技术卓越和良好的设计,增强敏捷能力。

  10. 简单是敏捷流程的根本,尽最大可能减少不必要的工作。

  11. 强调软件开发过程需要形成最佳架构、需求和设计方案。

  12. 软件开发团队要以提升效率为主。

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

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

相关文章

iexcel-excel 大文件读取和写入-02-Excel 引导类简介

excel 系列 Excel Export 踩坑注意点导出方案设计 基于 hutool 的 EXCEL 优化实现 iexcel-excel 大文件读取和写入,解决 excel OOM 问题-01-入门介绍 iexcel-excel 大文件读取和写入-02-Excel 引导类简介 iexcel-excel 大文件读取和写入-03-ExcelField 注解介绍…

Java进制,进制的转换

目录 进制 进制介绍 案例演示 进制的图示 进制的转化(基本功) 二进制转换成十进制 八进制转换成十进制 十六进制转换成十进制 十进制转换成二进制 十进制转换成八进制 十进制转换成十六进制 二进制转换成八进制 二进制转换成十六进制 …

Linux信号上

信号 概念 信号是由于进程产生,但是由内核调度传递给另一个进程: 产生信号 按键产生信号: Ctrc --> 2)SIGINT(终止/中断) Ctrz --> 20)SIGTSTOP(终端暂停) Ctr\ --> 3)SIGQUIT(退出) 系统调用产生: kill(2), raise, abort软件条件产生: 如定…

泛型如何定义和使用?

根据使用的地方分为3种,分别是泛型类,泛型方法和泛型接口。 (1)泛型类 泛型类的定义 在类名的后面加一对尖括号,括号中填写类型参数,参数可以有多个,多个参数之间使用逗号分隔。 下面是一个…

从与原始的Transformer architecture比较来理解GPT

从与原始的Transformer architecture比较来理解GPT flyfish 一、Transformer architecture 先说名词 不同的文献和资料中有不同的名字,其实是一样的意思 1 编码器-解码器多头注意力机制(Encoder-Decoder Multi-Head Attention Mechanism) …

ASP.NET Core中上传文件

1.创建一个文件上传的表单 在一个视图中&#xff08;比如Index.cshtml&#xff09;&#xff0c;添加一个表单来让用户选择文件并上传。 model IFormFile <form method"post" enctype"multipart/form-data"> <div class"form-group"…

爬虫-实战爬取虎扑ACG帖子

要求如下: 爬取虎扑步行街 ACG 版面的数据,要求使用多线程来并发爬取。范围是第一页的所有帖子,每个帖子包含标题、主题内容和第一页的所有回复内容。最后打印出爬到的所有帖子的标题。 网址是:ACG圈 - 虎扑社区。 针对上面的要求,我们进行分析: 首先是要使用多线程范…

韩顺平0基础学java——第39天

p820-841 jdbc和连接池 1.JDBC为访问不同的数据库提供了统一的接口&#xff0c;为使用者屏蔽了细节问题。 2.Java程序员使用JDBC&#xff0c;可以连接任何提供了JDBC驱动程序的数据库系统&#xff0c;从而完成对数据库的各种操作。 3.jdbc原理图 JDBC带来的好处 2.JDBC带来的…

结构体笔记

结构体 C语言中的数据类型&#xff1a; 基本数据类型&#xff1a;char/int/short/double/float/long 构造数据类型&#xff1a;数组&#xff0c;指针&#xff0c;结构体&#xff0c;共用体&#xff0c;枚举 概念&#xff1a; 结构体是用户自定义的一种数据类型&#xff0c…

flink 实现大数据实时数据采集

Apache Flink 是一个流处理框架&#xff0c;用于处理无界和有界数据流。在大数据实时数据采集领域&#xff0c;Flink 凭借其高吞吐量、低延迟和精确的状态管理特性&#xff0c;成为了实现实时数据处理的理想选择。下面将介绍如何使用 Flink 来实现大数据的实时数据采集和处理。…

《Milvus Cloud向量数据库指南》——ChatGLM:从GLM-130B到GLM-4

ChatGLM:从GLM-130B到GLM-4的跨越:智谱AI在通用人工智能领域的深度探索与实践 在人工智能的浩瀚星空中,智谱AI如同一颗璀璨的新星,以其独特的技术视角和坚定的创新步伐,在通用人工智能(AGI)的征途上留下了深刻的足迹。技术生态总监贾伟在近期的一次分享中,不仅为我们描…

20.rabbitmq插件实现延迟队列

问题 前面谈到基于死信的延迟队列&#xff0c;存在的问题&#xff1a;如果第一个消息延时时间很长&#xff0c;而第二个消息延时时间很短&#xff0c;第二个消息并不会优先得到执行。 下载插件 地址&#xff1a;https://github.com/rabbitmq/rabbitmq-delayed-message-excha…

49.TFT_LCD液晶屏驱动设计与验证(2)

&#xff08;1&#xff09;Visio视图&#xff1a; &#xff08;2&#xff09;控制模块Verilog代码&#xff1a; module tft_ctrl(input clk_33M ,input reset_n ,input [23:0] data_in ,output [9:0] hang…

Cortex-M内核M0,M0+,M3,M4,M7之间的区别

之所以ARM公司会把Cortex-M分为这么多系列&#xff0c;主要是针对不同的应用领域&#xff1b;下面详细介绍&#xff1a; Cortex-M分为&#xff1a;M0&#xff0c;M0&#xff0c;M3&#xff0c;M4&#xff0c;M7 M0&#xff0c;M0&#xff1a;基础版本&#xff0c;从图中可以看…

Centos部署PHP

环境&#xff1a;Centos7 安装PHP步骤&#xff1a; 一&#xff1a;安装依赖 yum install epel-release -yyum install gcc openssl-devel libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel oniguruma-devel -y 二&#xff1a;下载php源码⽂件 cd /usr/local/srcwge…

PLSQL Developer工具查询数据,报错(动态性能表不可访问)

解决的问题&#xff1a; 解决方案&#xff1a; 在配置-首选项-选项&#xff0c;取消勾选“自动统计”&#xff0c;保存之后即可查询数据

WSL快速入门

1. WSL介绍 WSL文档地址&#xff1a;https://learn.microsoft.com/zh-cn/windows/wsl WSL&#xff1a;全称 Windows Subsystem for Linux&#xff0c;即windows上的Linux子系统&#xff08;虚拟机工具&#xff09;。是Win10推出的全新特性&#xff0c;可以更轻量地在Windows系统…

【网络安全】子域名模糊测试实现RCE

未经许可&#xff0c;不得转载。 文章目录 正文总结 正文 在之前测试一个私人项目时&#xff0c;我报告了admin.Target.com上的Auth Bypass漏洞&#xff0c;这将导致SQLI&RCE &#xff0c;该漏洞在报告后仅一天就被修复。 现在重拾该应用程序&#xff0c;对子域进行模糊测…

Java整理18

1、AOP AOP概念&#xff1a;通过预编译方式和运行期动态代理方式实现&#xff0c;在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。 动态代理分类:JDK动态代理&#xff1a;有接口代理对象和目标对象实现同样的接口cglib动态代理&#xff1a;无接口继承被代理的目…