从持续交付看敏捷开发的自相似性(敏捷开发的心跳)

架构师必知必会系列:持续交付与敏捷开发 作者:禅与计算机程序设计艺术 1.背景介绍 “架构师”这个职位名称带有浓烈的工程学科色彩,代表着建筑设计师、结构构造师等更具专业知识的职位,但是随着互联网+、移动互联网、物联网等新技术的发展,出现了一种新的架构师角色——“软件架构师”。 软件架构师作为一个新兴岗位,仍然处于起步阶段。对 阅读详情

       作者:陈勇

       出处:blog.youkuaiyun.com/cheny_com

      

自相似性是指一个事物的局部与其更大的局部乃至整体具有相似性。

从大的方面看,敏捷开发具有重视客户价值,提倡持续交付等思想。但一般而言,Product Owner常常具备相当好的客户价值意识,而一线开发人员则比较关注技术本身,所以一旦仅仅停留在思想层面,在实际工作的时候就会发现有所背离。因此应该从自相似性的眼光看待敏捷开发的整体思想与局部实践,从而做到年年月月日日事事均符合敏捷开发的思想。

本文只从“持续交付”这一个敏捷开发思想来分析敏捷开发的自相似性。

“持续交付?是不是就是每个冲刺结束都要有一个可运行的版本?”是,也不是。

 

冲刺末尾的持续交付

敏捷最大的特色之一,就是阶段性地交付可运行的软件,而不是一堆暂时无法使用的文档。按照精益生产的思想,文档只是一种“中间产物”,不但不容易写好,还很难评审;即使在初期看到了完美的需求文档,也很难保证最后能看到完美的软件。因此敏捷开发决定只要可能(不是绝对的),就尽量绕开这个中间产物,而用可运行的软件来表明软件的进度和质量。

在冲刺的末尾,Product Owner和干系人们不是看着文档,而是看着一个可运行的软件进行评审,是这里持续交付的核心目的。为了方便评审,被交付的往往是一组相关的故事群,而不是“当前最重要的需求”。

 

冲刺内的持续交付

冲刺期内看平静,大家忙忙碌碌只待最后交付,其实不然。如果每个迭代都始自“需求分析”而终于“系统测试”,敏捷开发就变成迭代开发了。然而即使每个用户故事都独立开发,仍可能发生一堆故事都在“开发中”,但因为这些故事无法独立成章因而无法形成可运行软件的状态。为了防止这种情况,好故事一般都独立、可测试、完整地交付某个客户价值,因而每当完成一个故事,都能形成一个临时的可运行软件。

若能遵循MoSCoW方法(另有博文详述),则可以保证即使冲刺结束时无法完成所有Sprint Backlog项,仍能向Product Owner交付一个可用的软件。

 

“日创建”的持续交付

“日创建(Daily Build)”因能在每天结束时都能交付软件而闻名(这是微软在开发Windows时的创举),但对于小型软件开发,已经能做到每人每次提交代码在10分钟后就能看到结果的能力。1000人在开发了1000天的软件里边定位1,000,000个缺陷是不可思议的(平均1人1天1个缺陷),但每人在自己每天的代码中定位一个缺陷却是很现实的,前提是你能找到它,日创建就是这个逻辑。

一般常常提到的持续集成+自动化测试指的就是这个层面的持续交付活动,其目标是在提交代码后最短的时间内形成可运行软件,并确认是否存在问题。

 

版本间的持续交付

很多软件看似越来越强大,但市场反响却并不好(比如很多人安装的“免费”Office都是2003的,也就是7年间完全没有和MS做生意的打算),原因就在于这些软件并没有解决好一个问题:“下个版本到底面向哪个市场的哪类客户?他们为什么购买它?”这时软件很容易跟随公司领导的思绪梦游,或者被一两个大客户牵着鼻子走,或盲目地试图覆盖竞争对手的所有功能而迷失本性。

还是之前那句话:按照商业步调计划版本内容,也就是每个版本出来后,都要满足某些需求、获取某些客户、打败某些对手、取代某些产品……如果能持续找到这些“某些”是谁,那么下一个版本就能成功,如果找不到,兴许产品已经到达退出市场的阶段。如果不能持续找到市场和客户,怎样持续交付可运行的软件都是一件没有意义的事情。

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

 

【信息科学与工程学】计算机科学与自动化——第三十篇 系统工程01 系统工程 阅读详情

相关推荐

Sprint冲刺阶段:如何保持团队高效产出的7个秘诀

在敏捷开发中,Sprint冲刺阶段是价值交付的核心环节,但许多团队在此阶段常面临效率低下、进度延迟、质量波动等挑战。本文揭示了7个经过实践验证的秘诀,帮助团队在Sprint冲刺阶段保持高效产出,同时确保交付质量。通过精准规划、高效沟通、可视化管理、持续集成、变更控制、团队赋能和复盘改进的系统化方法,任何敏捷团队都能显著提升Sprint成功率。每个秘诀都配备了实际案例、实施步骤和工具推荐,为Scrum Master、产品负责人和团队成员提供可立即应用的实用指南。

