36.不打无准备之仗
# 不打无准备之仗
所有你以为的"运气不好",拆开来看都是准备漏了一环。
# 目录介绍
- 01.一个通宵上线
- 02.市面误读之辨
- 03.三层独家主张
- 04.一九四七转折
- 05.原文四维精读
- 06.最小必要准备
- 07.风险三问清单
- 08.二八准备法则
- 09.团队准备对齐
- 10.一个反面教材
- 11.三个认知陷阱
- 12.三年认知复利
- 13.收束三句金言
# 01.一个通宵上线
三年前我做了一件至今想起来都后怕的事。一个周五下午,产品经理把一份新功能的 PRD 拍在我桌上,说下周一要给大客户 demo。我估算了一下工作量——两天时间开发、半天测试、半天部署,勉强够。我说"没问题",就开始干了。
周六凌晨上线。周一 demo 场景是:用户在 App 里上传一张身份证照片,系统自动识别填充个人信息。我自认为核心流程已经跑通了——拍照、上传、识别、填充,每一步都在我的开发机上没问题。
周一上午 10 点,大客户的会议室。产品经理打开 App,拍照——成功。上传——成功。识别——卡住了。整整 2 分钟转圈。客户老总笑了一下说:"你们是不是还没准备好?"我后背全是汗。
回公司排查才发现问题:开发环境用的是裁剪后的测试图片(200KB),真实身份证照片是 3MB 以上的高清图。图片越大 OCR 接口耗时越长——3MB 的图片在网络传输 + OCR 识别的整个链路上需要 25 秒以上,而我只设置了 10 秒的超时——开发机上够用,真实环境直接炸了。我只准备了"正常情况",没准备"真实情况"——两个词看上去差不多,实际差了一场事故的距离。
那次事故的直接损失是:大客户当场取消了本来准备签的年度合同(金额 300 万)、我在公司内部信誉直接归零、团队士气跌到谷底。三个损失合在一起,我第二季度的所有 KPI 全部被打空——不是因为工作没做,是因为一次上线让所有之前的努力都失去了信任度。准备工作的一个洞,能让 6 个月的努力全部作废——这就是"无准备之仗"的真实代价。
那天晚上我翻开毛选,毛泽东在《目前形势和我们的任务》里写的十个字像一记耳光打在我脸上:"不打无准备之仗,不打无把握之仗。" 我以为自己准备了,其实我连对手——真实用户的使用环境——都没搞清楚。这就叫"无准备之仗"——不是没做准备,是准备的参照系错了。
# 02.市面误读之辨
市面上把"不打无准备之仗"讲成两种东西。第一种是"做事之前要列计划"。这句话没错,但它把准备工作讲成了写文档。真正的准备不只是列计划,是把所有可能导致失败的因素逐一排查并制定应对方案。列计划和做准备之间的差距,就像写了一份旅行攻略和实地踩过一遍路线之间的差距。
第二种更隐蔽——"不要冲动行事"。这听起来很有道理,但它暗示"冲动"的反面是"冷静思考"。毛泽东讲的不打无准备之仗,不是让你多想少动,而是让你在动手前把关键变量的边界值摸清楚。他本人就是一个动作极快的人,但他快的前提是前期的侦察和准备已经到了牙齿缝里。
这两种误读的共同病根是:它们把"准备"讲成了态度(要细心、要谨慎),而不是动作清单(要排查哪些变量、检查哪些边界、准备哪些预案)。态度让人安心,动作让人领先。
# 03.三层独家主张
第一层,准备的真正对象不是"正常情况",是"异常情况"。所有人都能为正常情况做准备——正常流量、正常数据、正常用户行为。但真正出问题的地方永远是异常——流量暴涨 10 倍、数据里有脏字段、用户在非标准环境下使用。你的准备质量不由"正常情况覆盖率"决定,由异常情况的覆盖率决定。
第二层,准备不是一次性的,是分层的。打一场仗需要三层准备:战略准备(为什么要打、打赢了能得到什么)、战术准备(怎么打、分几步、每步需要什么资源)、应急预案(如果哪一步失败,最小的回退成本是什么)。大多数人的准备只做第一层,就以为自己做完了。
第三层,准备的最终目的是让你"敢打"。很多人把"准备"当成了"拖延"的保护色——"我还没准备好"成了常用的借口。毛泽东讲的不打无准备之仗,不是为了让你永远不打,而是为了让你在准备好的那一刻立刻动手。准备和不打之间有一条极细的边界——跨过去是果断,跨不过去是拖延。
# 04.一九四七转折
1947 年 12 月 25 日,毛泽东在陕北米脂县杨家沟召开的中共中央扩大会议上作《目前形势和我们的任务》报告,正式提出十大军事原则,其中第五条就是"不打无准备之仗,不打无把握之仗"。这篇文章写于解放战争从战略防御转入战略进攻的关键时刻——刘邓大军 1947 年 8 月挺进大别山成功、陈粟大军攻占鲁西南、彭德怀西北野战军三战三捷,共产党第一次在战略主动权上压过了国民党。
在这之前的两年,解放军经历了从被动防御到主动进攻的转折。1946 年 6 月国民党发动全面内战,430 万对 127 万——兵力比是 3.4:1。蒋介石的战略意图很清楚:用绝对优势的兵力在 3 到 6 个月内消灭共产党主力,甚至定下了"三个月内解决中共问题"的时间表。
毛泽东没有硬顶。他让出城市(包括党中央所在地延安),转入农村,每一场仗都在打之前做足了侦察、准备了退路、计算好兵力对比。具体到操作细节:每次开打前,先派侦察兵摸清地形、每次调动都提前 3 天做后勤准备、每次战役前都开"作战会议"由团级以上干部逐条对参战计划提意见——任何一个环节没通过审查,仗就不打。他不打兵力对比低于 3:1 的仗——如果战场上做不到 3:1 的局部优势,他就不打。这就是"无把握之仗不打"的极端版本——即使全国兵力对比是 1:3.4 的劣势,也要在具体战场上创造 3:1 的优势才动手。
这个思路的执行效果是惊人的:十大军事原则发表后,解放军的伤亡率大幅下降。以前平均每歼灭 1 个敌人自己要牺牲 1.5 个战士,到 1948 年下半年这个数字变成了 0.3——同样歼灭 100 万敌人,1946 年要付出 150 万人的伤亡,1948 年只要付出 30 万。不是解放军变能打了,是每场仗在开打之前就已经算赢了。1948 年后半年到 1949 年上半年,解放军接连打出辽沈、淮海、平津三大战役——三大战役共歼敌 154 万,解放军伤亡不到 30 万。这些数字背后是"不打无准备"这五个字的分量。
# 05.原文四维精读
原文:"不打无准备之仗,不打无把握之仗,每战都应力求有准备,力求在敌我条件对比下有胜利的把握。"
请注意毛泽东用了两次"力求"。不是"必须",不是"一定",是"力求"。这两个字里藏着极强的实战意识——他承认完全的准备是不可能的,但你必须在开打之前做到你能做到的最好准备。这是实事求是的态度:不追求完美,但追求在现有条件下做到极致。
再看一个被忽略的词——"敌我条件对比"。毛泽东说的准备,不是在真空中准备,而是在对手的对比中准备。你的准备够不够,不由你说了算,由你和对手的差距说了算。如果你准备了 100 分,但对手准备的是 200 分,你还是没准备好。准备的唯一参照系是对手。
这段话写于 1947 年 12 月。此时解放战争已经打了一年半,解放军从 127 万发展到 195 万,国民党军队从 430 万人减少到 373 万人。毛泽东不是在给新手写兵法——他是在给一群已经打了 20 年仗的老兵写检查清单。这群人不会犯"忘了准备"的低级错误,但他们需要被提醒:准备的有效期很短,上一次的胜利不能用在这一个战场上。
这段话内部有一个张力:准备和行动是一对矛盾体。准备需要时间,行动需要速度。你永远不可能"准备好一切"再动手——外部条件在变、对手在变、窗口期在关。真正的准备高手不是"准备得最充分的人",而是能在最短时间内完成最关键准备的人。准备的速度,比准备的完整度更重要。这个平衡点非常微妙——过度准备是拖延的另一种形态,很多人用"我要再准备一下"来逃避不确定性带来的焦虑;而准备不足是鲁莽的常见形态,很多人用"先干起来再说"来掩盖对失败风险的低估。在这两个极端之间找到"最小必要准备"这个点,是所有战略执行者一生的功课——年轻时容易偏鲁莽,年纪大了容易偏拖延,两个极端都会毁掉一个原本可以成功的项目。
市面上把这句话翻译成"三思而后行"。这是彻底错的。"三思"没有标准——思三次?思三天?思三种方案?毛泽东给的标准是极其具体的:在敌我条件对比下有胜利的把握。这个标准逼着你每次都去研究对手,而不是坐在房间里自己冥想。"三思而后行"让你变成一个迟缓者,而"在对比中有把握"让你变成一个快而不乱的人。
# 06.最小必要准备
很多人在"准备"和"行动"之间卡住的原因是:他们以为准备必须做完整。这不可能——任何领域的完整准备都是无限的。真正的准备要回答的问题不是"我准备好了吗",而是"最小必要准备做完了吗"。
最小必要准备包括三项:第一,核心流程的所有边界值都测试过(正常值、最大值、最小值、异常值、空值)——每一个变量都要至少覆盖这 5 种情况才算真的测过;第二,有一条可以在 5 分钟内启动的回退方案——不是理论上的方案,是团队里有人已经演练过、按 A 键就能启动的方案;第三,所有相关方知道你的动作和风险——不是发邮件通知就算数,是每一个相关方回复了"已收到、我理解风险、我在场"三条确认才算数。这三项做完,你就可以开打,其余的细节可以在行动中补充。
具体的边界值测试范例:以我那次 OCR 翻车为例——正常值是 200KB 的测试图片、最大值应该测 5MB 的高清图片、最小值应该测 10KB 的极小图片、异常值应该测破损/模糊/反光的图片、空值应该测无图上传的错误处理。我当时只测了正常值就上线,等于只做了 1/5 的准备——被打脸是必然的。如果我把 5 种边界值全跑过,那次事故就不可能发生。
准备的质量不由准备的量决定,由"被遗漏的关键变量数"决定。一个检查了 3 件事但全部关键的人,比一个检查了 30 件事但漏了最关键那件的人,准备得更充分。遗漏 1 个关键变量,前面 29 个的准备都白费——这是准备工作最残酷的规律。
# 07.风险三问清单
每次重大行动前,问自己三个问题。
第一个:如果这件事失败,最坏的结果是什么?我能承受吗? 这个问题是在做底线管理——如果最坏结果你都承受不了,不管准备多充分都不该开打。具体动作:把"最坏结果"写下来(比如"用户数据丢失 100 万条"、"业务停摆 24 小时"、"直接经济损失 500 万"),然后问自己"如果这个真的发生,我们下季度还能生存吗?"——答"不能"的项目直接砍掉;答"能但很痛"的项目要为最坏情况准备补救方案;答"能且可控"的项目可以直接开打。
第二个:最可能失败的一环在哪?我有预案吗? 大多数人在准备时平均分配注意力——每件事都准备一点。但真正有价值的准备是把 80% 的精力投入到最容易炸的那一环。具体动作:拿出待办清单,把每一项标注"炸的概率"(0-100%)和"炸了的损失"(0-100 分),两个数字相乘得到"风险优先级"——准备资源要按风险优先级从高到低分配,最高的那一项至少投入 40% 的准备时间。
第三个:我做这个准备的假设前提是什么?这些前提还成立吗? 很多人做了一次准备之后就再也不验证前提。三个月前你准备的假设——"数据库能撑住 5000 QPS"——今天可能已经不成立了(因为数据量涨了、业务模式变了、依赖服务被降级了)。准备的有效期比你以为的短得多。具体动作:给每一份准备文档加一个"假设列表"——列出所有依赖的前提条件;每次重要行动前,逐条验证这些假设是否还成立——任何一个假设变化,整个准备可能都要推翻重来。
# 08.二八准备法则
准备也需要成本。如果你为一次行动的准备工作花了超过行动本身 50% 的时间,你大概率在过度准备。毛泽东的不打无准备之仗,不是让你在战前准备到天荒地老,而是让你用最小的准备成本获得最大的胜率提升。
二八法则在准备上的体现:20% 的准备动作能覆盖 80% 的失败风险。识别那 20% 的动作是准备的核心能力,其余 80% 的细节可以留给现场的应变能力。如何识别那 20%:翻看过去 5 次类似行动的复盘记录,看看失败的根因分布在哪几类——通常你会发现 3-5 类根因覆盖了 80% 的失败,这 3-5 类就是必须准备的"高价值 20%"。过度准备的人往往在细节的 80% 上耗尽精力,而漏掉了根因的 20%——这就是为什么"准备得看起来很充分"的项目反而经常翻车。
# 09.团队准备对齐
个人层面的准备相对简单,团队层面的准备才真正考验管理能力。最常见的场景是:Leader 觉得准备好了,但一线执行的人发现还有三个关键变量没测试。Leader 的"准备好"是概念级的,一线的"没准备好"是操作级的。两者之间的信息不对齐,是所有失败准备的根源。
解决方法是:不用开会对齐,用检查清单对齐。每次重大行动前,发一张检查清单给所有参与者。清单内容只有三列:关键变量、边界值、谁负责检查。每个人在各自负责的条目上打勾,不填完不发车。清单比开会准确一百倍——会议可以被敷衍,但勾不能。
检查清单的三个设计原则:第一,具体到可执行——不能写"检查性能"(模糊),要写"用 10MB 图片跑 OCR 接口,耗时不超过 8 秒"(具体);第二,有明确验收人——每一项后面必须有一个负责人的名字,不能写"团队"或"相关同事";第三,有截止时间——每一项必须有一个"最迟完成时间",超时未打勾就是红牌。三个原则做到位,团队准备的质量可以从 60% 拉到 95%——不是靠盯人,是靠清单本身的自我约束力。
# 10.一个反面教材
2018 年一家 SaaS 公司准备在双十一当天做一个限时优惠活动,预计流量是日常的 10 倍。CTO 提前两周做了扩容——把服务器从 10 台加到 50 台,做了压力测试,一切正常。CTO 在项目复盘会上很自信地说:"我们做了充分的准备"。
但他的"充分准备"里漏了三个致命环节:
环节一:没有研究行业基准数据。双十一是一个 10 年的老 IP,同行业每一家做过双十一的公司都有公开或半公开的流量数据。淘宝、京东、拼多多的双十一流量峰值曲线都是"零点 5 分钟内 80-100 倍、之后回落到 10-20 倍"的形态——这是行业常识。但这位 CTO 没做过任何行业调研,直接用自己脑子里想象的"10 倍"作为准备目标。这不是准备,是自我催眠。
环节二:压力测试没跑到极限值。他做了压力测试没错,但测试的场景是"稳态 10 倍流量下的表现",没有测试"5 分钟内从 1 倍飙升到 80 倍的瞬时冲击"。稳态和瞬时是两种完全不同的负载场景——数据库连接池、缓存预热、CDN 回源、消息队列积压,每一个组件在瞬时冲击下的表现都和稳态完全不同。
环节三:没有回退方案。整个准备工作里没有任何一份"如果流量超过预期怎么办"的应急预案——没有限流开关、没有降级方案、没有静态化兜底、没有主备切换。等于赌博性上线——赢了皆大欢喜,输了裸奔崩盘。
结局:双十一当天零点活动准时上线,5 分钟内涌入的流量不是日常的 10 倍,而是 80 倍。下单接口瞬间被击穿,支付系统崩溃。事后整整两天才把数据修复完,2000 多个用户付了钱却没生成订单,赔了 200 万+,还上了行业新闻。
问题出在哪?CTO 的准备只针对了他以为的峰值——"10 倍"。他没研究过同行业去年的数据,不知道双十一第一条微信推送的 5 分钟内流量不可能线性增长。他准备了,但他准备的对手是自己脑子里想象的那个,不是现实中实际存在的那个。"我准备好了"不等于"我对了"——准备的参照系必须是对手和现实,不能是自己的估算。
# 11.三个认知陷阱
陷阱一:把"准备"当成"拖延"的遮羞布。"我还没准备好"是职场里最体面的推脱词。识别方法:区分真准备和假准备的标准是——你最后一次为这件事做了具体的准备工作是什么时候? 如果答案是"一周前",你就是在拖延。破解动作:给"准备"设一个最长期限(比如"这件事的准备最多花 5 天"),到期不管准备到什么程度都必须动手——80% 准备+行动,永远比 100% 准备+空转好。
陷阱二:只在"正常情况"里准备。真正的准备不是在理想条件下跑一遍流程,是把所有可能让流程崩溃的变量都用最小成本试一遍。识别方法:翻你上次准备的测试记录,看看有没有覆盖"最大值/最小值/空值/异常值"——如果只覆盖了"正常值",你就掉在陷阱里。破解动作:把"5 种边界值"列成一张固定清单,每次准备都强制走一遍——不需要多聪明,只需要不偷懒。
陷阱三:准备一次管一年。外部条件在变、用户行为在变、技术栈在变——上一次的准备结论是有有效期的。识别方法:如果你正在用去年的准备结论作为今年的行动依据,说明你已经在陷阱里。破解动作:每次行动前重新验证关键假设——把去年的假设逐条问一遍"这个还成立吗",任何一个不成立的假设都要重新准备相关环节。
# 12.三年认知复利
那个 OCR 翻车之后,我给所有项目上线前加了一张"最小必要检查清单":核心流程边界值全部跑过、回退方案在 5 分钟内可执行、所有相关方已同步风险。三年来这张清单挡住了不下 10 次潜在的线上故障。
第一年的变化:团队开始把"准备"从抽象概念变成具体动作——每次上线前都必须打勾一遍清单。头三个月团队抱怨清单太繁琐,第四个月开始有人主动来加清单条目("这次遇到了 X 问题,我们把它加进清单吧"),第六个月清单成了团队的"共享武器库"——每个人的教训都变成了下一次准备的免疫力。
第二年的变化:我发现一个有意思的现象——准备做得越充分的项目,执行时越轻松。不是因为"准备好了就不出问题",而是因为你知道哪里可能出问题、出了问题找谁、退一步怎么做。这种确定性会让你在行动时无比冷静——而冷静就是最稀缺的执行力。团队从"上线夜通宵盯屏幕"变成了"上线夜正常下班"——不是不认真了,是认真提前到了准备阶段。
第三年的变化:我判断一个工程师是否靠谱,有了一条硬标准:他上线前会不会主动来找我确认"你觉得哪个环节最可能炸"。问这个问题的人,已经具备了准备的思维框架;不问这个问题的人,还停留在"写了代码就等于准备好了"的阶段。这个问题成了我招聘和晋升评估里的默认第一问——一个能主动识别风险点的工程师,比一个技术更强但只关心自己代码的工程师,价值高一个数量级。
准备的质量从来不取决于你花了多少时间,取决于你找到了多少个"可能炸的点"并提前堵上了。不炸比炸了再修便宜一万倍——事故一次的成本(补偿+舆情+团队士气)通常是准备工作成本的 100 倍以上,这个投资回报率是任何管理者都应该看得懂的。
# 13.收束三句金言
一句话核心:准备的参照系是"对手+现实",不是"自己的估算"。用想象力做的准备只能骗自己,用行业数据和边界测试做的准备才能骗过风险——这就是准备工作最核心的判断标准。
你应该带走的三件事:
一,准备的关键变量不是"正常值",是"边界值":最大值、最小值、空值、异常值全部跑过才算准备好。5 种边界值一次跑清——不需要多聪明,只需要不偷懒。
二,最小必要准备三件套:核心边界全通过 + 5 分钟回退方案 + 相关方同步风险。做完这三件就开打,其余细节可以在行动中补充。"完美准备"是幻觉,"最小必要准备"才是可执行的标准。
三,准备的有效期比你想象的短:每季度重新验证关键假设,上一次不出事不代表这一次也安全。假设变了,整个准备可能都要推翻重来——不重新验证就是在赌博。
一句留给你的反问:你手头那个下周就要交付的项目,最可能炸的一环在哪?你的预案是什么? 如果你答不上来,不是时间不够,是你还没开始准备。准备的第一动作永远是识别风险,不是写文档——先找到那个最可能炸的点,其他都是次要的。从今天起就开始练习起来——每次重要行动之前留出的 5 分钟里,都只问自己一个问题:"这次最可能炸掉的到底是哪一个具体的环节?"