第 10 章 · 提纲挈领
这一章的题记干脆就是一个"假设":在堆积如山的文件资料中,少数文档是关键枢纽,每一件项目管理的工作都围绕着它们运转。这些文档是项目经理最重要的个人工具。
这一章讲了什么
作者先替新任项目经理说了句实话。技术、周边组织、行业传统等因素共同决定了项目必须准备哪些文书工作,而对一个刚从技术人员中提拔上来的经理来说,这些文档"令人生厌",看起来毫无必要、令人分心,充满被吞没的威胁——“但是,在实际工作中,大多数情况都是这样的。”
转变发生在认识上:文档的某些部分本身就承载着管理工作。每份文档的准备工作,是集中考虑并使各种讨论意见明朗化的主要时刻;不这样做,项目往往处于无休止的混乱中。文档的跟踪维护是项目监督和预警的机制,而文档本身可以充当检查列表、状态控制和汇报的数据基础。
为了说清软件项目该准备什么,他先去别的行业找共同点。
计算机产品的文档包括:目标(待满足的目标与需要、迫切需要的资源、约束和优先级)、技术说明(计算机手册加性能规格说明,是计划新产品时第一个产生、最后完成的文档)、进度、预算、组织结构图、工作空间的分配,以及报价、预测、价格这三份互相牵制的文档。他对预算的评价值得单独记:它"不仅仅是约束",而是最有用的文档之一——预算的存在会迫使制定技术决策,否则技术决策很容易被忽略,更重要的是它促使并澄清了策略上的决定。
报价、预测、价格构成一个循环:市场预测需要先有产品性能说明和假设价格;预测值连同设计得出的组件数量决定生产成本,进而决定单元开发工作量与固定成本,最后决定价格。价格低于假设值就进入良性循环——预测更高、单元成本更低、价格可以继续降;高于预测值则进入必须拼命打破的灾难性循环。作者说这种压力常常是激励市场人员和工程师的最佳动力,但也坦承它会带来"可笑的和摇摆":他见过一个三年的开发周期里,机器指令计数器的设计每六个月变一次——要性能时用触发器实现,要降成本时改用内存实现。而他所见过最好的一位项目经理,作用是充当大型调速轮,用惯性压平来自市场与管理的波动。
大学科系的文档几乎是一份镜像:目标、课程描述、学位要求、研究报告(申请基金还要求计划)、课程表与课程安排、预算、教室分配、教师与研究生助手的分配。唯一不需要的是价格文档,那由校董事会完成。作者说这种相似不是偶然——任何管理任务的关注焦点都是时间、地点、人员、项目内容和资金。
于是软件项目的文档应当包括:内容上的目标(待完成的目标、迫切需要的资源、约束和优先级)与产品技术说明(以建议书开始,以用户手册和内部文档结束,其中速度和空间说明是关键部分),时间上的进度,资金上的预算,地点上的工作空间分配,以及人员上的组织图。他特别点出组织图与接口说明相互依存,并引了 Conway 的规律:“设计系统的组织架构受到产品的约束限制,生产出的系统是这些组织机构沟通结构的映射。“Conway 进一步指出,最初反映系统设计的组织图肯定不会是正确的;如果系统设计可以自由变化,那项目组织架构就必须为变化做好准备。
最后回答"为什么要有正式的文档”,三条理由:
- 书面记录决策是必要的——只有记录下来,分歧才会明朗,矛盾才会突出。书写本身要经历上百次细小决定,正是这些决定让人从令人迷惑的现象中得到清晰、确定的策略。
- 文档是沟通渠道——项目经理会不断发现,许多理应被普遍认同的策略,完全不为团队中某些成员所知。而项目经理的基本职责是让每个人朝同一个方向前进,所以他的主要工作是沟通,而不是做出决定;文档能极大减轻他的负担。
- 文档是数据基础和检查列表——通过周期性回顾,可以清楚项目所处的状态,以及哪些地方需要重点更改和调整。
这里他顺手否掉了一类流行说法:销售人员吹捧的"完全信息管理系统”(管理人员输入查询,屏幕就显示结果)。他的理由很实在——管理人员只有一小部分时间(可能 20%)用来从自己头脑外部获取信息,其余时间都在沟通:倾听、报告、讲授、规劝、讨论和鼓励。不过对于基于数据的那部分,少数关键文档至关重要,足以满足绝大多数需要。
全章收在一段总结上:项目经理的任务是制订计划并实现计划,而只有书面计划才是精确和可以沟通的;计划包含时间、地点、人员、项目内容和资金;这几份少量文档封装了他大量的工作。如果一开始就认识到它们的普遍性与重要性,文档就会成为顺手的工具,而不是令人厌烦的负担——“通过遵循文档开展工作,项目经理能更清晰和快速地设定自己的方向。”
我的判断
- 这一章看似在讲文书工作,实际回答的是第 7 章留下的问题:工作手册里该放什么。作者给出的答案是六个维度——内容、时间、资金、地点、人员,加上作为约束的优先级;这比"把所有文档放进一个目录"有用得多,因为它规定的是文档的种类而不是数量。
- “预算是最有用的文档之一,因为它迫使技术决策"这一条,我认为是全章最反直觉也最实用的判断。约束不来自技术论证,而来自资源的边界;而边界会强迫你在设计期就拍板。这和第 5 章"给每个功能分配 m 字节、n 微秒"是同一个机制,只是尺度不同。
- 那个"指令计数器每六个月换一次实现"的例子,我读的时候笑了一下——它不是能力问题,而是缺少一位充当调速轮的人。作者对那位"最好的项目经理"的描述是一个很有价值的角色定义:他的贡献不是做更多决策,而是减少组织的来回震荡。
- “项目经理的主要工作是沟通,而不是做出决定"这句话,我在第 6 章见过它的另一种说法(没有人是顾问,每个人都要承担义务)。两处合起来看,作者对管理角色的定义是一致的:让信息与方向一致,比亲自拍板更重要。
- 我对他否掉"完全信息管理系统"的理由持部分保留。他说管理人员只有 20% 时间从头脑外部获取信息——这个数字是 1975 年的经验值,今天的形态已经大不相同。但他指向的核心仍成立:信息系统的价值不在于信息总量,而在于它是否服务于正在做的决策。
- Conway 定律被放在这里而不是单独的章节,我觉得位置很准:组织图和接口说明是同一件事的两个投影。这条规律在今天最有用的推论是——想改变系统结构,先改变沟通结构,反过来也一样,组织不动而只改架构,多半失败。
和我手上的工作有什么关系
- 按这六类文档对照我手上的站点:目标(
PLAN.md与docs/sessions/里的决定)、技术说明(docs/reading-protocol.md与AGENTS.md的约定)、进度(几乎没有)、预算(完全没有)、空间(data/home/*.yaml与栏目结构)、人员(我 + Agent,没有成文)。缺的正是进度与预算——这两样恰好是我最常凭感觉判断的部分。 - “预算迫使技术决策"这条我打算直接落地:给站点设一个明确的内容预算(栏目数上限、每篇笔记的字数区间、首页卡片的数量上限)。有了这个边界,“要不要再加一个栏目"就不再是品味之争,而是预算问题。
- “组织图与接口说明相互依存"给我的提醒是:当我给 Agent 划分职责(谁写内容、谁做构建、谁做校验)时,职责划分本身会决定产物的结构。作者说最初的组织图肯定不对,所以我应该把职责调整当成常态,而不是一次设计到位。
- 我特别认同"书写需要上百次细小决定"这句。写会话记录的过程本身就逼我发现了几个之前含混的判断(比如第 5 章那句中译歧义),写作是思考的检查器,不是思考的转录——这也正是这个读书笔记系列值得用四节固定结构写下去的理由。
一句话记住
别把文档当负担:在堆积如山的材料里,真正起作用的是少数几份关键文档——它们覆盖内容、时间、资金、地点与人员,记录决策、充当沟通渠道,并让你随时知道项目处在什么状态。