敏捷开发智慧敏捷系列之三:做不做架构设计?

精益敏捷开发的软件架构设计 在精益敏捷开发中, 如何进行软件架构设计, 一直是个有趣的话题◦ 此份材料主要便是在探讨, 在精益敏捷开发中运用简单, 轻量级, 视觉化的工具, 使得精益敏捷开发的团队成员, 可共同的协作, 以更高效的方式, 设计出可拥抱使用者, 平台与设备变化的软件架构◦ 立即下载

这是敏捷开发智慧敏捷的第三篇。(之一,之二,之三,之四,之五,之六)

缘起

甲:“敏捷不应该写架构设计,应该每个迭代都是相同的,才能达到自相似性(这是Ken Shweber说的)。”

乙:“如果不写架构设计,很容易返工,早晚还得重来。”

甲:“大不了重构,这是敏捷开发重要的实践。”

乙:“重构?重构的成本很高的,做几个迭代,后面重构都重构不过来了。”

甲:“架构设计写了很容易过度设计,而且在编码的时候还很容易全部推翻重来;。”

……

这个架构文档要不要写呢?写,为什么?不写,为什么?写,怎么写?不写,怎么不写?

为什么敏捷不做架构设计?

先把话说绝点,敏捷就是不写架构设计。那为什么不写架构设计?

还是为了减少浪费。

敏捷有两个理由认为写架构设计是浪费时间。

第一,业务需求是多变的。之前的架构写得再好,中间需求一变,架构还的改动,费时费力;很多需求可能是无用的,早期可能规划了,后期又会发现用不上,如果架构里边考虑了这些无用需求,就会过于庞大。

第二,架构设计很难判断是否正确、完备。这个本人也很有体会,本来以为很好的设计,到了编码的时候发现不是那么回事,这时候就得从头翻腾。评审一下如何?可惜,除了最终的软件,多数需求、架构、测试用例……都很难评审,评审半天,问题还是很多。

敏捷的这些假设,整体上非常普遍,可以说是在尝试“做好架构”而不得之后的妥协。

不在那些总是改来该去,还不知道是否可行的东西上浪费时间,是敏捷不做架构的出发点。

怎样写这个架构文档?

但是如果彻底不写架构设计,又可能返工,怎么办呢?当然是本着“最小浪费”原则来做架构设计。

下面是一些写和不写的内容:

写:相对稳定不变的,重构成本很高的,能看出对错的

不写:概念性的那不太准的,很容易扩展的,说不清对错的

具体要写什么不写什么,很大程度上要受到业务稳定性、技术的先进性、人员能力等各方面的影响。

所以,所有架构文档的所有写法,在每个企业都不相同,不应该问“敏捷开发应该怎样写架构文档?”,而是应该问“如果我的业务、技术、人员如此,应该怎样写架构文档?”,而若能这样发问,答案肯定可以自己找到了。

智慧敏捷的一个本质方法,是要去理解敏捷这样做的目的是什么,而不是敏捷应该怎样做。

倘若日后出现了先进的架构方法,或许架构就变成一种很容易做、很容易评审、很容易变动的东西,那时候就是另外一种说法了。但敏捷在架构设计这件事情上的本质目标却永远不变:减少浪费。

5分钟又到了,散会。

微信小程序音视频通话(for硬件)授权与设备注册实战指南 本文详细介绍了微信小程序音视频通话(for硬件)组件的开发实践,涵盖授权流程、设备注册与VoIP插件集成。重点解析了如何通过服务端获取snTicket实现用户授权,确保硬件设备与微信端的音视频通话安全可靠,适用于智能门禁、话机等物联网场景。 阅读详情

相关推荐

手把手教你用smarteye搭建免费GB28181监控平台(含海康设备接入避坑指南)

本文提供了一份基于SmartEye搭建免费GB28181视频监控平台的实战指南。详细介绍了从服务器部署、GB28181协议核心配置,到海康威视等主流设备接入的完整流程,并重点分享了设备注册失败、无法预览等常见问题的深度排错方法,旨在帮助中小企业及开发者低成本实现多品牌监控设备的统一管理。

pz89012345的博客 326

什么是敏捷开发?敏捷开发流程的8个步骤

敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。是谁这么厉害,提出了敏捷开发思想?是一位名叫 Martin Fowler 的美国大叔。

DreamSun的博客 5万+

【UE5】【蓝图】 LevelSequence 动画播放与暂停

