谁来阅读文档?该文档将用于什么用途?这些是最重要的问题。例如,维护开发人员的文档将更多地关注结构,而与产品集成的开发人员的文档将更关注Web服务和数据库结构。
通常,只做所需的尽可能多的文档。许多组织都需要文档,因为有人坚持认为这是最佳做法,但是文档最终积聚了灰尘。
假定人们将实际使用该文档,请不要尝试将代码和数据库捕获到最小的级别。开发人员将查看代码的细节。相反,请专注于代码中不明显的细节,例如:
- 产品满足的用例。考虑到产品的使用年限,这可能很困难,但是掌握产品的用途将为非技术读者和测试人员提供重要的背景信息。谁是市场上的竞争者(如果有)?产品范围内是否有其他物品?
- 任何明确的非功能性要求。例如,产品被写成可以处理一定数量的产品吗?数据可以使用几岁?在哪里使用缓存?用户如何进行身份验证?访问控制如何工作?
- 一个上下文图,显示与其他系统(例如数据库,身份验证源,备份,监视等)的交互。
- (如果知道)风险以及如何减轻风险以及决策记录。回想起来,这可能很困难,但通常会有影响设计的关键决策。捕获您所知道的任何东西。
- 通用设计模式或设计准则。例如,是否有访问数据库的标准方法?有编码或命名标准吗?
- 关键代码路径,通常使用流程图或UML活动或序列图。项目中可能没有任何内容,但是这些通常是业务用户明确表达的内容。
即使没有所有这些信息,也请立即开始。您之后的开发人员将感谢您。
好的自动化单元测试或测试用例也可能是有用的文档,尽管对于技术含量较低的人员来说很难访问。
听起来您还需要进行文化上的更改以包括文档。从小规模开始,但理想情况下,除非至少具有最低限度的文档水平,否则不应“完成”该项目。这可能是最难的步骤,因为以上是您可以控制的事情。这是其他人必须购买的东西。但是,它也可能是最有意义的,特别是如果您做的下一个项目附带好的文档时,尤其如此。