没有规则的手工修改就是即兴发挥

没有规则就手工修改生产排程的计划员,是在即兴发挥。问题不在修改本身,而在缺失的规则。本文展示有规则支撑的手工修改长什么样,以及排程工具必须做什么才能让它安全。

下午两点,计划员手工挪动作业。多年来他们一直这样做:把一个产品挪到另一个前面,因为客户来了电话,因为卡车晚点,因为车间说灌装机在周末之前需要处理。这花掉生产排程里的九十秒。工厂里没有其他人知道这件事发生过,不知道原因,也不知道它有没有用。

这个九十秒的修改正是本文的主题。不是因为手工修改是错的。它们常常完全正确,任何说反了的话都是误解了这份工作。问题在于围绕它们的沉默。没有规则的修改是一次性行为。下一位计划员接手一份他们无法完全解释的生产排程,而工厂永远无法查明这次修改是不是好的决定,因为没有人写下当时的理由。

手工修改不是敌人

计划员掌握着生产排程所没有的信息。一辆还没到的供应商卡车。一位客户叫停了本周不会接收的货物。一台车间说即将出问题、尽管工作日历显示它可用的设备。在一项对排程员实际工作的观察性研究中,来自外部的请求触发了排程员所做的大部分事情,而他们花在向组织其他部分转达信息上的时间,比花在做出排程决策上的还多。计划员是协调中枢。当他们伸手进入生产排程挪动一项作业时,通常是在编码某个模型从未见过的东西。

这就是为什么把计划员当作障碍的排程工具,其设计本身就是错的。人的判断是真实的、针对具体工厂的,而且不会消失。关于运筹学与 AI 排程技术在实践中的应用为何有限的研究,正指向这个差距:这些技术建模的是一个干净的问题,而人类排程员处理的是那个凌乱的问题。手工修改往往是正确答案。

不受治理的手工修改的两种失败模式

危险的不是手工修改,而是它周围没有规则。这种缺失产生两种失败模式:一种对生产排程动得太急,另一种动得太静。

第一种是反射性修改的工厂。计划员怀疑工具,出于习惯把作业挪来挪去,把算法的生产排程当作总是需要修补的草稿。人机自动化研究给这种对系统信任不足的模式起了名字。在受控研究中,人们看到算法出错后就避开它,即使算法比他们自己更准确。触发点是那个看得见的错误,而不是总体记录。

还有一面镜子式的失败,一份值得拥有的规则同样约束它:那种因为系统这么说、就毫不质疑地接受工具答案的计划员。过度信任与信任不足都会抹掉计划员的判断;只有规则能让任何一个方向受到约束。

第二种失败模式是没有人记录的修改。修改做完了,当天得救了,理由却蒸发掉了。这种看起来无害,却是两者中更具腐蚀性的。没有人能重建出生产排程为何长成现在这个样子。做了那次修改的人已经无从问起,因为他们换了班次或换了工厂。挪动一项作业的换线后果,对下一位计划员不可见,因为生产排程只显示最终结果。而工厂也无法学习,因为没有记录说明试过什么、在时间上付出了什么代价。

排程文献已经解决了由此引出的问题,至少对软件触发的变更是这样。重排程研究区分策略与规则:规则就是决定何时触碰生产排程的那个准则。经典选项是周期式,即按固定节奏重建生产排程;事件驱动式,即一个明确的干扰触发重建;以及混合式,即两者的组合。要点在于,「何时触碰生产排程」被当作一个提前做出的决定,而不是当下即兴的东西。本文只是把同样的纪律延伸到人手所做的修改。

「有规则支撑」在实践中意味着什么

有规则支撑的手工修改,是在一页纸上回答三个问题的修改。

何时允许手工修改? 工厂列出它的触发器。未到的物料交货。客户的叫停。一台停摆的设备。这些触发器可以借用重排程的形态:一条事件驱动式规则(「只有当交货晚点时,才允许手工更改顺序」)或一条混合式规则(「我们每周五重新优化,只在周内手工修改」)。重要的是工厂提前决定,哪些干扰值得为它们触碰生产排程。

谁可以进行修改? 工厂列出角色。答案可以是一份简短的清单:计划员、计划员不在时的班组长、以及负责跨越班次边界变更的工厂经理。写下这份清单的目的不是建立一套审批官僚体系。计划员的一天已经满是来自外部的请求;把每一次变更都送签的规则,会把协调这个角色磨到停摆。清单的存在,是为了让一次修改可以归因于一个有资格进行它的角色。

记录什么? 这里是工具体现价值的地方。当计划员修改生产排程时,工具应当让修改可见且有边界:只有计划员更改的那些行被触及,与当初构建时相同的校验也运行在这次修改上,并且生产排程被打上标记,让任何打开它的人都知道是人工调整了它,而不是算法产出了它。工具记录了什么变了。规则记录为什么——用工厂自己的语言,紧挨着计划员本已知道的理由。

这件事还有一个发生在修改之前而非之后的版本。带 Semi-Auto 模式的排程工具,让工厂固定生产顺序,并让软件在该固定顺序内优化设备分配。那就是一条提前定下的规则:工厂决定规则,软件在规则之内执行。手工修改是当下时刻的例外,而恰恰是这种情形,成文的规则最重要。

换线的涟漪

这就是记录重要的运营原因。一台设备在切换产品时花的时间,取决于哪个产品跑在哪个产品前面。换线时间是依赖顺序的:把一项作业挪到另一项前面,会改变两侧边界处的换线时间,而这些变化会涟漪般波及生产排程的其余部分。关于带准备时间的排程问题的综述文献如此庞大,恰恰因为这一效应是真实的。

挪动一项作业的计划员知道直接原因,但换线的涟漪可能远远延伸到他们编辑的那一行之外。有规则支撑的手工修改会考虑这一点,因为它是在知情的情况下做出的——顺序可见——也因为理由被记录了下来,效果以后可以受到质疑。未被记录的修改无法被质疑。做出它的人也许有一个好理由;工厂却永远无法把这个理由与这次修改实际花掉的时间放在天平上权衡。

从英雄式救场到一种习惯

成熟的工厂不禁止手工修改。它治理它们。一条成文的规则写明何时允许修改、谁可以进行。工具让修改可见且有边界,记录什么变了并把生产排程标记为人工调整过。工厂写下为什么。三件事,没有一件是官僚主义,合在一起,它们把计划员的英雄式救场变成一种可重复、可审计的习惯。

手工修改从来不是问题。缺失的规则才是。排程工具的职责,是让有规则支撑的修改变得容易、让不受治理的修改变得可见。工厂的职责,是写下规则。两边都简单。难的是纪律,而纪律从下一个九十秒的修改开始。

准备好优化您的生产排程了吗?

免费试用 Schantt——无需信用卡。60 分钟内从电子表格迈向优化后的甘特图。

免费试用 Schantt