最近有些工作,在研究UE5 蓝图的LevelSequence,来制作一些简单动画。做个笔记,记录一下动画更换绑定actor的操作,以及动画播放后如何暂停和继续。

UE5开发备忘录 1万+

什么是敏捷开发?

敏捷开发的实现主要包括Scrum与XP(极限编程,ExtremeProgramming),还有其他的一些方式。同样是敏捷开发,XP极限编程更侧重于实践,并力求把实践做到极限,实践可以是测试先行,也可以是结对变成,关键要看具体的应用场景。SCRUM则是一种开发流程框架,也可以说是一种套路。SCRUM框架中包含了三个角色,三个工件,四个仪式。其目的是为了有效完成每一次迭代周期的工作。SCRUM是一个重点。SCRUM是一个适用于增量式产品开发的管理框架,由一个5-10人左右的跨职能和自组织的团队组成。它提供了一个

Moneys的博客 4万+

乐鑫WIFI芯片开发流程梳理-工具链、编译和下载

最近开始基于乐鑫ESP32的WIFI模组的软件开发,首先要做整套流程的梳理,乐鑫官网以及安信可上已经有了较为系统的资料,但是在实现过程中也遇到了一些问题,花了几天去解决,所以为了总结,也为了给其他人提供一些借鉴,把流程分享一下,官网上相对比较完善的,就不在赘述。 1. 开发方案选择 目前网上有两套较为成熟的方案: (1)基于乐鑫官网推荐的开发方式,原网页:https://docs.espress...

一名嵌入式软件工程师的自我成长 3926

实战指南:基于ELK与Grafana构建天融信防火墙日志可视化看板

本文详细介绍了如何基于ELK与Grafana构建天融信防火墙日志可视化看板,包括环境准备、日志收集与解析配置、Elasticsearch存储优化、Grafana看板设计等关键步骤。通过实战案例和优化技巧,帮助用户高效处理天融信防火墙日志,实现安全态势的可视化监控与分析。

weixin_34246529的博客 226

开发模式-敏捷开发

随着软件开发技术的不断发展,现在出现了很多种不同的开发模式,其实敏捷开发已经成为现在很多企业开发应用程序都想要选择的开发方案,那么什么是敏捷开发呢?敏捷倡导的是用工作的软件即文档**(核心是代码即文档)**。整个项目用于产品开发的文档不是一开始准备好的(甚至都没有RP原型设计),而是在过程中”及时的“ just-in-time准备出来的,因此,我们看到的是非常简单的且常常被放在最后处理的文档(在项目中涉及到移交或问题分析时这一点显得尤其突出)

沉浸式Study 1万+

华大HC32F460RS485通信实验

华大HC32F460RS485通信实验

ZhuoWuKeJi的博客 1798

敏捷开发简介

敏捷开发 一.简介 什么是敏捷开发? 敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。 怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发; 为什么说是以人为核心? 我们大部分人都学过瀑布开发模型,它是以文档为驱动的,为什么呢?因为在瀑布的整个开发过程中,要写大量的文档,把需求文档写出来后,开发人员都是根据文档进行开发的,一切

korn的博客 4899

TSN新技术,让您的设备网络“更实时、更确定、更安全”

近日,工业和信息化部发布了2022年第23号公告,批准发布行业标准YD/T 4134-2022《工业互联网时间敏感网络需求及场景》。该标准是国内首个时间敏感网络(TSN)技术标准,标志着我国TSN技术标准体系建设迈出了坚实的一步,对构建工业互联网网络标准体系具有重要意义。TSN源于Time-Sensitive Networking的缩写,中文译名为时间敏感网络,因其具备的确定性和微秒级交互特性,受到了对实时性要求较高的工业控制领域的关注。TSN与工业数智化。

创龙,嵌入式一体化解决方案商 771

在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch

文章目录在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch结论参考资料解释相关命令版本关系版本选择总结:实验 在anaconda环境中使用conda命令安装cuda、cudnn、tensorflow(-gpu)、pytorch 结论 使用conda虚拟环境 使用conda命令安装 最重要的是版本关系(python、cuda、cudnn、pytor或者tensorflow框架)的对应。 参考资料 tensorflow2.x安装 理清GPU、

纸上得来终觉浅,绝知此事要躬行! 3万+

敏捷开发(scrum)简介

敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。 一、四大价值观(特点) 敏捷开发的特点就是下面4句话: 「个体与交互」胜过「过程与工具」 「可以工作的软件」胜过「面面俱到的文挡」 「客户协作」胜过「合同谈判」 「响应变化」胜过「遵循计划」 说明: (1)敏捷开发(scrum)适用于竞争激烈,快速变化的市场。 敏捷的客户协作观念,快速迭代能帮助团队以最小成本,最快速

