Problem entry · machine-readable · 经验与方法论

写文档到底图什么?——从"写文档累、看文档更累"到"文档是给未来自己、队友和 AI 的资产"

本页嵌入 #trove-entity JSON(本条目全量结构化数据);全库数据见 /agent/trove.json。

元数据

iddoc-culture-consensus收录2026-09-01
问题域经验与方法论主题分组经验与方法论
适用工具未挂接

症状

先讲一个每个写代码的人都逃不掉的循环:需求评审会上,产品经理说"补个文档吧",你嘴上答应,心里想的全是"代码都写完了还要文档干什么"。于是文档拖到交付前一天,花了三个小时把 README、接口说明、部署步骤"编"了出来——写的时候你就在想,这玩意儿写完大概没人会看。果然,三个月后你自己翻它,发现部署步骤已经过时了,接口文档里有一个字段的格式跟代码对不上。你一边改一边骂:写文档累,看文档更累。

然后是你的 AI 同事带来的新版本焦虑:你把项目丢给 Claude Code 或 Cursor,让它改一个功能,它生成了一坨"看起来合理但完全不符合项目风格"的代码——用了项目里根本不存在的依赖、绕过了你封装的公共方法、命名风格跟整个代码库格格不入。你花在审查和重构上的时间,比你自己写还多。你开始怀疑:是 AI 不行,还是我喂给它的东西不行?

再讲一个团队版噩梦。你入职一家公司,leader 说"系统是老张写的,你以后维护",你去找老张,老张正忙着,说"你看代码就行,代码里都有"。你打开代码:没有 README,没有架构图,启动依赖三个环境变量两个中间件,其中一个是老张的同事小李离职前配的,小李的交接文档是一句话"按我之前的邮件来",邮件已经找不到了。你问了三个人,得到三个版本的答案,谁也不敢保证哪个是对的——最后你只能靠"试"来验证。

而老张呢?他一个人知道所有事,他休假的时候,全组都不敢动那个系统。

如果你也在经历这些——文档写了没人看、AI 生成代码质量像开盲盒、团队知识全在几个人脑子里、新人来了三个月还不敢动代码——这篇文章是写给同类人的。它不是教你背模板,是那些真被"文档债"教育过的人用加班和返工换来的共识:**文档从来不是给公司看的交付物,是给未来的自己、给队友、给 AI 看的资产。谁先把这件事想明白,谁就少踩三年的坑。**

原因

先想清楚:文档为什么越写越没用?四个错位,每个都是"看着在写,实际在空转"。

**第一,把"写文档"当成"完成任务"。** 大多数团队的文档是被"补"出来的:需求评审要文档、交付要文档、年终要文档,于是文档成了"交付物"——写的人想着赶紧交差,看的人想着赶紧翻过去。文档一旦成了形式,就没人维护;没人维护,就没人看;没人看,就更没人写。这个恶性循环的起点,就是把文档当"任务"而不是"资产"。

**第二,把文档定位成"给领导看"而不是"给未来的自己看"。** 有个很扎心的共识:写文档最大的受益者,其实是三个月后的自己。你写的部署步骤、接口说明、踩坑记录,真正在看的人是你自己——但大多数人在写的时候,脑子里想的是"评审会不会通过",而不是"三个月后的我翻到这一页,能不能 30 秒搞明白"。定位错了,写法就错了:要么堆砌官话,要么省略关键细节。

**第三,把"同步"当成唯一沟通方式。** 很多团队的信息传递靠"开会 + 口头 + 私聊":讨论在会议室里发生,结论在口头里流传,细节在私聊里丢失。新同事想知道"这个模块为什么这么设计",只能找当事人问——当事人忙、当事人离职、当事人自己也忘了。同步沟通是即时的、易失的;文档是异步的、可检索的。把知识只放在同步通道里,等于把知识放在流沙上。

**第四,把文档和代码当成两套世界。** 代码改了,文档没改;文档写了,代码没写。文档一旦和代码脱节,就失去了"可信度"——看文档的人发现文档是错的,从此再也不看文档。而 AI 时代这个错位的代价被放大了:AI 读不到你的口头知识,它只能读到文档、代码和注释。你文档里没有的上下文,AI 就替你"猜"——猜出来的代码质量,自然像开盲盒。

下面每条经验,都是把文档从"形式主义"拉回"资产"的做法——它们不是一家之言,是几套独立实践反复验证过的共识。

解法

### 经验 1:文档的本质是"异步协作的输入"——先写文档,再开会

现象:字节跳动被反复当作协同标杆研究,其内部沟通体系的核心不是会议,是飞书文档。任何重要讨论或会议之前,发起人必须写一份结构清晰的文档:背景、方案、待决议项。开会时大家先默读文档(飞阅会),再针对文档上的评论讨论——不搞"背景介绍会"。这看起来是流程繁琐,实际是效率革命:写文档强迫作者把问题想清楚,读文档让所有人在同一信息起点上讨论,评论和修改历史让决策过程本身被沉淀下来。