项目管理的博客 981

敏捷开发修炼之道 (二)学无止境、交付用户想要的软件

许多新技术都基于现有的技术和思想。它们会加入一些新的东西,这些新东西是逐步加入的量。需要了解一些跟踪变化的方法。你不可能“战胜”变化——无论它是设计、架构还是你对需求的理解。敏捷一一成功的软件开发方法一一取决于你识别和适应变化的能力。只有这样才有可能在预算之内及时完成开发,创建真正符合用户需求的系统。...

Exp.Joker 570

复杂网络的自相似性研究

复杂网络模型简介,复杂网络的自相似性研究介绍的PPT

敏捷开发入门教程-----摘抄

敏捷开发入门教程 作者:阮一峰 日期:2019年3月 6日 感谢腾讯课堂NEXT学院赞助本站,官方小程序课程正在招生。 敏捷开发(agile development)是非常流行的软件开发方法。据统计,2018年90%的软件开发采用敏捷开发。 但是,到底什么是敏捷开发,能说清的人却不多。本文尝试用简洁易懂的语言,解释敏捷开发。 一、迭...

weixin_30745641的博客 1075

产品经理的工作流程,项目管理和具体交付物,以及一些概念

产品新人防坑参考,防止坑爹需求和流程坑害程序员,不要出了BUG就拿程序员祭天

ais信号接收设备_国内首款基于软件无线电技术的AIS基站投入测试使用

星网宇达子公司北京凯盾环宇科技有限公司经过多年的潜心研发,成功研制出国内首台基于软件无线电(SDR)的CATON 9011 AIS基站。该基站采用软件无线电技术,利用软件数字技术代替传统的模拟电路,大大的降低了模拟器件的使用率,提高了基站的可靠性和使用年限。CATON 9011 AIS基站研制依据ITU-R M.1371-5、IEC 62320-1、IEC 61162-1等国际标准,兼容...

weixin_29057163的博客 2334

敏捷开发的持续集成与持续交付

1.背景介绍 敏捷开发是一种软件开发方法,它强调快速、灵活的响应变化,以满足客户需求。持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)是敏捷开发的重要组成部分,它们的目的是提高软件开发的效率和质量,降低风险。 持续集成是一种软件开发的实践,它要求开发人员在每次提交代码时,自动构建、测试和部署代码。这样可以及时发现错误,并确...

AI天才研究院 774

STLink驱动故障全解析:从卡顿到重装的终极修复指南

本文全面解析STLink驱动故障的常见现象及解决方案,包括驱动卸载、重装、Keil环境配置等关键步骤。针对设备管理器黄色感叹号、Keil识别异常等问题,提供从软件到硬件的终极修复指南,帮助开发者高效解决STLink连接问题。

sss66的博客 736

分形理论的基础概念

一、自相似性 一个系统的自相似性是指某种结构或过程的特征从不同的空间尺度或时间尺度来看都是相似的,或者某系统或结构的局域结构与整体类似。另外,在整体和整体之间或部分与部分之间,也会存在自相似性。一般情况下自相似性有比较复杂的表现方式,而不是局域放大到一定倍数以后简单地和整体完全重合。但是,表征自相似系统或结构的定量性质如分形维数,并不会因为放大或缩小等操作而变化(这一点被称为伸缩对称性),所改变

LinJM-机器视觉 1万+

【实战指南】EC-Engineer中ESI配置与PDO Mapping全流程解析

本文详细解析了EC-Engineer中ESI配置与PDO Mapping的全流程操作,包括环境准备、ESI文件导入技巧、在线配置细节及故障处理。特别强调了WinPcap驱动的兼容性问题和PDO Mapping的最佳实践,帮助工程师高效完成EtherCAT总线配置,适用于工业自动化领域的伺服控制与运动协同场景。

weixin_28730927的博客 397

别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

本文详细介绍了如何利用UE5 Lyra框架快速搭建多人对战游戏原型,包含完整的配置流程和实战案例。Lyra作为可直接二次开发的游戏模板,内置了GAS技能系统、Enhanced Input输入控制等核心功能,大幅缩短开发周期。通过替换角色模型、调整武器数值和配置新地图规则,开发者可在48小时内完成科幻团队竞技游戏原型的搭建。

weixin_28717411的博客 457

《现实世界的敏捷开发》敏捷开发培训课程扩展阅读

转自 http://blog.youkuaiyun.com/cheny_com/article/details/6532763 以下内容及链接,是两天培训课程《现实世界的敏捷开发》的扩展阅读部分。 所谓扩展阅读,就是对于那些限于课堂时间而无法深入展开的知识点,讲师会编写额外的

理性的幻想 983

汽车软件工程师必看:ASPICE开发流程全解析(附各阶段交付物清单)

