敏捷开发:想要快速交付就必须舍弃产品质量?
随着敏捷的推广与应用,如今已经成为了最有效的团队级别的方法论,越来越多的软件和 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…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...