尹军琪:关于WMS的开发与应用

作者:尹军琪 2022-11-08 15:03
[导读]

01WMS概述关于物流仓储系统软件,首先想到的是WMS(仓库管理系统)。追溯历史,WMS系统的起源大致在20世纪80年代初,即计算机技术尤其是数据库技术开始应用的时代。但真正形成商业化应用则要到90年代中以后,这时的数据库技术已经开始应用到微型计算机,再往后就是随着90年代末计算机网络技术的发展,WMS迎来了蓬勃发展的时期。各种商用的WMS系统开始应用,WMS的作用被广泛认可。最开始的时期,WMS系统的基本功能就是管理仓库内部作业,包括入库、组盘、货位管理、拣选管理、发货管理、盘点管理、退货管理

01

WMS概述

关于物流仓储系统软件,首先想到的是WMS(仓库管理系统)。追溯历史,WMS系统的起源大致在20世纪80年代初,即计算机技术尤其是数据库技术开始应用的时代。但真正形成商业化应用则要到90年代中以后,这时的数据库技术已经开始应用到微型计算机,再往后就是随着90年代末计算机网络技术的发展,WMS迎来了蓬勃发展的时期。各种商用的WMS系统开始应用,WMS的作用被广泛认可。

最开始的时期,WMS系统的基本功能就是管理仓库内部作业,包括入库、组盘、货位管理、拣选管理、发货管理、盘点管理、退货管理等。很多传统仓库的计算机管理系统其实就是一个进销存管理系统,功能比较单一,且局限于技术,仓库的账实往往是不同步的。另一方面,早期的WMS往往是以一个记账软件出现,由于没有网络支持,系统是以单机版本的形式出现的。

随着自动化仓库的应用,仓库管理变得复杂起来。尤其是库存策略、账实同步变得十分重要。这给WMS注入了新的需求。到了本世纪初,随着RF手持终端的逐步应用,仓库管理水平前进了一大步,WMS也进入了一个新的发展时期。

电子商务的普及不仅推动了零售业的变革,也极大的推动了WMS的发展。一是海量订单的处理,对WMS服务器端提出了更高的要求;二是WMS系统要求与其他系统前后端系统紧密连接,并实时同步,如TMS系统,订单管理系统,配送管理系统等;三是大量的拆零作业,使得拣选作业变得空前重要,各种策略、方法、技术,极大的丰富了WMS的功能;四是各种自动化设备的应用,尤其是新型物流设备的出现,增加了WMS与自动化系统的接口的难度。所有这些,极大的丰富了WMS的功能,也吸引力众多的专业人才进入到这一个五彩斑斓的世界,大大促进了WMS本身的发展。

毫无疑问,WMS作为自动化和智能化物流系统的核心软件系统,扮演了举足轻重和不可或缺的角色。并且随着时间的推移,其重要性将更加凸显。与此相适应的是,以WMS软件为核心业务的企业,也如雨后春笋般涌现,极大的促进了我国物流行业的发展。

02

WMS软件开发的一般要求


很多初学者对WMS软件开发充满兴趣,但却缺乏严谨的态度和丰富的实践经验。因此,很多软件虽然被开发出来,却因为缺乏常识和稳定性,使得软件本身没有任何价值。

WMS系统不同于一般的办公软件或其他应用软件,其中最重要的一点是现场条件是复杂且随时随地变化的,而软件与现场条件紧密关联,形成一种动态的关系。我曾经有机会指导一些大学生进行WMS软件开发,但最终的结果却并不如人意,尽管在课堂上反复讲解软件的基本流程和功能要求,但学生们真的无法体会实际的要求。他们总是在用一种静态的思维方式去理解一个动态的过程,结果当然是可想而知的。

对于软件开发,一些显而易见的要求,如多用户的并发性要求,对“事务”的理解和处理,死锁问题,版本管理问题等,如果不能很好理解的话,所开发出来的软件基本是不能用的。而对实际环境来说,组盘问题(情况非常复杂);货位分配问题(很多人无法理解自动化仓库的货位分配要求);波次问题(什么是波次?如何组建波次?为什么要组建波次?对很多人来说也是难点);拣选策略(尤其是拆零拣选策略,组箱问题)等。这些问题如果不去现场体验的话,根本无法开发出符合要求的软件。学生们之所以不能理解,其根本原因是他们没有现场体验,他们不知道为什么要这么做,以及如何做好。

WMS理论上不是一个独立的系统,它往往要求与上游的ERP系统(或订单管理系统)和下游的TMS系统,以及各种自动化系统(如WCS系统等)进行实时连接。这就需要规范它们之间的通讯协议。但事情往往非常复杂。如在早期的SAP系统中,通讯协议就非常复杂。仅业务流程就有100多个,每一个标准流程都会对应一个通讯协议,既有正常工作的流程,也有退货、冲红等流程,这就要求自身对业务非常熟悉,才有可能理解这些流程。否则,即使勉强开发出相应的软件,也是不能适应实际的要求的。

