工作单位是单个功能或错误修复。在错误跟踪系统中,您可以找到一个段落的需求文档。如果您希望这样考虑的话,较小的工作单位实际上是一个巨大的优势。封闭源代码开发通常无法遵循这种模型,因为交易成本(建立信任,确定所需内容,就范围和价格达成一致等)太高。
开发人员正在为自己编写软件。如果您知道您想要什么,撰写正式的设计文档可能没有回报。(您可以在白板上写几个涂鸦。)
该项目最初并不打算广泛使用。如果代码将在一小时内在您的计算机上运行并完成其工作,那么单独的设计文档会有何帮助?如果随着时间的推移,它变成其他人可以使用的东西,在什么时候应该出现过程文档呢?
有一个设计文档,但未发布。请记住,这些文档的目的是帮助高效地制作正确的软件。一旦制作完成,这些文档就不是非常有用了。(另外:开源软件通常是根据公司的合同编写的。虽然完成的代码是公开的,但过程文档可能被明确或隐含地视为机密。)
开发人员只是不愿意进行前期设计。我倾向于认为这太糟糕了,但遗憾的是,这是一个促成因素。
linux kernel design
可以找到更多免费,详细的文档。看一下(早期版本的)jHotDraw。这是HotDraw框架的Java版本,其中包括Erich Gamma(GoF)为其模式语言工作开发的内容。
你不太可能找到任何具有完整和最新文档(包括依赖关系图)的项目(开源或闭源)。你可能能够找到一些仅用于教育目的的非常小型的构建物。对于法律规定必须这样做的系统,文档的实际质量通常非常低,因为它们并不是为了作者或信息使用者的任何真正利益而产生的,而只是为了覆盖法律责任。
在开源项目中,有一个强烈的倾向只编写直接使用的文档,因为他们有一个非常好的工作优先级处理过程。在交接工作时需要进行沟通。文档可以提供这个功能。但在大多数开源项目中,想要某个功能的人也往往是该功能的实现者。在这种情况下,很少需要太多的文档。
开源项目需要概述文档,描述工作标准、使用的设计模式以及所有可以帮助新贡献者快速上手的内容。
如果你想真正了解如何正确管理依赖关系的困难程度,请看一下:
管理设计数据:CAD框架、配置管理和产品数据管理的五个维度 van den Hamer,P .; Lepoeter,K。 IEEE会议论文集 卷84,第1期,1996年1月,页码:42-56 数字对象标识符10.1109 / 5.476025