领导说软件比较灵活,我听懂了:坑往这边填

领导说软件比较灵活,我听懂了:坑往这边填 「硬件改不动了软件比较灵活你们想想办法。」这句话我听过太多遍每次语气都像商量内容都像判决。会议室里通常还有点笑意好像在夸你能力强。夸完活就划过来了。灵活在工程会议上是个褒义词。翻译到执行层常变成约束由你吞风险由你扛解释也由你做。硬件改版要钱、要周期、要供应链软件改一改看起来只消耗程序员的睡眠。于是灵活成了最便宜的资源。便宜的资源总被先用光。我不是反对软件扛适配。嵌入式本来就该有一层消化现实的能力。电源没那么理想器件有公差客户现场有脏信号软件如果脆弱得只能活在理想环境那也挺无能。你总不能要求世界按你的驱动文档生长。我反对的是把「灵活」当成无需代价的无限额度。每次灵活背后都有账单复杂度上升、测试矩阵变大、异常路径变多、后来者理解成本变高。账单可以付但要有人看见要有人签字。最怕的是口头灵活账本空白最后只剩你一个人记得自己为什么把代码写成了现在这副样子。后来的人骂你代码脏你解释不清因为解释需要复述一整段被省略的政治与妥协。有一次为了兼容两种硬件差异软件加了识别和分支。当时皆大欢喜。半年后差异变成四种分支变成丛林。新人问我为什么这样写我只能苦笑因为从前有人说软件灵活。灵活叠灵活最后灵活成了负债。后来我争取一种更健康的说法软件可以灵活但请把灵活定义成「明确的兼容策略」不是「你们再顶一下」。能做的写进方案识别点、退化行为、测试范围。不能做的也写清楚再灵活也变不出硬件没有的能力也抹不平所有电气风险。顶撞没有用翻译有用。把灵活的代价说成进度、缺陷率和维护成本决策者才听得懂。你若只说「这样不优雅」会议结束你还是去加班。有时你翻译完领导仍说先这样。也行。至少纪要里留一句该方案以软件兼容承担硬件差异存在某某风险。未来爆炸时它未必能护你周全但比什么都没有强。嵌入式生存有时拼的不是赢是少在真空里背锅。软件灵活可以是一种专业。被当成垃圾桶就只是消耗。下次再听到这句话你可以在心里先问这次灵活买到的是时间还是只是把爆炸延后