返回博客
文档项目管理

为什么你的项目在开始构建之前需要一份设计文档

7分钟阅读

设计文档迫使你在动手之前先思考。了解它包含哪些内容、如何构建它,以及为什么它节省的时间远超它耗费的时间。

设计文档究竟是什么

设计文档是一份书面计划,描述你在构建什么、为什么构建它,以及它将如何运作。它不是用户手册,不是任务清单,而是在动手构建之前发生的思考过程。 从本质上说,设计文档回答三个问题:我们在解决什么问题?提出的解决方案是什么?以及我们考虑了哪些权衡和替代方案?其他一切——技术细节、范围边界、时间线估算——都从这三个问题派生而来。 设计文档在不同行业有不同的名称:软件团队称之为技术设计文档或RFC,游戏开发者写游戏设计文档,产品团队写产品需求文档。格式各异,但目的始终相同:把计划从你脑子里取出来,放进一份其他人——或者未来的你——能够阅读和理解的文档中。

在动手之前写规范能节省真实时间

这感觉违反直觉。你急于开始构建,想法在脑子里清晰明了,写文档感觉像是拖慢你脚步的杂务。于是你跳过它,直接进入实现。 两周后,你发现架构不支持你以为会很简单的某个功能;或者队友构建了与你方案相矛盾的东西,因为你从未把方案写下来;或者你碰到了一个没有想清楚的设计决策,现在不得不重构。 设计文档在这些问题让你付出真实时间之前就把它们抓住了。当你写下某样东西应该如何运作时,你被迫把细节想清楚。你发现边缘情况,注意到依赖关系,意识到那个"简单"的功能实际上需要改动三个不同的系统。 写设计文档花费的时间,总是少于修复那些文档本可以捕获的问题所花费的时间——根本不是一个量级。几个小时的写作能节省数周的返工。

如何构建一份设计文档

你不需要一个严格的模板,但一份好的设计文档通常涵盖这些方面。 从概述开始:一两段说明这份文档涵盖什么、为什么重要。任何人都应该能通过阅读这个部分理解范围。 接下来,定义问题:什么是损坏的、缺失的或需要的?要具体——"用户需要更好的搜索"是模糊的;"用户无法找到过去的项目,因为当前的列表视图不支持筛选或排序"是有用的。 然后描述提出的解决方案:这是文档的主体。解释你打算构建什么、它如何运作,以及用户体验是什么样的。包含足够的细节,使团队中的其他人仅凭这份描述就能实现它。 添加一个关于已考虑替代方案的章节:你评估了哪些其他方案?为什么选择这个?这展示了你的推理,帮助未来的读者理解这个决策。 最后,列出开放问题和范围之外的内容:你刻意决定不做什么?还有什么需要讨论?这能防止范围蔓延,并对文档涵盖什么、不涵盖什么保持诚实。

让它成为一份有生命的文档

设计文档不是你写一次就束之高阁的东西。最好的设计文档会随项目一起演变。 在构建的过程中,你会学到新东西:一些假设会被证明是错误的,一些计划会改变,这完全正常。文档应该反映这些变化。添加关于什么改变了、为什么的说明,更新不再与现实相符的章节,标记被修订的决策。 这把你的设计文档变成了项目历史。六个月后,当有人问"我们为什么这样构建它?"时,答案就在文档里,你不需要依赖任何人记得几个月前的某次对话。 关键是让文档易于更新。如果它存在于一个与你实际项目脱节的工具里,没有人会费心更新它;如果它就在你的任务和时间线旁边,更新它就成了工作流的自然组成部分。IndieDevBoard 包含一个带有结构化章节的设计文档功能,它存在于你的项目内部,让规范与它所描述的工作保持紧密联系。

设计文档 vs. 游戏设计文档

如果你在做游戏开发,你可能想知道这与通常称为GDD的游戏设计文档有什么关系。它们相关但不同。 GDD专属于游戏,通常涵盖游戏概念、机制、故事、关卡设计、美术方向、音频、UI等,是游戏的圣经——关于游戏的一切都应该可以从GDD中描述。 更广泛意义上的设计文档是关于任何项目或功能的,它可以描述游戏中的单个功能、一个API设计、一次网站重新设计或一个新流程。它更聚焦,通常比GDD更短。 在实践中,许多游戏团队两者都使用:GDD是高层次的愿景文档,而各个设计文档涵盖游戏中的特定系统或功能,比如战斗系统、背包或多人网络层。GDD说"游戏有一个背包系统",设计文档解释背包系统究竟如何运作、数据模型是什么样的,以及它如何与其他系统交互。

从简单开始,逐步迭代

你不需要在第一次尝试时就写出一份完美的设计文档。从基础开始:写下你在构建什么、为什么构建它;以足够有用的细节描述解决方案;对任何你不确定的事情添加开放问题。 随着你越来越熟练,你会自然地开始添加更多结构,培养出对"多少细节算够"的感觉,学会哪些章节对你的项目类型最重要。 重要的是开始。一份花了一小时写出的粗糙设计文档,无限好于一份完美的、你永远找不到时间去写的文档。你未来的自己和你的队友都会感谢你。
IndieDevBoard

准备好启动你的下一个项目了吗?

IndieDevBoard为你提供看板、进度追踪、笔记本以及你所需的一切——尽在一处。

免费开始