当前位置:网站首页>研发过程中的文档管理与工具
研发过程中的文档管理与工具
2022-07-31 15:55:00 【51CTO】
写文档也是技术活
对于多数开发同学来说,很多时候即讨厌没有研发文档,但是自己又不愿意常写文档,痛且倔强着;
程序员该不该写文档,与争论哪种编程语言最好一样,想撕的嘴不留情,该写的笔不停耕;
当自我的意识上去纠结一件事情要不要去做的时候,不妨停下来看一看,大的职场环境是如何选择的,纠结自然就没必要了;
对于写文档这件事情,并不需要去思考能带来哪些好处或者会占用多少时间,用心去写自然明白当中利弊;
最近两年听到不少搬砖的朋友说,公司已经把文档管理提升到资产层面,在重大版本推进过程中,预留文档输出的时间,这可不是一般的大聪明;
从工作的这几年实践经验来看,写文档原则上本着复杂的事项细写,简单的事项简写或者不写,卷可以但又不闲的慌;
互联网的产品,多少存在一定的虚拟属性,很多事情和想法也都具有明显的抽象感,如果缺乏文档的结构化描述,时间拉扯下很容易烟消云散;
这里罗列一份在研发管理和职场中,或多或少都会接触到的文档内容,虽然结构复杂,但随着时间的沉淀,其带来的价值远大于维护成本;

工作中涉及到的文档种类比较繁多,但就管理和沉淀的动作来说属于那种重要但不紧急的事情,这样说并不是指研发流程中动作的时序可以混乱;
顺着工作流程把该输出的文档做好,是比较正常的节奏,在特殊情况下也可以先解决事情,再后补文档;
从开发的角度来说,如果是常规状态下的版本推进,那么在版本结束时各种相关文档就可以上传指定目录了;
但是工作中不乏很多生产环境突发的棘手状况,此时团队自然优先解决,如果问题影响过大,在事后必然还要输出总结文档,即是经验更是教训;
如果是个人的文档,简明扼要即可;但是工作文档需要有规范和风格上的约束,通常情况下基于统一的模板库即可;
在研发流程中,通常会围绕项目的进度管理文档,在该文档中会统筹流程中的核心内容,涉及各个阶段的进度维护;

基于项目进度管理的文档模板,在流程推进的过程中,不断补齐相关的核心内容,清晰准确的记录版本进度;
采用特定的模板写工作文档,本身就会起到规范的效果,在部门的日常管理中,需要阶段性的沉淀和维护各类文档的模板结构,而模板的内容可以根据具体需求来定,在使用的过程中也需要时常优化;
如果文档模板足够丰富,在一定程度上可以解决不想写文档的问题,在写文档这件事上之所以会劝退很多人,很大原因是缺少可用的文档模板;
当模板库中存在:项目进度、研发设计、测试用例、阶段总结、阶段规划等各种样例时,下载之后直接使用,编写核心内容即可,这样排斥写文档的情绪自然减少;
文档的内容是价值所在,对于团队的协作来说内容简明扼要即可,让阅读文档的人可以快速准确的理解事情的信息;
通常需要输出文档的事项都比较复杂,所以在内容上需要适当的排版,复杂的逻辑尽量使用图解来描述,这样内容条理和思路都会很清晰;
对于其他细节方面的把控,比如段落缩进、专业名词、空格等,通常本着:对内的文档尽量做好,对外的文档必须做好的原则;
文档内容是思考逻辑的呈现,在编写过程中也容易发现逻辑上的问题,再通过评审讨论和完善内容,这样事情围绕文档在后续的过程中不会过度偏离主线;
对于开发这个角色来说,写文档是避不开的事,在一个项目上待的时间久了,再看初期的代码,都觉得不是自己写的,更别说是复杂的业务逻辑了;

在研发文档中,最常用的图解就是逻辑时序,再适当的丰富相关的内容,在一份图中可以包括流程、逻辑、交互、数据管理等各个核心节点;
开发的设计文档基本是几张图就可以描述清楚的,通常涉及:业务流程图,逻辑时序图,数据结构图;
当复杂的业务呈现在文档和设计图上时,其实就是给事情预设好了航线,当然有时候中途被迫返航或变道也不少见;
工欲善其事,必先利其器,想快速做好一份文档,必须得有趁手好用的工具才行,在多年写文档的经验中,以下工具多少都试用过;

图中标红的工具,是个人在实践中觉得不错的工具,当下使用最多的是DrawIO和语雀文档,在免费的边界内足够日常使用;
由于工作中需要对接的事项比较多,很难统一协作的各方使用的文档工具,自然接触到的工具类型就很复杂,对于团队内部来说,通常使用办公软件集成的工具,以便于统一管理;
写文档的习惯已经持续了很多年,工具的变迁也经历了三次,从办公文档迁向Markdown,从线下迁移到线上,更换过一次文档工具;
时间在变,文档类产品也在不断的更新换代,如何寻找自己顺手的工具,本着一个基本的原则:免费的范畴内,支持在线管理,功能适当丰富即可;
最后分享一条写文档的理由:因为工作多而复杂,所以要写到文档中,这样便能安心的忘了它。
边栏推荐
- Why is the field of hacking almost filled with boys?
- 基于C语言的编译器设计与实现
- SIGABRT 报错时的注意事项和解决方法
- Single-cell sequencing workflow (single-cell RNA sequencing)
- t-sne 数据可视化网络中的部分参数+
- What is the difference between BI software in the domestic market?
- tensorflow2.0 cnn(layerwise)
- tooltips使用教程(鼠标悬停时显示提示)
- Unity中实现点选RenderTexture中的3D模型
- 【TypeScript】深入学习TypeScript类型操作
猜你喜欢
随机推荐
11 pinia使用
tensorflow2.0 cnn(layerwise)
【7.29】Code Source - 【Arrangement】【Stone Game II】【Cow and Snacks】【Minimum Number of Spawns】【Sequence】
tensorflow2.0 cnn(layerwise)
The 2nd China PWA Developer Day
[7.28] Code Source - [Fence Painting] [Appropriate Pairs (Data Enhanced Version)]
ansible学习笔记02
定时器的类型
Linux check redis version (check mongodb version)
[Meetup Preview] OpenMLDB+OneFlow: Link feature engineering to model training to accelerate machine learning model development
国内市场上的BI软件,到底有啥区别
Vb how to connect mysql_vb how to connect to the database collection "advice"
Qt实战案例(54)——利用QPixmap设计图片透明度
Why don't you make a confession during the graduation season?
贪吃蛇项目(简单)
百度网盘网页版加速播放(有可用的网站吗)
MySQL基础篇【单行函数】
Visualize GraphQL schemas with GraphiQL
OPPO在FaaS领域的探索与思考
Applicable Scenarios of Multi-Master Replication (1) - Multi-IDC









