转自 InfoQ: http://www.infoq.com/cn/news/2009/02/agile-documents
软件项目中有很多种文档,包括需求文档、设计文档、API文档、缺陷报告、进度报告、移交文档、验收文档等等。
在传统的软件项目开发中,每个团队成员都要花费很多时间和精力去维护文档及填写各种表格和报告。第二条敏捷宣言是"可工作的软件胜于详尽的文档",据此很多人想当然认为敏捷开发不重视文档。更有甚者,有人为逃避写文档而借口敏捷开发不需要文档,成为所谓的PAP(Pretty Adventuresome Programming)。其实这些人忽略了敏捷开发中有很多实践(比如坐在一起、现场客户、测试驱动开发、客户测试、结对编程、信息化工作间等等),敏捷借助这些实践进行信息交流,起到了文档在传统软件开发中的作用。本文通过分析项目开发中的文档类型与作用来说明敏捷开发中为什么很多文档是不需要的。
首先,需要明确文档的用途,文档是用来交流信息的。关键是团队中信息分享是否及时准确,而这与文档的多少没有必然的联系。就比如James Shore在博文"文档之谜"(http://jamesshore.com/Blog/The-Documentation-Myth.html)里面指出的,很多人指责敏捷开发的文档不够。其实他们忽略了问题的实质,"丰富的文档并不一定是好事,能及时得到答案才是好的"(Myth: Document is good; Reality: Answer is good)。
专业知识或者信息主要分为两类:
- 可以被整理,文档化的知识,一般只占所有知识的30%。
- 占70%的存在于人脑中的隐含(Tacit)知识,只能通过人与人之间的交流来分享,口口相传。因此促进团队内部以及团队之间的交流对信息的传播更加有效。
软件项目文档通常有三种:
- 项目文档,用于项目组内部信息交流,比如需求文档、设计文档、进度报告等。
- 产品文档,通常是有业务价值的,是客户需要的,比如用户手册或者API文档。
- 移交文档,在项目移交或者项目不同阶段之间移交的成果物。
产品文档是客户需要的,是产品的一部分,有业务价值,绝对不能省略。应该在迭代中为其安排一个文档任务。
从敏捷角度来看,另外两类文档中的很多种是可以简化或者省略的。
在敏捷开发过程中,
正如James Shore总结的,获得信息的手段有很多。
最优的手段,代码清楚、单元测试完备、命名规范,因此根本不需要问;
其次,只需要问一下旁边的人,或者打一个电话,就可以立刻得到答案,这也就是为什么敏捷鼓励“坐在一起”和“现场客户”r;
再次,Google一下找到答案,这也不错;
……
很次,可以通过读文档找到答案。可是为了找到答案,需要读的文档越多,效果越差...
分享到:
相关推荐
提供应用全生命周期DevOps解决方案,全场景微服务、AppCube零代码开发能力,打通研发态、运行态、运维态,使能企业多种应用简单、敏捷开发上线。 提供一系列开箱即用的应用使能服务,帮助客户和伙伴高效构建精品应用...
敏捷转型一一内部审计绩效与价值提升指南-2.pdf
数字化转型是一个长期的大型的变革,且各企业处于不同转型阶段,为有序有效地推进转型,建议综合运用由面到点的经典模式和快速迭代的敏捷模式,提前规划数字化转型路线图。国企以数字化转型为抓手提升创新能力,我们...
2011敏捷开发-软件测试,质量保证研究,非常好的文档,请勿转卖,仅供个人参考。
2011敏捷开发-软件测试研究,非常好的文档,请勿转卖,仅供个人参考。
2011敏捷开发-软件测试研究,非常好的文档,请勿转卖,仅供个人参考。
该文档整理敏捷与CMMI的区别便于理解,整理SM与PM的角色职责,及团队转型时担任SM角色的适合人选的分析
资源包含四个部分,15个PDF文档 一、主会场 敏捷的力量之源 浅析数字化转型与产业互联网 OceanBase开源核心解读和未来展望 二、运维 & DevOps专场 企业一站式DevOps平台建设实践 腾讯游戏混沌工程实践 银行复杂架构...
中国银行全球银行业展望报告(2020年)--开启银行业敏捷转型新征程.pdf
传统软件工程方法论,更看重流程、文档、合同范围以及遵循计划控制进度、质量、成本。其中最有代表性的是统一软件开发过程(RUP),如下图:在RUP中,定义了4个阶段、9大核心工作流、六个最佳实践、10大要
5700. 云——势在必行 银行如何通过云赋能转型提升敏捷性.pdf
重磅-史上最全企业数字化转型项目流程管理资料大合集,共1429份。 一、项目管理实战工具大全(甘特图、表格、项目阶段文档等527份...十八、敏捷项目管理(实践指南、规划等,共11份) 十九、IT考核(KPI考核,共12份)
它不仅有助于打破信息孤岛,促进数据流通与共享,还能够支持快速响应市场变化,增强企业的敏捷性和竞争力。该精品资料详细探讨了中台的投资机会,分析了当前市场上的主要中台提供商及其服务特点,为企业选择适合自身...
软件工程 - 维基百科,自由的百科全书软件工程... 商用软件工程示例软件开发 软件开发步骤 需求分析 " 软件架构 " 软件设计 " 软件编程 " 软件测试 " 软件部署 软件开发模式 敏捷开发 " Cleanroom " 迭代式开发 " RA
本届QECon全球软件质量&效能大会深圳站聚焦于:智能、云原生、业务价值、协同提效。 AI赋能APP全云化测试 AI效果质量的探索与实践 DevOps“信条”-反模式能否逆袭出圈 DevOps五大理念与落地实践 ...等等文档
由于采用了这种传统的软件开发方法,因此遵循大量基于文档的逐步过程已变得过时,并且软件开发行业正朝着动态,增量,迭代,以客户为中心,轻量级文档的系统开发机制(称为敏捷软件开发(ASD))过渡。 在称为...
4.xb.FrameWork.Common:XB.FromeWork.Common是应用平台的基础框架通用底层工具类组件,主要实现诸如类型转换、文件处理、注册表操作、硬件处理、图象处理等底层方法的工具类集合(详情见附件中的帮助文档)。...
敏捷团队的开源需求分析 推介会 介绍性幻灯片可上的。 安装 要安装,您只需下载最新代码并在根文件夹中运行: mvn install 然后转到src/main/webapp文件夹并安装 bower 依赖项: bower install 之后,选择您的...