WMS软件面对的是一个动态的多用户的用户环境,这就要求其实时性非常强。以自动化立体库为例,当一个托盘被拣选时,事实上它的物流位置会随时变化,有可能在货位上,也有可能在拣选位置,还有可能在途中,如果这时又有一个新的拣选指令要对这个托盘进行拣选,那么面临的问题就比较复杂。很多WMS对此束手无策。类似的问题,在WMS系统中是常见的。

WMS系统要求软件的定义是非常准确的,绝不能出现二义性。每次操作的结果只能有两个,是或者不是。不能有中间结果。有一个问题或许被软件的开发者所忽视,就是效率问题,比如一项作业指令一旦发出,撤销就会变得非常困难。或许需要花费很大的代价才能完成一次撤销操作。比如一项正常的冲红操作,这时仅仅是如何设计处理流程,就是一个令人头痛的问题。有时,操作者可能会发生一些错误的操作,而这项操作可能是灾难性的,这就需要软件的开发者有相应的应急处理能力。比如对自动化立体库而言,一次涉及到数百个托盘的错误的指令一旦发出,其后果就非常严重。如何体会这些现场问题,对软件开发者带来困难和挑战。

此外,开发WMS软件首先要对业务和操作流程有准确的理解,关于这一点,很多工程师深有体会。但对于一个没有实际经验的同学来说,的确是有些困难的。

03

WMS软件开发的难点

WMS开发的难点,总体来说,因人而异,因工具而已。

所谓因人而异,就是对不同经验和能力的人来说,其难点是不一样的。前文说过,WMS面对的是一个千变万化的现场需求,它与一个游戏软件或一个办公软件的最大不同是不能以我为主,而是应以实际需求为主。即软件的功能要符合实际作业的要求,而非事先闭门造车般的假设(当然,合理的假设也是必要的)。对一个纯软件工程师来说,这是相当困难的。但不幸的是,很多软件工程师并不具备现场经验,那些对他们来说可有可无的细节,正是软件需求的重点。很多软件工程师不甚明白流程的含义,但这恰恰是WMS的关键之处。另一方面,很多对流程非常熟悉的工程师,其软件驾驭能力又非常缺乏。这就导致很多WMS软件,要么不切实际,不知所云;要么就是架构太差,功能单一,不能满足实际的需求,且不具备柔韧性,不能体现WMS的精髓。

那么,什么是WMS软件的精髓呢?我认为标准化、可定制化、可复制性是其中比较关键的几个指标。一套WMS软件,它既是被动的,也是主动的。其被动之处在于要满足实际的需求,不能闭门造车;其主动的一面则是流程的合理性和标准化,现场作业需求尽管千变万化,但要符合一定的规范和原理,且是有规律可循的,可定义的。可定制是针对具体需求而言的,如果软件系统不可定制,那就会因为太死板而失去活力。但如果软件失去规范性,则将失去生命力,这就是我们经常看到的一些定制化软件,它只能满足单一客户的需求,甚至不可修改的原因。所谓可复制性更是强调标准化和可定制化的重要性,是软件最具有价值的地方。一套成熟的WMS软件,往往是经过无数案例的实践,从而抽象出共性的东西,使系统在面对新的应用场景时变得容易复制。可复制性对于降低软件开发成本、缩短开发周期也是至关重要的。

选择不同的开发平台(工具),软件的开发难度会完全不同。关于这一点,可能每个软件开发者都有切身体会。每个平台都有其优点和缺点,这是一个比较难以取舍的问题。面对不同环节的不同需求,实践表明,多平台化往往是一个合理的选择。

数据库的选择也会影响开发的难度。一般来说,oracle数据库是首选,但操作相对困难,Microsoft SQL server也是不错的选择,但存在有一些客户不接受的情况。其他数据库选择相对较少。比较困难的是,一套WMS软件很难做到兼容不同的数据库系统。有些WMS声称可以兼容不同的数据库,其实是完全不同的两个版本。

随着计算机技术的不断深化,软件开发的难度在降低。这是指平台的功能在变强。比如要实现一套表格的制作,完全可以实现客户的定制化。但另一方面,随着物流仓储系统变得越来越复杂,WMS的难度实际上在增加。比如多仓系统就是这样,每一个仓库的储存方式不同,作业流程不同,自动化设备不同,对WMS的要求自然就不同。这对于WMS的开发者来说,是一个很大的挑战。

04

自研还是采购


关于自研还是采购第三方软件的问题,看法常常存在分歧。但也都有其道理。我们从安全性、经济性与可维护性三个方面进行简要分析。

安全性:很多用户担忧采用第三方软件,会存在安全性问题。但到底是什么内容,也说不出什么道理。无非是怕自身的数据安全泄露,或企业受制于人。其实,数据安全随时存在,并非采用第三方软件才显示出来。如果自身的管理不完善的话,采用自研的方式,其数据安全反而会成为大问题。另一方面,是软件本身的安全性问题。自研软件由于缺乏经验(即使聘请专业的团队也是如此),软件往往显得不成熟,隐性BUG很多,且不易排除。而第三方软件则不同,其软件本身的成熟度高,相对来说安全性也高。由于缺乏实践的机会,自研失败(包括延长开发时间)的例子实际上是很多的。

