“Too often, documentation is written and released once, with no subsequent updates.” - Docs for Developers
1. 在设计阶段进行文档规划
在开始写代码的阶段,就应该想到文档。举个例子,如果开发的新功能会改变API,那么就应该想到更新API文档,来告诉用户API的变化。要实现这一目标,研发和文档工程师需要在设计阶段一起完成用户影响分析。具体来说,需要回答以下问题:
角色 | 问题 |
---|---|
研发 | 这个变更对用户有什么影响? |
这个变更对当前的产品功能有什么影响? | |
TW | 针对这些影响,需要为用户新增哪些文档? |
这个变更对当前产品文档有什么影响? |
在设计阶段,就进行用户影响分析,可以为文档带来以下好处:
避免文档更新不及时
避免来不及更新文档
2. 在发版流程中纳入文档发布
要确保文档最终与功能同发,文档工程师应将文档纳入发版流程。
K8s文档同发实践如下:
通过表格列出下个版本要发布的所有特性。
为每一个要发布的特性建一个Github issue,并且带上设计文档、特性负责人、单元测试以及标注是否需要文档。
如果特性标注了需要文档,特性负责人就必须为文档建一个pull request,在发版审批前,必须先完成文档审批。
只有代码、单元测试、文档都通过了,特性才可以提交发布。
在版日,为新版本push所有通过的特性。
在以上实践中,文档和发版是强耦合的,因此确保了文档与功能同发。