Martin对敏捷宣言中“可工作软件胜过面面俱到文档”的解释
没有文档的软件是一种灾难。代码不是传达系统原理和结构的理想媒介。团队更需要编制易于阅读的文档,来对系统及其设计决策的依据进行描述。
然而,过多的文档比过少的文档更糟。编制众多的文档需要花费大量的时间,并且要使这些文档和代码保持同步,就要花费更多的时间。如果文档和代码之间失去同步,那么文档就会变成庞大的、复杂的谎言,会造成重大的误导。
对于团队来说,编写并维护一份系统原理和结构方面的文档将总是一个好主意,但是那份文档应该是短小的(short)并且主题突出的(salient)。“短小的”意思是说,最多有一二十页。“主题突出的”意思是说,应该仅论述系统的高层结构和概括的设计原理。
如果全部拥有的仅仅是一份简短的系统原理和结构方面的文档,那么如何来培训新的团队成员,使他们能够从事与系统相关的工作呢?我们会非常密切地和他们在一起工作。我们紧挨着他们坐下来帮助他们,把我们的知识传授给他们。我们通过近距离的培训和交互使他们成为团队的一部分。
在 给新的团队成员传授知识方面,最好的两份文档是代码和团队。代码真实地表达了它所做的事情。虽然从代码中提取系统的原理和结构信息可能是困难的,但是代码 是惟一没有二义性的信息源。在团队成员的头脑中,保存着时常变化的系统的脉络图(road map)。人和人之间的交互是把这份脉络图传授给他人的最快、最有效的方式。
许多团队因为注重文档而非软件,导致进度拖延。这常常是一个致命的缺陷。有一个叫做“Martin文档第一定律(Martin’s first law of document)”的简单规则可以预防该缺陷的发生:
直到迫切需要并且意义重大时,才来编制文档。
摘自:Robert C. Martin《敏捷软件开发:原则、模式与实践》
相关推荐
敏捷宣言主张个体和互动胜过流程和工具,可工作的软件胜过详尽的文档,客户协作胜过合同谈判,以及响应变化胜过遵循计划。这些原则为敏捷开发提供了指导方向。 2. **设计原则**:书中涵盖了设计模式和SOLID原则,如...
宣言中强调了个体和互动高于流程和工具,可工作的软件高于详尽的文档,以及客户合作高于合同谈判等。这些原则指导软件开发者在面对需求变化时如何作出快速反应,并保持软件的高质量。 敏捷方法论中常见的实践包括...
敏捷宣言列出了四个核心价值观:个体和交互胜过过程和工具,可工作的软件胜过详尽的文档,客户合作胜过合同谈判,以及响应变化胜过遵循计划。这些价值观体现了敏捷开发的核心理念,即重视人的因素,强调沟通,以及对...
Martin通过本书向读者展示了敏捷开发的魅力,并指导读者如何将其应用于实际工作之中。 此外,本书还包括了面向对象设计模式和UML的实践应用,帮助读者更好地理解如何通过设计模式和统一建模语言来解决面向客户系统...
Martin作为敏捷宣言的起草人之一,他在书中分享了大量的经验,不仅包括软件开发的理论知识,还有他个人在解决实际问题时的思考与方法。例如,他强调面向对象设计的重要性,提倡使用设计原则,如单一职责、开闭原则...
其次,敏捷开发注重可工作的软件,而非详尽的文档。这是为了确保在项目进行过程中,团队能够集中精力先开发出能够运行的软件,然后在后续的迭代过程中逐步完善文档。 再者,敏捷开发中的客户合作高于合同谈判。在...
2001年,以Kent Beck、Martin Fowler、Robert Martin等人为代表的经验论阵营发起了敏捷联盟,并发布了敏捷宣言,强调个体和交互、可工作的软件、客户合作以及响应变化的重要性。这些原则反映出现代软件开发需要更加...
这本书的推荐词中也提到,它不仅适合想要成为敏捷开发人员的读者,更是一本对于任何对软件开发感兴趣的读者都有用的书籍。通过阅读本书,读者可以了解到敏捷开发与极限编程的精髓,学会如何在现代软件开发中运用这些...
1. **敏捷宣言**:敏捷开发的核心是2001年提出的敏捷宣言,它强调个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户协作高于合同谈判,响应变化高于遵循计划。敏捷方法论如Scrum、XP(极限编程)等都是这...
这表明在Martin-Lof类型理论中,程序规格说明不仅与程序逻辑有关,而且与集合论和命题逻辑密切相关,这为软件开发提供了严格的数学基础。 在本书的前言中,作者们回忆了与Per Martin-Lof会面的情景,后者是类型理论...
- **可工作的软件高于详尽的文档**:强调交付有价值的软件,而不是过度依赖文档。 - **客户合作高于合同谈判**:鼓励频繁的客户反馈和调整,而非僵化的合同约定。 - **响应变化高于遵循计划**:面对需求变化,...
- **敏捷宣言**:重视个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户协作高于合同谈判,响应变化高于遵循计划。 - **敏捷原则**:包括以客户为中心,欢迎变化,持续交付,团队自我组织等。 - **...
"目标跟踪程序Martin" 指的是一种名为Martin的特定目标跟踪算法或软件工具。在计算机视觉领域,目标跟踪是关键任务之一,它涉及在视频序列中定位和追踪特定对象。Martin可能是由Danelljan开发的一个算法或实现,用于...
敏捷软件开发原则,模式与实践 在这本书中,享誉全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷...
1. **敏捷宣言**:敏捷开发的基石是敏捷宣言,它强调了个体和交互、可工作的软件、客户合作以及对变化的响应,而非过程和工具、详尽的文档、合同谈判以及遵循计划。 2. **十二原则**:书中详细解读了敏捷开发的十二...
本书中,享誉全球的软件开发专家和软件工程大师RobertC.Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。本书于2003年荣获第13届Jolt大奖,是C++和Java...