做法:①**文档先行**——重要讨论/方案评审前,先花 20 分钟把背景、方案、待决议项写成半页文档,再拉人开会;②**会议读文档**——会议开始先静默读文档,口头只讨论"差异和决策",不重复背景;③**结论入文档**——会上达成的结论当场写进文档,而不是散落在会议纪要/聊天记录里。

为什么:书面化、结构化地表达,天然逼你把"感觉"变成"判断",把"大概"变成"具体"。口头沟通是"高带宽但易失"的,文档是"低带宽但持久"的——异步协作的价值不是取代沟通,是让沟通有据可查、可回放、可复用。

### 经验 2:AI 时代,文档就是喂给 AI 的"超级 Prompt"——Garbage In, Garbage Out

现象:很多人抱怨 AI 生成代码质量不稳:上一个需求它写得优雅高效,下一个需求它产出一段有潜在安全漏洞的代码。深入看会发现,根因往往不是模型能力不足,而是"垃圾进、垃圾出"——AI 编程助手像一位技艺高超但对项目背景一无所知的顶级程序员,你的输入越模糊、越缺上下文,它的产出越偏离预期。

传统文档是"写给人看"的(PRD、架构文档、数据库设计),AI 时代这些文档被重新定义:它们是喂给 AI 编程工具的结构化上下文。

给它一套完整文档(需求 + 架构 + 数据模型 + 前端规范),它生成代码的质量会质变;只给它一句"开发一个电商 App",它就替你猜。

做法:①**把项目骨架写成文档**——README 里写清楚"这个项目是什么、技术栈、目录结构、启动方式、约定",这不仅是给人看的,也是给 AI 的初始上下文;②**关键决策写"为什么"**——在文档/注释里写"为什么这么设计",AI 才能理解约束而不是瞎猜;③**用文档驱动 AI**——给 AI 任务前,先确认它能看到 README、接口文档、现有代码风格;

④**AI 生成文档,文档再驱动 AI**——用 AI 起草文档(PRD/接口文档/变更说明),人来审校,再拿文档去驱动 AI 写代码,形成闭环。

为什么:AI 的输出质量上限,取决于你给它的上下文质量下限。文档从"写给人看的指南"变成"喂给 AI 的超级 Prompt"之后,写文档不再是"额外负担",而是让 AI 替你干活的前提投资——这笔账怎么算都是赚的。

### 经验 3:知识孤岛和单点故障,只能靠文档化知识来破——部落知识要变成文档知识

现象:很多团队的真实状态是"知识在人脑里":某个系统只有老张会维护,某个配置只有小李知道,新人来了只能挨个问人。这就是典型的"部落知识"——存在于个人脑子里的未文档化知识。部落知识的代价是:单点故障(老张休假全组停摆)、信息孤岛(各部门各搞一套)、信息偏差(三个人三个版本)。更隐蔽的是"闹鬼墓地"现象:代码没人敢动,因为懂它的人不在了,注释写着"别删,删了会炸"。

做法:①**关键知识必须落文档**——系统的部署方式、环境变量、设计决策、踩坑记录,凡是"只有某个人知道"的知识,都要变成文档;②**文档和部落知识互补**——文档是骨架,专家是血肉:文档回答"是什么/怎么做",专家回答"为什么是这样/特殊情况怎么办";③**建立规范的"单一信息源"**——开发者指南、代码实践规范、常见问题手册,由主题专家维护和评审,让团队遇到问题先查文档而不是先问人;

④**新知识及时沉淀**——你解决了一个没人遇到过的问题,把它写成文档/笔记,而不是只在自己脑子里留个印象。

为什么:软件工程的核心是人,但知识不能只存在人身上。文档化的知识可以在团队甚至整个组织内继承和流动——它是唯一不随人员流动而流失的载体。团队的知识管理目标不是"消灭专家",是"让专家知道的东西,不再只有专家知道"。

### 经验 4:写文档是工程纪律,不是时间浪费——正规研发流程里,30% 时间写文档是正常的

现象:有篇流传很广的《给浮躁的软件业同仁》讲了一个真实案例:作者团队去印度做外包项目,对方需求分析阶段提交了一份四十多页的 SRS 文档,多人合写但风格一致、内容详实;项目推进中每个阶段都有 review,QA 拿着 checklist 参会打勾;对方按"300 行/人月"的生产率排期——作者心里暗想"我们六七百行",对方却说"这个计划是建立在确保质量的基础上的"。

作者反思:我们缺的不是代码能力,是工程纪律。

文章里有一句话被反复引用:**"作为代码程序员,30% 的工作时间写技术文档是很正常的,高级程序员和系统分析员的比例还要更高。缺乏文档,一个软件系统就缺乏生命力,在未来的查错、升级以及模块复用时会遇到极大的麻烦。"**

