Martin对敏捷宣言中“可工作软件胜过面面俱到文档”的解释

Martin对敏捷宣言中“可工作软件胜过面面俱到文档”的解释

没有文档的软件是一种灾难。代码不是传达系统原理和结构的理想媒介。团队更需要编制易于阅读的文档,来对系统及其设计决策的依据进行描述。

 

 

然而,过多的文档比过少的文档更糟。编制众多的文档需要花费大量的时间,并且要使这些文档和代码保持同步,就要花费更多的时间。如果文档和代码之间失去同步,那么文档就会变成庞大的、复杂的谎言,会造成重大的误导。

 

 

对于团队来说,编写并维护一份系统原理和结构方面的文档将总是一个好主意,但是那份文档应该是短小的(short)并且主题突出的(salient)。“短小的”意思是说,最多有一二十页。“主题突出的”意思是说,应该仅论述系统的高层结构和概括的设计原理。

 

 

如果全部拥有的仅仅是一份简短的系统原理和结构方面的文档,那么如何来培训新的团队成员,使他们能够从事与系统相关的工作呢?我们会非常密切地和他们在一起工作。我们紧挨着他们坐下来帮助他们,把我们的知识传授给他们。我们通过近距离的培训和交互使他们成为团队的一部分。

 

 

在 给新的团队成员传授知识方面,最好的两份文档是代码和团队。代码真实地表达了它所做的事情。虽然从代码中提取系统的原理和结构信息可能是困难的,但是代码 是惟一没有二义性的信息源。在团队成员的头脑中,保存着时常变化的系统的脉络图(road map)。人和人之间的交互是把这份脉络图传授给他人的最快、最有效的方式。

 

 

许多团队因为注重文档而非软件,导致进度拖延。这常常是一个致命的缺陷。有一个叫做“Martin文档第一定律(Martin’s first law of document)”的简单规则可以预防该缺陷的发生:

直到迫切需要并且意义重大时,才来编制文档。

 

 

摘自:Robert C. Martin《敏捷软件开发:原则、模式与实践》

 

DAZ STUDIO 快速渲染技巧 DAZ STUDIO 快速渲染技巧: 本文将向您展示几个快速渲染技巧。您将学习如何使您的Daz Iray渲染和照明在Daz工作室内更快。 当你有一个大场景,这可能需要很多小时进行渲染。 但是如果你想大幅度降低渲染时间呢?这篇文章的提示应该能让你达到这个目标。 首先,我们需要弄清楚一件事——没有“完美的环境或设置”这样的东西。是因为渲染设置是高度个性化和主观性的东西,这主要取决于场景和硬件。如果你有一个功能强大的计算机,你可以允许更多的低渲染时间,反之亦然。因此,一切都取决于您尝试渲染的对象和机器。 阅读详情

相关推荐

SystemRDL:从寄存器描述到自动化生成的完整指南

本文详细介绍了SystemRDL如何通过“一份描述,多处生成”的理念,彻底解决芯片与FPGA设计中手动维护寄存器带来的不一致与低效问题。文章提供了从语言快速上手、核心组件讲解到使用PeakRDL工具链实现自动化代码与文档生成的完整实战指南,帮助硬件工程师构建高效、可靠的寄存器开发流程。

weixin_29243279的博客 659

>摘录

第Ⅰ部分敏捷开发人们之间的交互是复杂的并且从来都没有很明确的效果,但是它们却是工作中最为重要的方面。——Tom DeMacro 和Timothy Lister《人件》,第5页原则(principle)、模式(pattern)和实践(practice)都是重要的,但是使它们发挥作用的是人。正如Alistair Cockburm 所说的①,“过程和方法对于项目的结果只有次要的影响。首要的影响是人。”如

SeanWXQ的专栏 655

NT35310 - LCD显示屏

NT35310 是一个低功耗、26 万色、单芯片的 TFT-LCD 控制器/驱动器,分辨率 480*320,它有一个 345600 字节的显示 RAM 和一整套控制功能。NT35310 支持数字接口(MDDI),MIPI 接口,RGB 接口,8 / 9 / 16 / 18 位8080 接口。可以实现指定的窗口区域可以有选择地更新,以便可以显示运动图像。同时也可以独立显示静止的图像区域。...

m0_62444125的博客 3321

敏捷软件开发原则-可以工作的软件重于面面俱到的文档

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34008805的博客 874

蜻蜓fm爬虫python

本文介绍了一个用于下载蜻蜓FM音频书籍的Python脚本实现。该脚本主要功能包括:1)通过账号密码登录获取认证信息;2)从目标书籍主页提取版本信息;3)获取书籍节目总数和分页信息;4)生成节目下载链接(使用HMAC-MD5加密算法生成请求签名);5)下载音频文件并保存。脚本采用多种反爬措施:设置User-Agent模拟浏览器行为、使用动态时间戳、HMAC-MD5签名验证等,有效规避简单的反爬机制。整个流程包括登录认证、获取书籍信息、生成下载链接和保存音频文件四个步骤,实现自动化批量下载功能。

野猫炫的博客 912

