敏捷开发:想要快速交付就必须舍弃产品质量?
随着敏捷的推广与应用,如今已经成为了最有效的团队级别的方法论,越来越多的软件和 IT 团队正在采用敏捷,但是你在敏捷吗?
自从那一群充满影响力的软件从业者聚集在一起并发布了《敏捷宣言》以来,已经过去了 23 年。敏捷开发实践自宣言首次出现以来,已逐渐成为各种企业必不可少的管理方法。如今,敏捷已经不仅仅是软件开发团队的利器,它已经成为了建立在转型举措之上的领导原则和方向指引。
在这二十余年的发展历程中,敏捷的学习与实施已经成为现代软件驱动型组织中的日常标配。然而,对于软件领导者们来说,仍需思考一个关键问题,即如何引导自己的团队走出仅仅按部就班执行敏捷仪式的误区,真正地“变得敏捷”?
对于领导者来说,敏捷成了基于转型举措的指导原则。在过去的二十多年里,学习实施敏捷方法已经在现代软件驱动的组织中变得司空见惯。不过,对于软件领导者来说,更重要的是思考如何让自己的团队变得敏捷,而不是只简单地执行书中规定的敏捷仪式。
实施敏捷并不意味着就敏捷了
“敏捷是一种态度,而不是一种有界限的技术。”《敏捷宣言》的合著者Alistair Cockburn写道。
虽然宣言的首要原则是强调“个体和交互高于流程和工具”,但不少促进敏捷的软件工具在本质上已经成为了流程本身的替代品。例如,一些团队以"实施敏捷"的名义,进行多达几十人规模的迭代规划,让这些团队成员进行拥挤的站立会议,这势必无法让所有人都能了解团队其他人的协作情况。过于庞大的团队和过长的冲刺计划反而增强了团队的压力,导致成员之间的沟通困难,原本用于监控进度和压力的敏捷工具燃尽图也变成了“烧毁”他们的工具。所以实施敏捷并不意味着就成为了真正的敏捷团队,因为我们都知道敏捷并不仅仅只是一种工作方式或方法,而是注重团队的思维方式和文化。
“ 敏捷 ” 的三个指导原则
敏捷更多的是关于集体思维和团队文化,而不是关于离散的支持过程。许多敏捷驱动的项目都缺乏人们机械地走过场而没有理解和积极应用敏捷真正精神的能力。
根据不同敏捷团队的经验,我们总结出了以下三个原则,帮助团队更好地实施敏捷。
原则1 :持续不懈地管理业务目标,而不是任务
可以问问自己为什么企业关心这个问题。这虽然是个基础性地简单问题,但我们鼓励管理者不断挑战他们的团队,要求他们回答每一个功能请求和用户故事。虽然这看起来有点过头了,但在整个开发生命周期中提出这个问题可以帮助团队养成强化流程本身这一最终目标的习惯,有助于推动团队和外部利益相关者之间的协调。
例如,我们经常与客户合作,帮助他们实现技术堆栈现代化,帮助他们将应用程序迁移到容器编排或云原生平台。这虽然看起来像是一个目标,但实际上是一个实施细节,而不是我们可以衡量或跟踪的业务成果。要明白工具或技术是服务于业务目标的。
原则2 :工具和流程应该促进交互,而不是阻碍
工具是达到目的手段,是为底层流程服务的工具。成熟的流程依赖于工具,但并不从属于工具本身。无论是简单的看板还是先进的项目管理系统(例如禅道项目管理软件),我们经常会看到很多团队只是将这些工具用作于描述“跟踪工作”情况。
如果没有完全成熟的流程,即使是最好的工具,都会让团队缺乏驱动工作的业务目标的动力。
敏捷的Scrum Master应该努力帮助他们的团队不断学习和探索:如何最好地服务于更广泛的业务目标。比如用于修正方向的过程指标应该是什么?需要的反馈来自哪里?应该多久收到一次反馈?团队和组织应该能够在不破坏现有地整个流程之下,合理地适应不断变化的需求。
原则3 :关注“What” ,而不是“How”
最小可行产品(MVP)的概念是敏捷方法论的基础。推动 MVP 的目标是向用户提供新的软件功能,同时收集和整合反馈以继续改进产品。不过,由于团队负责人经常在不同的团队中工作,并考虑到不同的最终用户,因此此流程很容易与既定的业务策略不一致。
一个团队可能负责探索一种新产品或服务方法,并将使用精益/MVP 工具来确定解决方案。另一个可能强调在现有产品中添加或增强功能,而第三个可能负责改善开发人员体验或基础设施。
在敏捷的背景下,认识到工作开发方式的差异至关重要,尤其是考虑到组织内的工作节奏。我们经常看到基础设施自动化、站点可靠性和平台工程工作被硬塞到两周的 Scrum 节奏中,而工作的性质并没有完全落入两周的增量。
敏捷作为一种理论和实践,旨在帮助团队更好地适应环境的变化,应对工作中的挑战和问题,提高工作效率和成果的质量。实施敏捷的方法和工具,本应成为达成这个目标的手段,而不应当成为目标本身。真正的敏捷在于团队和个人对敏捷理念的理解,以及由此产生的工作态度、行为和方法。
从纸面上的敏捷实践到真正内化为企业文化的敏捷,这需要我们整个团队的长期努力和尝试。真正的敏捷,核心在于团队成员的积极响应,不断学习和改进,从而提升团队的效率和过程质量。因此,我们不仅要学习和理解敏捷的理念和原则,还要将这些原则融入到自己的日常工作中,才能真正地"变得敏捷"。
总的来说,敏捷是一个循序渐进,又充满挑战的过程。无论你是已经在实践敏捷的团队还是刚接触敏捷的新手,都可以从每日的工作中挖掘出更深的敏捷内涵,学习并理解敏捷的真谛,最终实现由"做敏捷"向 "变得敏捷"的转变。
相关文章:

