项目赶上线,最后那几天,谁脑子里没闪过“干脆糊弄一下”的念头?配置审核卡脖子。行,直接拷份现成的参数顶上去。版本库非要统一管?太麻烦,干脆劈成几个“独立”分支,各干各的。文档?回头补。流程催命?先上线再说。当下是不是特爽?团队里保不齐还有人递烟夸你:“哥,够灵活,懂变通。”爽完呢?熬过三四个月,回头一看。好家伙。同一个坑能踩出八种花样。维护系统跟走钢丝似的。新人看代码,挠头挠得掉渣。老代码?谁碰谁半夜惊醒。这时候才拍大腿:早干嘛去了?这哪是手滑。这分明是连人带车,一头扎进反模式的深坑里了。
前阵子翻《软件配置管理中的模式与反模式》,作者扒得真够狠。核心就一句大实话。反模式真不是大伙儿不懂规矩。全是被短期压力逼出来的理智算计。你说它咋就这么流行?别扯什么水平不行。局部那一亩三分地,看着就是最划算。划算得让人没法拒绝。
局部看着挺美。全局咋就崩盘了?道理其实特简单。反模式这玩意儿,专治眼前的烂摊子。把烂账打包,全扔给未来。配置管理里有个坑。我见过太多团队往里跳,还不带眨眼的。拿手动覆盖,硬顶基线管理。线上突然报警。开发运维第一反应是什么?改配置。重启服务。血止住了。当月考核也保住了。可毛病全在这儿。动刀没留痕。影响面也没盘算。下次同样的故障再来,上回改过啥?早忘干净了。接着手动覆盖。转悠个三五圈。环境配置搅成粥。稍微动根头发丝。雪崩就来了。书里写得明白。真不是团队没纪律。交付节奏和考核指标,在暗地里给“快速止血”发红包。给“老老实实记录”扣帽子。短期要活命。长期要健康。这账要是算不明白。反模式自然生根发芽。
这套路跑出了代码库。落到日常干活,照样扎眼。办公室最常见的画面是啥?一个人累得眼皮打架,就是不敢停下手里的活儿理理头绪。不是事儿真多到没法弄。是心里门儿清。一旦停下来搞规范,交付准得延期。延期那口子,立马就得有人兜底。怎么办?拿临时方案堵漏洞。拿口头承诺,顶替白纸黑字。短平快的时候,确实潇洒。拉长看呢?工作流脆得跟宣纸似的。稍微换个人。或者改个需求。直接给你整不会了。说句实在话。这种临时抱佛脚的活儿,干的时候挺爽。回头收拾残局,真想把自己键盘砸了。反模式为啥这么抗造?死死掐住你想“立刻见成效”的痒处。顺便,把“往后算账”的痛感,直接屏蔽了。
话是这么说。但这套逻辑,也不是万能钥匙。有人觉得流程严点总没错。真当紧箍咒念,自己反倒钻牛角尖。项目刚起步。资源紧巴巴。急着去市场探路。这时候,一套严丝合缝的配置管理流程,能把你活活拖死。我觉着,这时候的“不规范”,拿试错成本换时间,未必是坏事。关键看系统卡在哪个阶段。反馈周期有多长?等团队人多了。系统盘根错节。或者产品进了平稳运营期。当初用来“跑通流程”的那股灵活劲儿,转头就成绊脚石。反模式到底划在哪条线?全卡在“系统容量”和“反馈延迟”这两个数上。局部优化顶破承重。或者该付的代价一直往后拖。合理的变通,也就顺理成章,滑进反模式的泥坑。
底牌亮清了。反模式不是十恶不赦的错。就是被短期压力裹挟的妥协。可光认出来没用。真改起来才真要命。作者在这书里念叨不少次。光靠“严禁”或者“骂醒”,根本拦不住。压力还在。反模式换个皮,照样卷土重来。真想根除这毛病,得把反馈周期掐短。让“往后算账”的痛,提前到账。比如,把配置变更的审核门槛,降到跟手动改差不多。不规范操作的风险,立马浮出水面。或者在流程里,把“留痕”和“验证”缝进日常动作。别让它变成额外背的包袱。等守规矩的阻力,小于耍滑头的收益。好模式,自己就长出来了。
咱们总惯性以为。拖垮项目的,全是明晃晃的漏洞,或者谁故意使坏。其实真要命的,是那些看着聪明、合理,甚至被领导点头鼓励的招数。温水煮青蛙似的。一点点把系统的韧性抽干。折腾半天识别反模式,图的不是搞什么绝对控制。就是认个死理儿。所有躲着摩擦走的捷径,早晚得在别处,连本带利地还。下次在项目里,又摸着那条“最合理”的捷径想踩油门。先琢磨琢磨。这笔账,到底打算让谁掏腰包?