现代软件研发理念强调敏捷开发,快速迭代,高效地响应用户的需求变化。可以说,自从有了敏捷方法,有相当一部分程序员长出一口气:终于可以不用写文档了。

那么,事实真的如此吗,文档应不应该写,应该如何编写?

要搞清楚这个概念,首先要明白文档的价值和作用。其实,我们交付的是软件产品,而软件产品是通过编写的软件代码编译后产生的,开发文档并不能够直接转化成软件产品,因此,有人认为文档没有价值,既然没有价值,当然就可以不用编写了。而且,持这种观点的开发人员不在少数,也影响了项目管理者要求编写文档的管理要求。

我们都知道,我们人类的大脑相比电脑既具有抽象的逻辑思维和推理能力,同时也具有遗忘的特点。正因如此,文档的首要价值在于记录和沉淀,把过去通过思考而形成的结论记录和沉淀下来,方便日后查阅;另外,文档的作用还在于沟通和传播,把个人或集体智慧的结晶形成文档后,非常容易传播和指导今后的研发工作,尤其是新人加入到开发团队,如果没有文档,那么就必须浪费团队成员的精力给新人介绍项目需求,而这种介绍,如果没有文档,那么就像前些年湖南卫视的快乐传真一样:

每个人的描述都不一样,那么,每个人根据自己的理解去开发系统,那么系统的可用性和逻辑一致性,就很难得到保障。

因此,文档绝不是可有可无的,文档是必须的。

那么,应该如何来编写研发文档呢?

其实,我们可以把文档分为两类,一类是格式化文档,一类是随笔文档。

传统的结构化开发方法,强调的是“重”文档,也就是格式化文档,比较典型的是:软件需求规格说明书;现代的敏捷开发方法,强调的是“轻”文档,随时可以开会讨论问题,在白板上随手画一些业务流程图、类图、时序图等等,这些随笔,其实也是文档,不管是中间的讨论过程,还是已经形成结论的定性的结果,都需要保存和沉淀下来,以便于查阅,也便于指导今后的研发工作。

其实,敏捷方法,虽然强调的是“轻”文档,但并不是“无”文档,文档是必须要有的,这里要明白一个概念,那就是,传统的结构化方法要求的软件需求规格说明书,是一次性把所有的需求编写清楚,然后再展开后续的设计和研发工作,而敏捷方法是把这个大的过程打散成一个一个的小的研发过程,而每个小的研发过程是需要有“小”文档的,随着时间的推移,这些“小”文档,通过整理,也会逐步形成格式化的“大”文档。

因此,研发软件,文档绝非可有可无,而是必须要有的;而且,编写文档有助于提高程序员的逻辑思维能力,就这点而言,我认为:

文档能力,始终是衡量一个人综合素质的唯一标准。

作为一个开发人员,要想提高自己的综合素质,去编写文档吧,首先可以在白板上画一些草图,然后把这些草图,整理和沉淀下来,你会发现,你的逻辑闭环思维能力越来越强,你对需求的把握能力越来越准,你的工作效率越来越高,最后,你会越来越喜欢随笔,也会越来越喜欢格式化文档。

作为一个程序员,走出你的舒适区,别在盲目鼓吹敏捷开发不必写文档,这只能说明你的层次较LOW,提高自己的综合素质,从编写文档开始。。。

软件开发文档的价值和作用相关推荐

  1. 软件开发文档整理(之)一张示意图 | 清晰明了

      在整个软件开发周期,开发文档是必不可少的资料,它们贯穿于整个开发周期,用来评估计划.规划进度.项目管理.软件测试.软件发布,可以说至关重要.   开发文档必须归档,没有归档的文档作用大打折扣,时效 ...

  2. python软件开发-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  3. python开发软件的实例-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  4. python写软件实例-如何编写Python软件开发文档(7个技巧)

    开发文档是经常被程序员忽略的工作,有时也会被管理者忽略.这往往是由于在项目生命周期结束的后期缺乏时间,以及人们认为自己不擅长写作,其中一些人确实写不好,但他们中的大多数能够完成一个良好的文档. 在任何 ...

  5. 软件开发中常见英文缩写和各类软件开发文档的英文缩写

    软件开发中常见英文缩写和各类软件开发文档的英文缩写: 文章复制粘贴来源于:http://blog.sina.com.cn/s/blog_7326867a0100yfdl.html 英文简写 文档名称 ...

  6. Just enough(刚刚好)的软件开发文档什么样?

    在今年与多个软件开发单位的交流中,补文档的问题多次提到,试图通过本文谈谈文档的价值,如何写刚刚好的文档. 软件开发所需要的文档在传统的瀑布型生命周期下典型的有:开发计划,需求规格说明书,设计书(有分成 ...

  7. 软件开发文档模板 (学习)

    1 可行性研究报告  可行性研究报告的编写目的是:说明该软件开发项目的实现在技术.经济和社会条件方面的可行性:评述为了合理地达到开发目标而可能先择的各种方案:说明论证所选定的方案.  可行性研究报告的 ...

  8. python软件开发文档目录_python学习之-软件开发的目录规范

    通常软件目录下有几个标准文件夹 软件主文件夹命名,通常都是大写(ATM_SHOPPING) ------------------------------------------------------ ...

  9. 各类软件开发文档的英文缩写

    文档名称 英文简写 需求调研报告 DSR 工作任务说明书 SOW Process Handbook (项目过程手册) PHB Estimation Sheet (估计记录) EST Project P ...

最新文章

  1. libevent中的基本数据结构
  2. 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
  3. 二叉树的前序,中序,后序,层序遍历的递归和非递归实现
  4. 美图每天亿级消息存储演进——从Redis到Titan,完美解决扩容问题
  5. 从spring-session存储结构探讨session存储方案的演变
  6. 第三次学JAVA再学不好就吃翔(part51)--String类的转换功能
  7. python如何跳出外层循环_失去循环标签的Python,我这样实现跳出外层循环
  8. 小勇机器人充电头坏了_崇安区管道机器人CCTV-管道爬行机器人,武汉天仪ty333,优质效率高...
  9. xcode4.3.2 arc模式下导入非arc的文件 转
  10. 【自然框架】n级下拉列表框的原理
  11. bootstrap table列宽设置无效解决
  12. C#50个经典小程序代码
  13. 数字未来,NFT未来,Game Farmer创始人胡烜峰在IGS上讲述FoxNFT和他的故事
  14. 矩阵论——矩阵的标准型
  15. chunxunnet
  16. python 数独_python 实现 数独 解法 (穷举法)
  17. 广东省本科学校列表(附官网地址)
  18. 便宜的虚拟主机可以使用吗?
  19. HALO博客配置华为云OSS上传附件
  20. C盘瘦身:QQ文件的清理及Group2文件夹

热门文章

  1. C# 模仿360安全卫士玻璃按钮 修正版(源码)
  2. getField用法总结
  3. 爱奇艺一面、二面面试问题
  4. unity绘制管道_Unity2020 Paint Holes画洞工具制作游戏洞穴场景流程
  5. 微信小程序反编译得到的是html,微信小程序“反编译”实战(一):解包
  6. java计算机毕业设计社区便民服务系统社区便民服务源程序+mysql+系统+lw文档+远程调试
  7. SylixOS内存屏障
  8. mavsdk_api
  9. 小程序Vant Weapp的DropdownMen下拉菜单自定义标题
  10. vuex基础-Vuex是什么呢?