清平乐的技术专栏 9054

图解电动汽车:电动汽车主要参数

动力性指标 汽车的动力性指标主要有最高车速、加速时间、最大爬坡等,体现了汽车在行驶过程中能达到的极限运动水平。对于电动汽车,其动力性由搭载的驱动电动机决定,主要的参数包括最大扭矩、额定功率、最大功率、最大转速等。 功率是指物体在单位时间内所做的功的多少,是描述做功快慢的物理量,单位是 kW。 扭矩是指机械元件转动的力矩,也称转矩,表示转动力量的大小,单位是 N·m。 转速是指发动机/电动机的转速,的单位是 rpm,即转每分钟。额定转速是指在额定功率下电动机的转速,最大转速则是在最大功率下电动机的转速。

程序员「阿基米东」的编程之旅 2万+

敏捷开发智慧敏捷系列之六:之一~之五的小结

这是敏捷开发智慧敏捷的第六篇。(之一,之二,之三,之四,之五,之六)写多了,才发现前几篇文章中有几篇都落下个章节,就是除了“看着办”之外的一些常见做法,这里总结一下。所谓常见做法,就是为了防止“看着办”看走了眼,而提前可以参考的方法,可以作为起点,但未必真的正好合适,更很难永远合适,所以不是终点。为了阅读方便,在原文中也添加了,这里仅做归纳。“写不写文档”的常见做法常见的文档虽然很多,但...

weixin_30736301的博客 117

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

敏捷开发智慧敏捷系列之一:序言

这是智慧敏捷系列的第一篇。(之一,之二,之三,之四,之五) 本文将解决各种敏捷中需要辩证思考的问题,包括:写文档还是不写文档?拥抱变更还是迭代期内无变更?持续交付的产品因为不完整被客户鄙视怎么办?做架构设计还是不做?突出进度忽略了质量怎么办?我们不用文档就能开发但客户偏偏要文档怎么办?自动化测试费力而且测试代码可能跟应用代码一起被抛弃怎么办?……缘起敏捷开发中一直有几个根本问题无法回答:什么是敏捷

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 7762

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

敏捷开发智慧敏捷系列

敏捷开发智慧敏捷系列之一:序言 这是智慧敏捷系列的第一篇。(之一,之二,之三,之四,之五) 本文将解决各种敏捷中需要辩证思考的问题,包括:写文档还是不写文档?拥抱变更还是迭代期内无变更?持续交付的产品因为不完整被客户鄙视怎么办?做架构设计还是不做?突出进度忽略了质量怎么办?我们不用文档就能开发但客户偏偏要文档怎么办?自动化测试费力而且测试代码可能跟应用代码一起被抛弃怎么办?…… 缘起 敏捷

自由空间 1509

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

敏捷开发智慧敏捷系列之二:写不写文档?

这是敏捷开发智慧敏捷的第二篇。(之一,之二,之三,之四,之五,之六) 缘起“我们产品已经做完了,客户说要补上需求文档,可我们只有用户故事,这个文档应不应该写呢?”“没有这个文档,客户能验收吗?”“不能,客户要开课题评审会,这个是评审会材料之一。”这个文档要不要写呢?写,为什么?不写,为什么?写怎么写?不写,怎么不写?为什么敏捷不写文档?先把话说绝点,敏捷就是不写文档。那为什么不写文档?为了减少浪费

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 9093

敏捷开发智慧敏捷系列之一:序言 .

本文将解决各种敏捷中需要辩证思考的问题,包括:写文档还是不写文档?拥抱变更还是迭代期内无变更?持续交付的产品因为不完整被客户鄙视怎么办?做架构设计还是不做?突出进度忽略了质量怎么办?我们不用文档就能开发但客户偏偏要文档怎么办?自动化测试费力而且测试代码可能跟应用代码一起被抛弃怎么办?…… 缘起 敏捷开发中一直有几个根本问题无法回答:什么是敏捷?怎样知道我是否敏捷了?应该怎样推行敏捷?敏捷的未来

待定的专栏 571
上一篇: 敏捷开发智慧敏捷系列之二:写不写文档?
下一篇: 敏捷开发智慧敏捷系列之四:每日立会开多久?
火星人陈勇
博客等级 码龄18年 4899粉丝 381原创
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值