到现在为止,我们干得挺漂亮:把龙餐馆拆成工位、队列、缓存、瓶颈、限流器。这套语言很爽,爽到有个副作用——我们开始不自觉地把厨师、服务员、洗碗工,也当成同一种东西来对待。
当成什么?当成线程。
先把靶子立起来:人 ≠ 线程
工程师看排班表,脑子里冒出来的模型往往是这样的:厨房有 6 个"worker",前厅有 4 个"worker",忙不过来就加 worker,闲下来就撤 worker,谁病了就换一个顶上——反正都是执行单元,同质、无状态、想加就加、想调就调。
说人话:我们偷偷把人当成了"可替换的 CPU 核心"。核心之间没差别,跑完一个任务就干干净净,随时能被调度到任何地方。
这个模型的问题不是"不道德",而是它就是错的——它对现实的预测会失败。把餐馆按这个假设去优化,你会得到一家账面完美、实际一碰就碎的店。我们一条条看它错在哪。
人是有状态的
线程跑完一个任务,栈清空,干净得像没来过。人不是。一个厨师连站六小时,他的手会抖、火候会飘、脾气会上来;一个服务员被投诉三次,第四桌他还没走过去,语气已经带刺了。
这是 有状态——同一个人,此刻的产能和出错率,取决于他之前经历了什么、累积了多少。而且这个状态随时间漂移:早上的他和打烊前的他,不是同一个"worker"。你没法像重启进程一样把他清空重来。
人会离开
线程不会"辞职"。人会。而且当一个干了三年的老员工走人,他带走的不只是一双手——他带走了写不进任何手册的东西:哪桌客人爱催、哪个灶脾气怪、周五晚上该提前备多少料。
这就是我们在第 12 章说的隐性知识,而它的流失有个名字:人员流失——员工离开,连人带脑子里的隐性知识一起离开。你招个新人补上头数,产能表上是补齐了,实际服务率要掉好几周。
人会补位、会临场发挥
写死的流程只会执行它被写的那一条路径。碰上没预案的情况——停电了、客人过敏、两桌同时催菜还打起来了——SOP 一片空白。这时候能兜底的,恰恰是人:老服务员一个眼神就知道该先安抚谁,主厨临时改个做法把危机化解掉。
异常情况下,人是系统里唯一会"随机应变"的部件。把人彻底流程化、变成只会照单执行的机器,等于亲手拆掉了系统抗意外的那层保险。
人有学习曲线
加一个线程,算力立刻加满。加一个新员工,头一个月他是负产能——不光自己慢,还得占用老手的时间去带。新手≠熟手,产能不是"插上就满血",是要爬坡的。这条爬坡的曲线,调度模型里根本没有它的位置。
排班是资源调度,但调度的是会累的资源
排班,本质上是 资源调度——决定哪些人、在哪个时段、站哪个工位。这确实是个调度问题。但被调度的资源会累,这一点改变了一切。
回想第 6 章的利用率陷阱:把一台机器长期压在 100% 利用率,队列会爆炸。人比机器还糟——你把一个人的"CPU"长期拉到满,短期看产出很高,接着会发生一串连锁反应:
连轴转 → 状态恶化 → 出错率上升 → 返工、投诉变多 → 更累、更烦 → 最后直接离职。
这就像把一颗 CPU 超频拉满、还不给散热,长期不降温,迟早烧了。烧掉一个熟手的代价,是隐性知识的流失 + 新人从头爬学习曲线,远比你从他身上多榨的那点工时贵。人也不能长期满负荷,道理和机器一样,只是账单来得更狠。
老带新:系统真正的"复制"机制
第 12 章我们卡在一个难题上:隐性知识写不进 SOP,那分店怎么办?答案其实一直在店里——知识传递,就是把写不进手册的隐性知识,从老手的脑子搬进新手的脑子。
老带新、师徒制,看着像是"多养一个还没上手的人"的浪费,实际上它是系统唯一能用的复制手段。SOP 复制的是显性知识,师徒制复制的是隐性知识。而且它还顺手做了另一件事:把关键知识做了冗余备份——老师傅走了,徒弟还在,知识没跟着一起走。
说人话:师徒制 = 给你的"活文档"做多副本。别把知识只存在一个人脑子里,那是单点故障。
士气:那个没写进任何流程的隐藏参数
系统里有一个变量,任何一张流程图上都找不到它,任何一份 SOP 都没定义它,但它悄悄决定着每一个工位的服务率和出错率。这就是 士气——团队愿不愿意好好干活的那股劲头。
士气高的时候,同样的流程、同样的人,出菜更快、错更少、遇事有人主动补位。士气崩了,流程一个字没改,整台机器就是转不动了:能推的活绝不多推一下,能不管的异常一律不管。
再完美的流程,也跑不过一支不想跑的团队。士气是隐藏参数,你不去调它,它就会自己往下漂。
反直觉的核心:榨得最干的店,最脆
现在到了本章最反直觉、也最重要的一句:把人优化到极致的餐厅,是最脆弱的餐厅。
什么叫"优化到极致"?人人满负荷、零闲置、一个萝卜一个坑、排班表上没有一格空白。从纯效率视角看,这简直是完美——没有一分钟工时被浪费。
然后现实来敲门:一个人临时请假,没人能顶,那个工位直接空了;一波客人比预期早到半小时,队列瞬间雪崩,因为系统里没有任何余力去吸收这点意外。零冗余的系统,扛不住任何偏离剧本的事——而现实永远在偏离剧本。
这里要请出压轴的词:冗余——故意留出用不满的余力、多备的后备,专门用来吸收意外。留一个能救火的机动人手、排班时给高峰留点缓冲、不把每个人排到 100%——这些在效率表上都记成"浪费",但它们恰恰是系统能在真实世界里活下来的原因。
冗余和"闲一点"不是浪费,是韧性。松弛(slack)是有价值的。
说人话:一个从不留余量的系统,效率满分,稳定性零分。现实里第一个意外就能掀翻它。留白不是懒,是保险。
一个诚实的收束
所以,什么是好系统?好系统不是把人榨干的系统,是让人能持续、体面地把活干好的系统。
这不是情怀,是工程结论。一个把人当耗材烧的店,会不断掉熟手、丢隐性知识、士气触底、遇到意外就崩——它在系统意义上就是不稳定的。人的可持续,才是整个系统的可持续。人不是系统里可替换的线程,人是系统里的一等公民。
讲到这儿,我们把龙餐馆的四大块都拆完了:工位(怎么干活)、队列(活怎么排)、钱(怎么算账)、人(谁在干活、怎么让他们持续干好)。四块看似各说各的。但退一步——为什么它们背后的道理,越看越像同一条?下一章,我们把这条藏在所有章节底下的规律,正面拎出来。