曾经的仓库,主要作用是存储,货物在仓库内的周转速度并不快。随着地价越来越贵,租金连年升高,之前同样面积的仓库不得不变得更高(货架)、更快(周转)、更强(管理),所以现代的仓库在于运动。
仓库容量大了、品种多了、周转快了,要保证账实相符就不那么容易,稍不留意就会形成混乱的局面,造成重大的损失。
在一个进出频繁的仓库,很多不同的岗位都会对货物的数量变化产生影响。
比如叉车司机会整托整托地进出货物、仓管员(拣货员)会对零散货物进行拣选、搬运工会进行装卸堆码操作、质量控制员会抽检或隔离(释放)产品……
他们的日常工作都跟货物打交道,若是没有界定清楚各自的职责,就会相互影响及至发现数量短少时相互推卸。
应明确划分各个岗位对库存精确性的职责。
比如搬运工只允许在装卸区域作业,发生破损或发现数量不足时不准私自进入仓库搬几箱货补上,必须通过现场管理人员记录后安排;仓管员对自己拣选的货物负责,每一件进出都要求记录在案;叉车司机对整托货物负责,完成每个库位的进出后都要做到及时登记……
对于仓库进出和移动货物的所有操作,应做一次完整的梳理,清晰了解每一次货物的移动用什么方式来及时记录,是手写单据、货位卡、仓库管理系统还是扫描枪或其他工具,如果梳理过程中发现有缺失或不有漏洞的地方,才能想办法补上,而不会在最后发现有大的差异时,找不到某个中间环节的记录,最终没办法解决。
一边操作、一边还要记录,难保在某些时候会有疏忽,或者产生意外,这就需要我们建立检查纠错的机制,而且这种事后的机制不能跨度太久,一定要快速高频,才能及时发现问题,找到原因。
比如每个操作人员在交接班前要完成自己作业过的库位、品种相关的数量核查、现场管理员要每天做一次盘点(至少高货值的品种)、仓库主管要定期进行抽盘,对比系统数与现场实物数、手工记录数是否一致。
账、物、卡三者一致本来是仓库管理的基本要求,但现代仓库储量越来越大、品种越来越多、周转越来越快的背景下,必须做到这三点,才能管理有序,保证库存精确性,不至于造成损失。
仓库容量大了、品种多了、周转快了,要保证遵守仓库管理的基本原则就不那么容易,比如最重要的一条“先进先出”原则。
对于收货方来说,你总不希望一直收到的货都是一个月内的,某天突然发现收到的货竟然是半年前的吧?尤其是快速消费品,说不定都快过期了。但对于仓库管理方来说,“先入库的要先出库”可不仅仅是一句口号那么简单。
通常的仓库管理标准操作规程(SOP)中都会包含FIFO的要求,但往往不够突出重点,也不提及检查机制和违反处理措施。
应该要对操作的人员(叉车司机、仓管员等)清晰地传达标准要求,可以通过现场标识、看板、检查清单、交接班会议等办法来不断强调并保证FIFO的执行。
完全依靠人去执行制度,总是会存在漏洞的,最好有系统来控制。
在拣货、发货操作时,系统自动指派旧批次的库位;在出库扫码时,吧枪自动提醒此SKU是否为最旧批次;任何不按FIFO操作的记录都会被禁止或者当作异常数据来处理,才能防止人为的疏忽或偷懒。
以前的库位设计很多属于更多考虑存储,较少顾及多批次、少批量操作的需求,现在仓库要“运动”起来了,之前的库位(尤其是驶入式货架)就开始拖后腿(同一巷道中多批次时只能“后进先出”,如下图,单批次时又可能造成存储空间的浪费)。
仓库管理发展至今,越来越多的仓储设施能够辅助解决运动起来的问题,其中横梁式货架、重力式货架、两头分别进出的穿梭式货架等都有助于做到FIFO的要求。
以重力式货架为例,货架入库的一头高,出库的一头低,通过重力的作用使每一托货滑动到出库的巷口,整个巷道的货物自然就是先进先出的排列了。
先进先出原本是仓库管理的基本要求,但在现代仓库发货要求的批次变多、批量变少、周转变快的背景下,要考虑从标准、系统和设施方面多管齐下,才能保证守住仓储管理原则,不至于变得混乱、造成损失。
仓库运动快了,有没有发现经常会有卡顿现象?就是操作过程中突然某个环节不得不停下来了,因为与之相关的其他环节条件不具备。
比方说,叉车要把整托货叉进车厢,但里面的搬运工还在码上一托货,于是叉车等在货车后面一直到搬运工码好才叉进去;又比如搬运工码了几托货,要下一托货上车继续堆码时,发现叉车跑到别的车旁边叉货去了,只能等叉车叉完别的车又过来补货……
一旦发现卡顿现象,说明运动不畅影响效率了;经常发现卡顿现象,则有可能资源配置不合理了。
首先要了解整个运作过程中需要哪些资源,比方说要有仓管员将货从仓库中拣选出来、要有叉车司机把拣选好的货叉到车上、要有搬运工站在货车上堆码;
其次要测算资源的理论效率,根据行走路线、行驶距离、码货速度等算出分拣、叉车、搬运的效率;
最后要计算运作的资源数量,把待作业的货量除以各资源的效率,再加入一些经验值(比如工人要喝水、上厕所、叉车换电池等时间),就能算出来需要几个仓管员、几个叉车工、多少搬运工了。
算出了作业的资源需求量,只能说明这些资源是能够完成总的作业量的,但还是有可能产生卡顿,即要加班加点才能做完,特别是几种资源各自为战的情况下。
以计算机处理数据的例子来形象说明。
如下图,数据处理之前,必须要先读取出来,如果按方式一,每次处理之前要停下来等下一批数据读取到,时间就很长;
如果按方式二,数据1处理的过程中系统已经在读取数据2,即每一批数据要处理之前都已经在上一批数据处理的过程中读取出来了,用的时间就很短。
反观我们仓库的运作,如果每个岗位只关注自己的作业完成,像下图一样,方式一下仓管员在30分钟内拣完了3单货;叉车司机也在45分钟内完成了这3单的叉货;
而搬运工要将这3单全部码完,花了近60分钟,对于整个仓库资源来讲,差不多要一个小时才能完成,因为仓管员在15分钟内有一半时间去干别的活了,从30分钟时再开始拣第二单货;
而叉车司机在叉完订单1的货时,等不到订单2的货,又去跑到别的仓库去了……
于是越是后面的环节,越容易卡顿,把时间拉长。
方式二就把作业时序考虑得很清楚,每个环节都紧密衔接下一个环节,比如搬运工在码订单1的货时,叉车司机已经在备订单2的货了,而仓管员正在分拣订单3的货,所以整套作业下来,没有卡顿时间,不到45分钟就完成了。
作业资源数量算够,时序排清,还不够,因为作业仍由不同的工种分别完成,只要衔接上不够紧凑,依然会有少量卡顿的。非红分享一种团队配合的模式,就是将作业所需的各种资源分组,而不是单独作业。
譬如前面算出来一天的仓库资源需求是6个仓管员、6台叉车、12个搬运工,那么把他们分成6组,每组1个仓管员、1个叉车工、2个搬运工,每一组同时处理的订单就不会太多而造成混乱,人少亦容易沟通,按前面提到的作业时序方式,相互配合、互相提醒,就很容易达到时序方式二的整体效率。
仓库在于运动,运动过程中老是出现卡顿,动作就不会流畅,影响整体成绩,甚至容易受伤、影响士气。要计算资源到不多也不少,排好作业时序,建立整体配合的作业方式,才能打出一套连贯的动作,发挥最大的效率。
仓库运动快了,频率高了,发生货物损耗的概率也相对提高。损耗控制(防损)已经在仓库管理中占据越来越重要的地位。
首先要让仓库人员集体讨论,梳理仓库管理的流程,从入库到出库整个过程中,哪些点有可能产生损耗,将这些点列出作为损耗点的集合(正常应该有几十个点);
其次要统计历史数据,根据损耗原因进行分类,看每个损耗点分别发生过多少损耗值;
最后要确定出第一步的每一个损耗点占整个仓库损耗的百分比,因为第二步历史数据的记录往往没有那么明细(通常只备注几个大类如存储不当原因、搬运原因、系统原因等…),需要仓库人员根据手工统计或经验分摊到几十个损耗点上。
算出了每个损耗点的损耗值和百分比,我们需要明确作为防损的标准,应该控制在什么样的损耗范围。仓库零损耗是过于理想的标准,不如制定相对合理的目标,逐步改善。
非红这里指的防损标准有两个,一是目标值,二是防损的操作标准,总体看就是为了控制在目标损耗值以内,我们应如何规范仓库的操作标准。
第一点目标值的比例不建议直接用历史损耗,比如之前一个财务周期的数据中,叉车行驶过程中摔货这个损耗点占整个仓库损耗(假如说是10万元)的2%,但我们梳理出来也不能认为2%(2000块钱)就是我们应该的水平,而要讨论为什么行驶过程中会摔货?
如果是因为叉车司机没有遵守行驶规则,如超速行驶、急转弯、急刹车、不看路口状况、货物超高挡住视线没有倒行等,那作为仓库管理的正常要求,这些都不应该发生,发生了不但是货物难以保证,安全都有很大隐患!因此这个损耗点的目标值不应该设2%,估计0.5%就够了(500元)。
最好转换成钱(2000块、500块这种),让一线操作人员记得损耗是多少钱,比单纯记住2%、0.5%这种数字容易而且有效得多。
第二点操作标准,就是要依据梳理出来的损耗点发生的原因,完善现有的操作步骤。
比如之前从未有关于叉车行驶的明确规定,只是笼统的在SOP中要求叉车匀速行驶,那现在为了将损耗值从2000降到500,必须写得更清楚(时速多少、转弯及路口应先观察哪几个方面、货物超高倒行的方法、会车时如何操作…)并且重新培训操作人员,务必让他们知道损耗如何控制,控制在多少之内,怎么考核他们。
并不是让操作人员明确要控制的损耗目标值、接受培训明白如何防损,损耗就会自然降到目标以下的,必须要将操作的损耗情况如实记录并入账。
有些管理不规范的地方会存在某些潜规则,比如发生损耗少报、瞒报、或者盯着目标值来入账(发生了700,实际只入500,留着200放到下个财务周期找机会入账)……
这些行为都会影响及时查找造成损耗原因、进而采取有效措施来减少后续的发生。
必须有关于准确入账的规定,所有的损耗按照原因归类在财务进行报损报废,原因归类比较笼统时在备注中写明具体的损耗点,方便下一轮梳理并降低整个仓库管理过程的损耗。要有检查、监督、考核机制,发现不按规定入账的行为要及时处理、打击。
仓库在于运动,运动过程不可能不出现损耗。有损耗并不可怕,可怕的是不知道发生在哪里、发生了多少、有多少体现在账上、分别是什么原因、怎么降下来。
只有梳理出损耗点、设立目标值、完整入账并定期回顾,才能将损耗控制在目标范围内。
通常产品在生产下线后,有或长或短的一段留验期给某些出结果比较慢的检验指标用,当发现不合格时起码货还在仓库里,能够方便重新检验及处理。但是仓库运动快了,频率高了,不该发出的货被发走的概率也相对提高。
首先要有清晰的产品隔离流程,流程中必须明确相关岗位职责、隔离的操作要求、检查标准。
职责中重点得提到谁去做产品隔离,比如从流程上来看,最早发现产品可能有问题的是质量管理部门,那么第一时间在仓库管理系统中将产品做系统隔离(状态修改成‘不可发’或“冻结”)的应该是质量部门,然后邮件紧接着电话告诉物流部门把这批产品进行物理隔离。
这条特别适用于产品下线时默认系统状态为合格品的情况。
物流隔离最好能有专门一个隔离区,物流部门就按质量部门通知把有风险的产品全部移到隔离区等待质量部门处理。
但仓库中往往不容易固定一个区域隔离产品,特别是隔离批量不确定时,有时量少浪费隔离区域,量大时又放不下,所以通常的做法还是在原库位中,用隔离桩、隔离带(或链条)、加贴隔离单的形式让现场人员能把应该隔离的产品与正常产品分区开,在系统隔离的基础上增加物理上的锁定。
以上这张图除了产品上张贴了隔离单以外,整托产品还加了个托盘锁,万一隔离单掉了,叉车的叉齿也插不进托盘,就更加保险。
设施有了,流程明确了,培训到位后就看执行。要保证落实到位,一个词——“即时”。
质量部门要即时在系统中冻结库位,因为仓库周转快的品种哪怕按先进先出的原则执行,也很可能马上就要发到这批货物了,不立即冻结货就被发出去,又得召回;
质量部门除了邮件正式通知外,还要电话通知物流人员做物理隔离,因为现场出库可能不一定有条件参照实时的系统数据。
比如条件限制不得不先将当天要发货的库位全部打印成纸质的订单,让叉车司机按单出库,出完库统一在系统过账,难保不会出现系统隔离了的产品,发完货在过账时才知道打印的库位当前状态是冻结的,又要把车上的货卸下来。
物流部门按照隔离流程做好物理隔离后,也要即时通知质量部门进行下一步检测和处理,减少库位占用。
隔离信息的共享很关键,因为电话通知只能知会到个别人,邮件也只能让大家有零散的印象,时间长了类似邮件多了,零散的信息会变得凌乱,所以最好要用一个共享隔离信息的平台。
最简易的其实一张电子表格共享在公共盘上就行了,质量部门有修改的权限,其他部门只能阅读,但里面有每一批产品的开始隔离时间、所在库位、隔离原因、处理进度、已完成的有解除隔离时间等信息,以供物流部门有效安排库位和发货。
仓库周转变快了,不再像以前一样,隔不隔离都无所谓,因为货物移动慢,几周后才发现问题的话货都还呆在仓库中。现在的仓库要防止将不合格的货物发给客户,必须有明确的隔离流程,操作时做到及时隔离,并且隔离信息有充分共享的机制。
仓库变得更大了,运动快了,频率高了,要保证库存的精确性变得不容易,除了做好日常收发的实时登记,还要用盘点来检查。
不少仓库的盘点都是仓库内部的人员来完成,这对于每日、每周的盘点操作倒没有太大问题,毕竟运作需要,而且管理仓库的人员最熟悉货物和库位,盘点效率最高。
但作为重要管理机制的月度盘点,不能只安排仓库人员(比如库管员)自己去盘点并提供盘点结果,那样通常会让盘点结果都显示为100%的准确,因为哪怕仓管员非常负责任,也会有“熟视无睹”的风险;万一仓管员职业操守有问题,问题就更大了。
月度盘点小组应该由财务和物流部门联合组成,并且规定各自的职责分工。
较好的方法是每个小组由三名人员组成,盘点人A是仓库内部人员,盘点人B是其他仓库或者其他部门的人员,监盘人C由财务人员担任,A和B到每个库位前独立盘点并记录,C监督A和B严格按照标准流程进行盘点。
很多系统自带的盘点表看上去便于盘点实物数量,但却很容易隐藏运作的问题。
比如以下盘点表,每个品种的货物在系统中的数量都已经打印出来了,盘点只是去确认跟系统数的差异,就容易忽略一些关键信息。
特别是每个品种还有不同版本时,例如你看到现场库位有10件,系统中也是10件,那就在盘点表上直接写10件或打勾了,但很有可能其中3件是长得很像的其他品种(或同一品种的不同版本如促销版)。
具备检查机制的方法应该是盲盘,即打印的盘点表中,不要显示系统库存数量,如果现场库存产品有SKU的编码(货卡上),那么盘点中连产品名称也不显示,只是把盘点库位列出来,由盘点小组按列表一个库位一个库位去盘点,核对产品编码是否一致(有可能放错库位)、对库位内的货物进行点数(让盘点人没有办法去“找够”系统数),把实际盘点数量统计出来,然后对比两个盘点人的盘点结果,如果结果不一致,监盘人C要监督盘点人A和B去现场把有差异的库位再进行复盘,最终确定唯一的一个实盘结果(纠正其中一人的盘点错误)。
最后,现场盘点的结果再拿去跟系统数进行比对,这时又能发现一些差异,重复以上的复盘操作,如果不是两个盘点人同时盘错,那就能找到某些运作问题了。
盘点不是以99%或者99.9%的结果来结束的,而是以1%或0.1%的盘点差异进行深入的。
任何差异都有原因,要查找并明确原因,有些原因是可以容忍的,比如计量工具的精确性限制;有些是必须要解决的,比如货发走了却没有及时过账导致实物与系统不符,这属于流程执行的问题,要改善。
还有很多其他运作问题导致的差异,都要一一产生行动,进行改善,才能确保库存精确度越来越高。
总结一下,盘点成员互相制约、盲盘暴露问题、差异产生行动,才能发现问题、提高运作,让存货在快速运转的仓库中也能保持高水平的库存精确性。
仓库在于运动,但是仓库的运动量往往不能保证具有平缓的规律性,而更可能一天内有比较明显的波峰波谷,甚至是反差非常剧烈的月初休息、月底冲量。
站在物流的角度,你不可以说因为仓库做不到,或者说成本很高,所以得让销售/客户下单一定要均衡,这种想法在竞争愈发激烈的买方市场更难实现,反而是让仓库先做到满足当前的不同作业量,得到销售/客户的认可,再去谈以后的均衡需求会更有话语权一些。
不少仓库的前瞻性做得不够,经常出现某些时间段,突然集中大量的装卸劳务工作,以至于已安排的资源、人手不足;经常在正常的作业时间中出现某些时段,几乎没有装卸劳务的需求,以至于安排的资源、人手大量空闲;在旺季或者冲量的日子里,容易出现因装卸劳务作业太集中而造成现场混乱、不能按照计划完成任务的情况。
这就要求仓库必须想办法拿到尽可能准确的、分时段作业量的预测,至少提前一天,用于安排第二天的作业资源。
预测拿到后,也不能当作圣旨来执行,不断地对比、回顾,才能提高预测的准确性。
前一步拿到的预测,在未经优化之前常常是波动很大的,完全按照这个需求去执行,可能会造成比较多的资源浪费、人员疲累。
例如下图就是反映了原始的预测,早上八九点希望来装车的客户最多,如果都按这个需求来安排人员和叉车,少了装不完,多了在10点后又有一半闲置。凌晨也一样,有些客户担心早上装车来不及送到,要求半夜就装,虽然量不大,但得单独安排一个夜班的资源给他们,作业量不饱和还很累。
因此需要把原始的需求进行优化调整,比如不按8-9点最高峰的需求来安排,而是结合整个上午的作业量,大概设置中间值就够了;
夜班不安排,但可以早两个小时开工,从6点就把作业资源安排进来,整天的作业量在调整后相对均衡时,劳动效率往往是有序高效的,现场也就不会混乱危险了。
把一天内的各时段作业量拉平,能让装卸资源的效果在每个时段发挥到最大,但是如果一个月之内波峰波谷也会很大时,怎么破?
除了拿到分日的作业量预测外,我们同时还要具备装运能力变化的弹性。
比如外包工数量安排,月初只要排白天一个班发货就够了,月中可以两个班,月底得安排早中晚三个班;再比如储位安排,月初入库多发货少,尽量将货叠放高些增加储能(譬如4层货架),而月底入库少发货多,入库的货物就没有必要再上高架,增加出入库运行的时间了,可以将货叠放矮些以提高周转效率(譬如4层货架中放下面2层)。
还有很多方法,总之要让仓库的作业量变得更具柔性化。
仓库不再是一个静态的房子,而要当成一个充满活力的车间,输入的是物流资源、作业流程,输出的是可发的货物、完成的订单。
只有用一种动态的眼光来看待仓库管理时,仓库才不是供应链的瓶颈,而是一个大马力的引擎——仓库在于运动!