本文全面解析了汽车行业广泛采用的ASPICE开发流程,详细介绍了从需求挖掘到系统架构设计、软件工程及测试验证各阶段的关键操作和交付物清单。针对汽车软件工程师,提供了实用的协作指南和工具推荐,帮助团队提升开发效率并降低项目风险,是掌握ASPICE标准的必备指南。

weixin_30733003的博客 646

复杂网络的自相似性和分形性

简述复杂网络的自相似性和分形性

嵌入式阿齐Archie 2746

SAP Fiori Elements 扩展实战:UI 层扩展、OData 服务扩展、CDS 视图增强及全流程案例

UI 层扩展主要关注在不修改标准生成界面的基础上,自定义用户界面元素和交互逻辑。典型需求包括:在现有 Fiori Elements 界面上添加新的字段(如表格列或表单项)、增加自定义按钮并绑定操作、以及通过控制器扩展加入事件处理等。无论在 RAP 还是传统 BOPF 架构下,前端 UI 扩展通常采用 SAPUI5 提供的**扩展点(Extension Points)和控制器扩展(Controller Extension)**机制来安全地插入自定义代码。下面分别说明两种后端架构下 UI 扩展的实现方式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 902

华为OD机考双机位C卷 - 采购订单 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 采购订单 。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 426

【复杂系统系列(初级)】把自相似性比作一个“无限镜子”,它能够在不同的尺度上反射出相同的图案或结构。

自相似性的基本思想可通过以下公式体现:SxSax)其中,S代表自相似结构,x是尺度参数,a是缩放因子Sx)xxa具体来说:Sx)xa:SxSax):a0.5:#自相似性#分形#递归#尺度参数#缩放因子#复杂系统。

神经美学_茂森的博客 1926

【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板

NPU(Neural Processing Unit) 是专门用于人工神经网络推理与训练的处理器,具备高并行、低功耗、低延迟等特点。它是边缘 AI、自动驾驶、智能摄像头、语音识别等场景中的关键硬件。

moton2017的博客 2249

敏捷开发的一些东西

提升团队的交付能力?如何实践敏捷软件开发。这个是很多团队必须面对的问题,也是让项目经理比较头疼的问题。如果一个项目不能有一个很好的交付,那么项目就是失败的。 下面是一个关于对于提升团队交付能力的一些实践建议或者准则。 这些准则是百度的路宁老师总结,非常感谢路宁老师在百度开发者大会上的分享。 一,制定基于交付物的增量交付计划 上图是路宁老师在演讲中用到软软件编码过程的迭代过程,横轴代表个

com360的专栏 1244

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

敏捷项目实践的知识点

迭代规划会议:规划整个迭代过程中的目标和Backlog;迭代复盘会议:从过去中学习,指导将来,改进团队的生产力。每日站立会议:每天检视迭代中的问题和工作进展;迭代评审会议:向关键相关方演示成果及获取反馈;一、敏捷实践方法的要求。

软件攻城狮 330

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

敏捷开发、持续集成/交付(CI/CD)

版权声明:遵循CC 4.0 BY-SA版权协议。 原文链接:https://blog.youkuaiyun.com/CrankZ/article/details/81545439 目录 概述 敏捷开发 前言 传统开发 敏捷开发 总结 CI/CD 概述 持续集成CI(Continuous Integration) 基本概念 持续交付CD(Continuous Delivery) 基本概念 持续部署(Continuous Deployment) 基本概念 持续交付(Continuous

木槿的博客 1305

scrum敏捷开发方法论

当前业界有两种主要的软件项目开发方法论,分别是Waterfall(瀑布模式)和Agile(敏捷模式)。而本文介绍的scrum便是敏捷模式中一个很常用的方法论。瀑布模式是传统的软件开发模式,一般会在软件开发前期确定好软件需求,设计好软件架构,安排好开发计划,然后开始具体的开发工作。当软件开发基本结束后,测试人员开始介入,着手软件测试工作,同时开发人员开始修改bug,在软件最终交付日期前完成开发和测试的所用工作。

aizhaoyu的专栏 1658

敏捷开发、持续集成/交付(CI/CD)、DevOps学习笔记

概述 敏捷开发和DevOps都是一种理念。他们的理念相似,都是为了更好更快的发布产品,但又不完全相同。 而CI/CD是实现这两者理念的一种方法。 敏捷开发 前言 传统方式开发前有一份详细的开发文档,程序员照着需求直接敲代码,产品做好了直接部署上线。中间不会有人打扰,需求也不会变。 但是目前的情况是,用户需求和市场都变化太快,就算你前期用户调研的再好,计划书写的再详细,也抵不住市场的变化...

CrankZ的博客 2万+
上一篇: 如何面向用户价值编写敏捷开发用户故事
下一篇: 从优先级排序看敏捷开发的自相似性
火星人陈勇
博客等级 码龄18年 4899粉丝 381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值