经济性:有人认为第三方软件太贵了。有时的确如此。尤其是国外的软件,在10多年前显得尤为严重,很多企业为此交了不少学费。但现在国产软件替代进口软件已经成为大趋势,其经济性应该已经得到了充分体现。自研的成本其实是很高的。很多公司会有这样的错觉,觉得自研会比较便宜,找几个人,花费一年时间就研制出来了。但他忽视了一点,即专业的软件工程师本身就不便宜,如果薪资不到位,不仅找不到合适的团队,而且即使找到了,也很难维持稳定。另一方面,软件需要维护,这是一个更高的成本。如果要自己组织一个5~10人的团队的话,每年的成本不会低于200~300万,这个成本事实上要远高于第三方的成本,而且还面临人员离职的风险。第三方软件由于存在软件可复制性,通过摊销使开发成本大大降低。而最大的好处是,没有人员离职的风险,从而保障后续软件的售后服务。

可维护性:软件需要经常维护和升级。第三方软件因为成熟度高,维护升级工作通常都会很少,但面对技术变革,升级也不可避免。但即使如此,可维护性是可以得到保障的。自身团队则不同,由于定制化程度高,可能某几段软件只掌握在某一个人手中,人员一旦离职,其软件的维护将陷入被动,这样的例子不少。其实,有时候把软件掌握在自己手里,看起来是一件很稳妥的事情,但在很多情况下,这反而是一件风险最大的事情。在社会分工越来越细化的今天,建立企业间的互利合作,远比依靠自己来得简单和可靠。

从实际应用看,采用三方软件应该还是主流,绝大多数企业没有自身的IT团队能够胜任自研的需求,是原因之一。自研软件并非不可以,但预期将要付出更大的代价。这就好比建房子,如果自己有经验建,从软材料采购,到工程质量监督,肯定是又便宜质量又好。但不可忽视的是,如果自身并不专业,其结果是整个项目在推进中会丢三落四,甚至需要反复返工,质量问题总得不到解决。从稍微长一点的实践看,自建的代价远高于聘请专业的团队。当然,寻找专业的团队也并非一件容易的事情,有些专业的团队实际上也不专业。

当然,我们也要看到,自研软件也并非完全不可行。如果企业本身就有相应的团队,而自身业务的特殊性又不支持采用三方软件,自研仍然是一条可选择的道路。尤其是企业本身有大量的项目应用,自己足见团队进行开发,未尝不是一种合理的选择。但即使如此,聘请专业的和有经验的工程师仍然是必不可少的。

05

未来的发展方向


未来的世界是软件的世界,软件定义世界是大势所趋。物流软件也是如此。软件所扮演的角色将越来越重要。

物流技术的发展方向是智能化、数字化和网络化,AI将对物流技术的发展产生革命性影响。所有这一切,均取决于软件的能力。正因为如此,物流软件的发展将突破过去以定制为主的模式,向专业化、标准化、产品化的方向发展。

专业化:未来软件会走向两个极端:一方面是分工越来越细,专业化越来越强。第三方的软件将成为主流。另一方面,基于平台软件的二次开发和应用将会变得更加容易和普遍,基本上可以做到人人都会定制化。这种所谓的定制化是堆积木形式的,简单的。用户更多的是完成定制化部分,而平台软件将只能由第三方完成。具体到WMS系统,首先,流程将会更加标准化,产品包装则趋向于单元化。其次,平台软件会建立在行业的基础之上,如制造业、流通业、电子商务等,或者更加细化;如制造业中,有机械制造、食品加工、烟草加工、医药制造、酒类生产等,以便更加贴近行业的特殊需求。但不可否定,平台软件的标准化需要一个比较长的时间。

标准化:软件的标准化一直没有受到行业的重视。标准化的重要方向是接口的标准化、流程标准化和封装的标准化。软件封装后,其功能定义将变得单一,可以实现更大范围的任意调用。当然,由于WMS软件本身的复杂性,短期内要做到标准化并非易事,但如果从流程标准化做起,以始为终,却也并非不可实现。

产品化:需要定制化的软件将会越来越少,或者说其比重将越来越低。随着更多实际应用被抽象到系统中来,软件的适应性将会大大加强。从另一个角度看,则是企业的共性将越来越多,个性会越来越少。这一方面是技术的成熟使然,另一方面,则是企业的见识不断提升。很多固守自己做法的企业,并非有其自身独特的价值需要维护,而是一种惯性,一种无知,因为其对外部世界缺乏基本的了解。只有那些具有特殊工艺要求的项目,定制化必不可少。


部分图片来源于网络

【声明】物流文视界网转载本文目的在于传递信息,并不代表赞同其观点或对真实性负责,物流文视界倡导尊重与保护知识产权。如发现文章存在版权问题,烦请联系小编邮箱:wuliuwenshijie@163.com,我们将及时进行处理。