敏捷开发:想要快速交付就必须舍弃产品质量?
随着敏捷的推广与应用,如今已经成为了最有效的团队级别的方法论,越来越多的软件和 IT 团队正在采用敏捷,但是你在敏捷吗? 自从那一群充满影响力的软件从业者聚集在一起并发布了《敏捷宣言》以来,已经过去了 23 年。敏…...
SNMP-详解指南
目录 SNMP介绍 SNMP的工作机制轮询 SNMP的MIB(管理信息库) SNMP是基于UDP协议 SNMP介绍 SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于互联网上的网络管理协议。它提供了一种标准化…...

vue-router 原理【详解】hash模式 vs H5 history 模式
hash 模式 【推荐】 路由效果 在不刷新页面的前提下,根据 URL 中的 hash 值,渲染对应的页面 http://test.com/#/login 登录页http://test.com/#/index 首页 核心API – window.onhashchange 监听 hash 的变化,触发视图更新 window.onhas…...

WebGl/Three 粒子系统 人物破碎及还原运动
粒子 首先,加载模型,这是万千粒子的前身,模型对象由很多面构成,这些面又是由各个点构成的,所以可以将模型的几何体对象geometry赋给粒子对象,粒子物体用Points方式渲染 bloader.load("obj/female02/Fe…...
华为OD-C卷-分披萨[100分]
题目描述 "吃货"和"馋嘴"两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。但是粗心的服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。 由于两人都想吃到最多的披萨,他们商量了一个他们认…...
uniapp 中video标签视频禁止快,拖拽快进
废话不多说,直接上代码 <video id"myVideo" :src"sectionInfo.type_config.video_url" timeupdate"bindtimeupdate"></video> <script>export default {data() {return {historyTime: 0,}},methods:{// 监听播放进…...

网页端HTML使用MQTTJs订阅RabbitMQ数据
最近在做一个公司的日志组件时有一个问题难住了我。今天问题终于解决了。由于在解决问题中,在网上也查了很多资料都没有一个完整的实例可以参考。所以本着无私分享的目的记录一下完整的解决过程和实例。 需求:做一个统一日志系统可以查看日志列表和一个可…...

课题学习(二十一)----姿态更新的四元数算法推导
声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。 最近需要使用AEKF对姿态进行结算,所以又对四元数进了深入的学习,本篇博客仅对四元数进行推导,后续会对基于四元数的…...

NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL、SQL-PaLM)、新一代数据集BIRD-SQL解读
NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL)、新一代数据集BIRD-SQL解读 NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2…...
双指针运用:删除重复元素、移除元素
26.删除重复元素 题目描述 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元…...
什么是三高架构
三高架构是指在软件系统设计与开发中,注重解决高并发性、高可用性和高性能的架构设计模式。 高并发性:指系统能够处理大量并发请求的能力。在高并发场景下,系统需要具备有效的并发处理机制,以保证系统能够快速、准确地响应大量并…...

Unity 对APK签名
关键代码 PS D:\UnityProject\YueJie> jarsigner -verbose -keystore D:\UnityProject\YueJie\user.keystore -signedjar D:\UnityProject\YueJie\meizuemptyapk-release-signed.apk D:\UnityProject\YueJie\MeizuEmpty-release-unsigned.apk 1 示例 # jarsigner的命令格…...
合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测等应用
合成孔径雷达干涉测量(Interferometric Synthetic Aperture Radar, InSAR)技术作为一种新兴的主动式微波遥感技术,凭借其可以穿过大气层,全天时、全天候获取监测目标的形变信息等特性,已在地表形变监测、DEM生成、滑坡…...
QT进阶------------------QPushButton(快速添加按钮与使用)
1、解决如何快速的添加按钮 在qt中,通常我们喜欢一个按钮添加一个信号与槽,但是这样写太过浪费时间。要是多个按钮那不是要写30个信号与槽,说实话,我不太喜欢这样。 在ui中,只要拖动按钮,会自动生成按钮的名…...

Vue项目管理器创建项目
黑马程序员JavaWeb开发教程 文章目录 1、创建新项目2、详情3、预设4、功能5、配置6、是否保存为预设模板7、正在创建项目8、创建完成 1、创建新项目 2、详情 3、预设 选择手动,点击下一步 4、功能 只需要额外选择一项–Router 即可,其余的保持默认&a…...

PHP-extract变量覆盖
[题目信息]: 题目名称题目难度PHP-extract变量覆盖1 [题目考点]: 变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。 经常导致变量覆盖漏洞场景有:$$&#x…...

研究表明,全球互联网流量竟有一半来自机器人
据Cyber News消息,Thales Imperva Bad Bot近期做了一份报告,显示在2023年有49.6%的互联网流量竟来自机器人,比上一年增长 2%,达到自2013年以来观察到的最高水平。 报告称,这一趋势正对企业组织产生负面影响,…...
橡胶衬板的更换与安装
橡胶衬板的更换与安装 橡胶衬板作为一种重要的工业材料,广泛应用于各种设备和机器中,以提供减震、防滑、耐磨等功能。然而,随着时间的推移和使用频率的增加,橡胶衬板可能会磨损或老化,需要及时更换和安装。本文将介绍…...

Compose 简单组件
文章目录 Compose 简单组件TextText属性使用AnnotatedStringSpanStyleParagraphStyle SelectionContainer 和 DisableSelectionClickableText TextFieldTextField属性使用OutlinedTextFieldBasicTextFieldKeyboardOptions 键盘属性KeyboardActions IME动作 ButtonButton属性使用…...

第十一届蓝桥杯省赛真题(C/C++大学B组)
目录 试题A :门牌制作 试题B :既约分数 试题C :蛇形填数 试题D :跑步训练 试题E :七段码 试题F :成绩统计 试题G :回文日期 试题H :字串分值 试题I :平面切分&a…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...