欧姆龙OMRON PLC之HostLink通讯协议(四)-FINS命令进阶应用与调试技巧

本文深入探讨欧姆龙OMRON PLC的HostLink通讯协议中FINS命令的进阶应用与调试技巧。文章聚焦实战排错,详细解析命令帧解剖、响应帧解读与网络抓包三大核心方法,并分享性能优化策略,如合并读写与异步设计。同时介绍了强制操作、多存储区访问等高级命令的应用场景,旨在帮助工程师高效解决现场通讯问题,提升系统稳定性与效率。

nept的博客 750

敏捷宣言二解读:可以工作的软件胜过完备的文档&实践思考

即使文档准确地反映了当时的软件设计,随着软件的重构和进化,如果不及时更新(这是常态,因为程序员喜欢写代码而不喜欢写文档),文档也会快速变得过时。琴师的意思是:琴曲的美妙之处就在琴曲之中,一切语言的描述都是不准确、不全面的,是多余的。最有效的沟通方式是面对面沟通,其次是视频会议(假设带宽够大,视野够广),再其次是电话,再其次是QQ等即时通讯工具,最后才是正式文档和email等等。最突出的是:这样一个大规模的、异地的、开发人员操不同母语的、业务关键的(保险业)软件,从开发至今,一份文档都没有。

zhaoshuangxiang的专栏 1530

CST 2023安装避坑指南:从下载到破解的完整流程(附常见报错解决方案)

本文提供CST 2023三维全波电磁场仿真软件的完整安装指南,涵盖从下载到破解的全流程,并附常见报错解决方案。详细解析安装步骤、许可证配置优化及高频问题诊断,帮助用户快速部署并优化软件性能,适用于射频电路设计、天线优化等场景。

7z8x2c4v6b9的博客 657

软件工程基础知识*(一)

随着软件系统的规模越来越大、软件复杂度也越来越高,软件开发出现问题。软件的开发难度、进度难以预测,成本难以控制,质量无法保证,功能无法满足用户需求,出现了软件危机。所以诞生了软件工程,目的是提高软件生产率、提高软件质量、降低软件成本。软件工程指的是应用计算机科学、数学及管理科学等原理以工程化的原则和方法来解决软件问题工程。软件开发的生命周期(三大阶段)包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标,具体可分成问题定义、可行性研究、需求分析等。就是软件的设计与实现。

weixin_67885078的博客 818

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4028

【并发编程五】c++进程通信——共享内存(shared memmory)

现代操作系统,对于内存管理,采⽤的是虚拟内存技术,也就是每个进程都有⾃⼰独⽴的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A中 和 进程 B中 的虚拟地址是⼀样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。这样这个进程写⼊的东⻄,另外⼀个进程⻢上就能看到了,都不需要拷⻉来拷⻉去,传来传去,⼤⼤提⾼了进程间通信的速度。⽤了共享内存通信⽅式,带来新的问题,那就是如果多个进程同时修改同⼀个共享内存,很有可能就冲突了。那共享内存的⽅式,就很好的解决了这⼀问题。

junxuezheng的博客 1万+

敏捷软件开发宣言与原则

Technorati 标签: 敏捷软件开发 核心内容: 1. 个体和交互        胜过    过程和工具 2. 可以工作的软件  胜过    面面俱到的文档 3. 客户合作           胜过    合同谈判 4. 响应变化           胜过    遵循计划 启示: 1. 人是获得成功的最为重

Rainland_Lee的专栏 782

29、机器人动力学中的欧拉 - 拉格朗日与哈密顿力学

本文深入探讨了机器人动力学中的欧拉-拉格朗日与哈密顿力学框架,涵盖向量流形上的辛结构、哈密顿方程的几何代数表述、泊松括号与积分不变量等核心概念。文章详细推导了机电系统中拉格朗日量与哈密顿量的构建方法,并结合牛顿-欧拉算法给出了局部哈密顿量和动量导数的迭代计算流程,适用于多关节机器人的动力学建模与控制设计。通过应用案例展示了理论在双关节机器人手臂中的实际运用,最后展望了其在优化控制、鲁棒性提升及智能融合方向的潜力。

perl8的博客 129

Martin Fowler:敏捷软件指南

在过去的十年中,敏捷软件开发已经从一种狂热的技术逐渐成为主流。我很幸运地伴随了敏捷运动的始终,早期经历过孕育出极限编程的项目,并且也是敏捷软件开发宣言的作者之一。Thou...

weixin_40768973的博客 443

老版QQ原生表情gif动态

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

“软件开发教父” Martin Fowler 从业 40 年最想说这两个字!

作者 |异步社区本文经授权转载自异步社区(ID:epubit)Martin Fowler,世界级软件开发大师,敏捷开发的开拓者和创始人全球知名的面向对象分析设计、UML、模式等专业领...

程序人生的博客 1451

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

AI 时代,敏捷宣言已死?听听 Martin Fowler 和 Kent Beck 怎么说

