全球市值最高的企业软件公司,为什么都搞不定供应链计划?SAP这家全球市值最高的企业软件公司,拥有数以万计的工程师,服务着全球超过四分之三的财富500强企业,却在Gartner的供应链计划软件的魔力象限上,长期徘徊在领导者区域之外。SAP 也不是没有努力,从APO到IBP,从本地部署到云端重构。SAP投入了巨大的资源,为了不让计划员回到Excel时代,它甚至把数据处理的页面做的和Excel一样灵活,却始终没有搞定供应链计划这个领域。在企业信息化的历史中,绝大多数系统都是为了回答同一个问题而生的:"发生了什么?"订单下了没有?库存还剩多少?发票开了吗?它们的使命是忠实地捕捉、存储和检索业务事实。SAP在这个领域无与伦比,它的数据模型之完整、事务处理之严谨、审计追踪之精确,是几十年工程积累的结果。而计划系统要回答的却是另一个问题:“在不确定性的环境下,我们应该如何行动?”它处理的不是已经发生的事实,而是尚未发生的需求、尚未兑现的供应、尚未锁定的产能,以及多个业务目标之间的权衡。大多数APS项目的困境,都可以追溯到同样一个根源,用设计记录型系统的思维,去设计一套决策支持体系。项目团队带着ERP时代积累的方法论进场:需求调研,画流程图,定义主数据,规划数据字典。这套方法指向了错误的方向。
理解这个区别,是理解APS系统设计所有关键问题的起点。
很多算法科学家的团队在设计APS的时候想的是,我们在建一个求解器。给定订单、资源、产能和原料约束,算法算出最优排程,计划员执行。
在一家半导体制造商的项目中,团队根据决策层级和时间维度识别出27个不同的计划决策点,同时又发现了一个事实:这27个决策点之间,存在大量的循环依赖。没有S&OP的分配决策,排程就缺乏边界;没有主计划,采购无从承诺;没有采购承诺,执行计划无法被锁定。
更根本的问题在于不确定性。优化系统求解的是一个静态问题的最优解,但制造现场是一个持续变化的动态系统。当算法在T₀时刻找到"最优排程"时,这个排程是基于T₀时刻的状态假设的。而当计划开始执行时,现实已经发生了变化。优化的精度越高,对输入假设的依赖就越强,当假设失效时,"最优解"的崩溃就越彻底。
当你把APS定位为求解器时,你的核心设计工作是选择算法、定义目标函数、约束条件、去建立数学模型。当你把APS定位为决策结构时,你的核心设计工作是识别决策依赖关系、定义层级边界、设计人机协作机制。在动手设计任何系统功能之前,先把组织中真实存在的决策结构画出来。
不是流程图,不是组织架构图,不是需求清单。而是一张回答以下问题的结构图:谁在做什么决策,这个决策依赖什么输入,产生什么输出,输出如何约束下一个决策,整个链条如何形成一个自洽的体系。
我们并不是要放弃优化模型,优化是决策系统工具箱中的一个强大工具,但不是决策系统本身。系统生成了"最优计划",计划员修改了它;系统重新计算,计划员再次修改;最终,计划员干脆绕过系统,回到电子表格。系统的优化能力越强,这种对抗有时反而越激烈。为什么一个在数学上无懈可击的优化模型,在现实制造环境中会如此频繁地失效?因为任何数学模型都是现实的抽象,必然存在简化。现实制造环境并不是确定性的,加工时间服从概率分布,需求预测存在误差,设备故障是泊松过程,供应商交货时间有波动。还有大量在现实制造中存在、却极难被完整建模的约束。所以系统设计的目标,不应该是消除优化模型与现实之间的GAP,而应该是建立一套能够持续识别、度量和吸收这个GAP的机制。就拿对于制造过程中的随机性为例,系统设计的正确回应是:用频繁的重新计划来追踪现实变化,而不是用更复杂的模型来预测现实变化。有些GAP还是需要人来吸收。解决这个问题的关键的在于人机协作的界面的设计,系统需要把抽象的约束关系,转化为人类可以用直觉操作的空间关系。当人的直觉判断与系统的约束计算在这个界面上实时交互时,人机协作才真正发生,不是人服从系统,也不是系统服从人,而是两种能力在同一个决策时刻互相增强。GAP的存在,意味着系统生成的计划与实际执行结果之间必然存在偏差。但这个偏差,究竟是模型的问题,还是执行的问题?为了区分这两类偏差,我们需要引入干预无关绩效(IIP)和干预相关绩效(IDP)这两个概念。IIP是系统在没有人工干预情况下的计划质量,它度量的是优化模型本身的准确性。如果IIP很低,说明模型存在系统性偏差,需要校准。
IDP是经过人工干预后的实际执行结果,它度量的是整个人机协作系统的绩效。如果IDP显著高于IIP,说明人的干预在弥补模型的不足;如果IDP与IIP接近,说明人的干预价值有限,或者模型已经足够准确。
这个双轨测量体系,在系统设计层面产生了一个关键机制:通过持续比较IIP和IDP,系统能够识别人工干预的模式,去推断模型的盲区。
在所有APS设计问题中,有一个最少被讨论、却影响最深远的问题:目标函数是谁的价值观在说话?每一个优化模型都需要一个目标函数:最小化延误?最大化利用率?最小化库存成本?这些选择听起来是技术决定,但它们本质上是价值判断。当这个价值判断被编码进算法后,它就变成了一种隐性的、不可见的决策权力,在系统每次运行时默默地影响着组织的每一个计划决策。在一家制造商的案例中,APS系统的目标函数被设定为"最大化设备利用率",这在系统上线时看来是合理的,因为公司正处于产能紧张期。然而两年后,市场环境变化,公司战略转向"快速响应客户需求"。但没有人修改目标函数。系统继续忠实地最大化利用率,持续生成对单个设备高效、对整体响应速度致命的计划。计划员们逐渐形成了一个习惯:先让系统跑一遍,然后手工推翻系统的大部分建议。当优化的目标与组织的真实意图发生偏离时,系统不会停止工作,它会继续高效地执行一个错误的方向。算法的效率,在这种情况下不是资产,而是负债,它加速了错误方向上的资源投入。在系统设计上,目标函数不应该被埋在代码里,而应该是一个业务决策者可以看见、理解和讨论的对象。不同的业务阶段需要不同的优化重心,产能紧张期优化利用率,旺季优化交货期,新品导入期优化质量和学习速度。这种动态性需要被作为一个设计需求来对待,系统需要内置目标配置的工作流,包括谁有权修改目标、修改需要经过什么审批、历史目标配置如何被追踪。在所有APS系统设计的缺陷中,有一个最隐蔽、代价最高、也最少被讨论的问题:系统是开环的。
它有输入,有计算,有输出。计划被生成,被执行,然后……什么都没发生。系统不知道计划是否被执行,不知道执行偏差在哪里,不知道模型的参数是否还准确。它在下一个计划周期里,使用的仍然是上一个周期的参数,生成的仍然是基于同样假设的计划。随着业务不断的变化,时间的推移,参数与现实的偏差单向累积,直到计划员完全不信任系统,重新回到电子表格。
这种失效模式极其常见,却很少被正确诊断。团队通常把原因归结为"用户培训不够"或者"组织变革管理不到位"。但真实的原因是:系统从设计阶段就没有被设计成一个闭环系统。
反馈回路不是系统上线后可以"后期添加"的报表功能,而是要回答的是一个更深层的问题:"系统预测发生了什么,与实际发生了什么,差距在哪里,为什么?"
每一次计划员修改系统推荐的计划,都包含了一条关于现实的信息:这条信息,系统不知道,但计划员知道。
如果我们能够系统性地捕捉这些修改行为,分析其模式,就能够逐渐理解"计划员知道而系统不知道的事情",这正是模型盲区的直接映射。
APS上线,是一个系统开始学习的起点,而不是一个项目完成的终点。反馈回路的设计质量,决定了这个学习过程能走多远。
设计一个APS系统,你不是在选择技术或者算法,你是在为组织的决策能力建立基础设施。
这个基础设施是否坚固,在系统上线的第一天你看不出来。但三年后,你会非常清楚地看见,当初那些被跳过的问题,是以什么样的方式,成为了今天无法解释的困境。来源 | 闻道-供应链思维