做法:①**把写文档算进工时**——需求分析、设计、编码、测试、文档,文档是开发流程的一环,不是编码的附属品;②**先写文档再写代码**——重要模块先写设计文档(目标/方案/接口/风险),写清楚再动手,返工率会显著下降;③**文档要过 review**——像代码评审一样评审文档:风格一致、内容准确、覆盖完整;

④**别把"写文档"和"写代码"对立**——文档不是从编码时间里克扣的,它是让编码不返工的投资。

为什么:文档的质量直接决定系统的生命力——查错、升级、复用,全靠文档撑着。把文档当"编码之外的事",文档就会变成"编码之后补的事";把文档当工程纪律,文档就会变成"让代码少返工的事"。印度项目的启示不是流程繁琐,是:文档写得好,需求分析阶段就把 80% 的问题消灭了。

### 经验 5:让文档"活着"——更新是纪律,流转是机制,可读性是底线

现象:文档最大的死因不是没人写,是没人更新。代码改了文档没改,读者上过一次当就再也不信文档;更常见的是文档写了一堆,但没人知道它在哪、没人知道该看哪份,最后文档沦为"知识坟场"。还有一层:文档写出来要让人(和 AI)读得懂——写文档的人熟悉上下文,读文档的人没有,于是"文档写了等于没写"。

做法:①**发现错误马上改**——看到文档有错误或遗漏,立刻更新,不要等"统一整理";②**新流程新步骤必须文档化**——你创建了一个新的开发步骤,就用文档记录它,并让团队容易找到;③**建立反馈机制**——文档要有"哪里错了"的反馈通道,读者能报告,维护者能响应;④**用代码评审传播规范**——代码评审是"可读性流程":它把最佳实践以书面意见的形式传播,融合文档知识和专家经验的优点;

⑤**推广文档而不是重复讲解**——有人问问题,先引导他看文档,再在需要时补充讲解——既沉淀知识,又避免知识回流到个人脑子。

为什么:文档的敌人是"过期"和"找不到"。更新纪律解决过期,流转机制解决找不到,可读性解决"写了等于没写"。这三件事做齐,文档才会从"死资产"变成"活资产"——它会自己替你回答问题,替你的团队省时间,替 AI 提供上下文。

### 怎么开始用(落地清单,L1 执行层)

1. 本周给手头项目补一页"启动文档":这个项目是什么、技术栈、怎么跑起来、目录结构、部署方式——写给自己看,30 分钟以内完成;

2. 下一个要开的方案会,先写半页"背景 + 方案 + 待决议项"再拉人,会上先读文档再讨论;

3. 今天起,AI 改代码前先喂上下文:把 README、关键接口、代码风格约定丢给它,再让它干活——对比一下生成质量;

4. 你解决的第一个"没人遇到过的问题",写一条笔记/文档存进项目,不要只留在脑子里;

5. 看到文档有错,当场改掉,不攒着。

### 怎么迁移到你的场景(L3 深入层)

- **个人项目**:把"写给未来的自己"当第一原则——README 写清楚怎么跑、为什么这么设计、踩过什么坑;三个月后你会感谢现在的自己;AI 改代码前先给它 README 和关键文件的路径,生成质量会明显提升。

- **小团队(5-15 人)**:先落地三件事——文档先行(讨论前写半页)、单一信息源(部署/环境变量/踩坑放一个固定地方)、发现错误马上改;每周花 10 分钟维护文档,别让它烂尾。

- **大型团队**:文档要"当产品做"——规范信息源 + 主题专家评审 + 反馈闭环 + 可检索;代码评审承担"可读性流程"的职责;飞阅会式的"读文档再讨论"可以消灭大部分无效会议。

- **AI 时代**:文档从"给人看"变成"人机共用"——AI 读文档、生成代码、起草文档,人负责审校和维护;"上下文管理"是 AI 编程时代的新核心竞争力,而上下文管理的起点就是文档;AI 生成代码质量不稳时,先检查你喂给它的上下文够不够,而不是先怪 AI。

- **如果你正卡在"文档没人看 / 知识全靠问人 / AI 生成代码像开盲盒"**:从最小的闭环开始——给手头项目补一页启动文档;下次 AI 干活前先喂 README;解决一个新问题就写一条笔记。三个星期后,你会看到差别:最明显的是,你不需要再向三个月前的自己"考古"了。

收尾:写文档最反直觉的一点:它不省现在的你,省三个月后的你。我栽过的坑是项目只有我一个人懂,休假回来连自己都看不懂自己的代码;后来把 README 当「写给未来自己的信」——怎么跑、为什么这么设计、踩过什么坑——一切才开始不一样。别把「文档」想得太宏大,就写一件事:未来某个时刻的你,需要知道什么。

来源与证据

素材来源:

验证证据:共识型经验(多篇同主题来源提炼,案例已脱敏融入正文,不逐一列出)