在对话的最后,当被问及“AI 时代,程序员该如何自处”时,Kent Beck 的一段独白,充满了“手艺人”的失落与悲情,足以让每一个热爱编码的资深开发者瞬间破防。就在前几天,在一个汇聚了硅谷最火热 AI 创业者的闭门活动上,这两位白发苍苍的“活化石”出人意料地并肩坐到了一起,进行了一场关于 AI 时代的世纪对话。如果说对“蛇油”的警惕还只是宏观层面的担忧,那么 Kent Beck 接下来提出的观点,则直接刺向了每一个正在享受 AI 编码便利的开发者。它们都是“想象力的放大器”。

TonyBai 687

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【提问募集】向世界级软件开发大师“Bob 大叔”Robert C. Martin 提出你的疑虑!

“程序员应该每年学习一种新语言。”

《程序员》官方BLOG 8251

敏捷史话(八):敏捷的破局之道——Martin Fowler

本文转自敏捷开发。 在 Martin Fowler 的世界里,任何事情都有最优解。 1963年,Martin 出生于英格兰的沃尔索尔(Walsall),也在同样位于沃尔索尔的玛丽女王文法学校中接受中等教育。在这里的乡村中,他度过了一段简单、愉快的少年时光。 上了中学之后,Martin 接触到了策略桌游。在桌游的“厮杀”中, 如何从复杂的局势中找出最简洁、直观的破局之法,就成为他想要寻找的答案,也成为日后他解决任何事情的目标。 1986年,Martin 毕业于伦敦大学学院,获得了电子工程与计算机科学的学士学

minjiekaifa的博客 456

软件开发的敏捷宣言(Manifesto for Agile Software Development)

Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactionsover processes and tools Working softwareove..

birdbest1的专栏 948

敏捷对商业意味着什么_敏捷神话6:“敏捷意味着没有前期设计”

敏捷对商业意味着什么 这是我第13部分系列文章的第7个帖子, “敏捷的神话和误解” ,它基于我在第一届PSIA Softech菲律宾软件工程大会上的演讲。 我正在努力纠正有关敏捷软件开发的12种常见误解。 首先,让我纠正一下敏捷几乎不关心设计的观念。 敏捷宣言的许多(即使不是大多数)签署人都是设计方面的思想领袖。 Martin Fowler和Robert Martin是两个在2001年在S...

danpu1174的博客 307

《敏捷软件开发(原则、模式与实践)》笔记

《敏捷软件开发(原则、模式与实践)》(美)Robert C.Martin 著        邓辉 译        孟岩 审笔记笔记摘录:Eleven第一部分 敏捷开发第1章 敏捷实践        教堂尖顶上的风标,即使由钢铁制成,如果不懂得顺应风势的艺术,一样会被暴风立即摧毁。                                                ——海因里希.海涅(1...

lsc20051426的专栏 439

向世界级软件开发大师“Bob 大叔”Robert C. Martin 提出你的疑虑!

一问才发现,原来他自己曾经把 Usenet(这是互联网早期的一款讨论组应用,四十多年前还没有浏览器,程序员们就在这上面交流想法)上的签名设置成了“Bob 大叔”,后面放了一整年没管,这也导致他一年以来的电子邮件签名全都沿用了“Bob 大叔”这个绰号。如今,函数式编程因其易于理解和维护的特点,以及处理并发问题的能力,开始受到越来越多的关注。1988 年,Martin 在伊利诺伊州的一家初创公司上班,当时办公室里有个叫“Billy”的人,是个烦人精,很喜欢给别人取绰号,甚至给办公室里的每个人都取了个绰号。

通过AI技术,自动回复来自多个社交平台的客户消息,减少人工干预,提高响应效率 1220

《敏捷软件开发(原则、模式与实践)》前三章笔记

 《敏捷软件开发(原则、模式与实践)》(美)Robert C.Martin 著        邓辉 译        孟岩 审笔记笔记摘录:Eleven第一部分 敏捷开发第1章 敏捷实践        教堂尖顶上的风标,即使由钢铁制成,如果不懂得顺应风势的艺术,一样会被暴风立即摧毁。                                                ——海因里希.海涅(

Eleven's Blog 1875

Martin Fowler谈Scrum认证、敏捷现状与未来

Martin Fowler谈Scrum认证、敏捷现状与未来 作者 李剑 发布于 2008年6月24日 上午3时12分 社区 Agile 主题 敏捷实施, 敏捷技术 标签 敏捷宣言, 敏捷理论, ...

218

敏捷软件开发——敏捷实践

最近在学习敏捷软件开发,看的书是"Agile Principles, Patterns, and Practices in C#",这里摘录一部分书中的精华与大家分享。 Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and

eriol的思考空间 518

精益求精——敏捷宣言的第五项价值?

人称“Bob大叔”的Robert Martin再次掀起了讨论“编程的职业水准”的声浪,他提出“敏捷宣言”应该加入第五项价值:“精益求精胜过言听计从”。 “Bob大叔”在多伦多举行的Agile2008大会上发表了主题演讲,他提...

146
上一篇: TargetProcess公司敏捷开发历程-开发实践篇
下一篇: Adobe Premiere Pro小组的Scrum实践
Andy_AgileDo
博客等级 码龄17年 69粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值