去年接手一个生鲜类工厂的ERP项目,作为协助开发人员,主要负责一些文档的编写和非核心功能开发,以及部分运维工作。最近有些时间,便回顾下项目到现在遇见的一些问题和情况:
简单说一下项目信息:核心的业务就是车间加工和库房管理。但涉及多端平板和手机端模块,以及地牛、电子称等硬件设备的交互。项目预期希望达到两个目的:把控库存准确和标准化流程管理。开发团队则由一个项目经理,一个核心开发人员,算上我加上一个实习生,一共四人组成。团队结构相对简单,但缺少专门做需求和测试的相关人员。而项目进度上,根据上线情况我划分为三阶段,分别是集中开发、实施上线和系统运维。每个阶段都会面临一些不同的问题:
第一阶段是集中开发期,大概为期三个月左右,主要任务就是沟通需求和实现基础功能。客户那边并没有熟悉需求或者具有系统概念的人员,但客户那边已经有一套相对成熟的系统正在运行。只是不能工厂实际的线下流程,不过很多功能和需求都是可以借鉴的。另外,由于这个项目的系统架构几乎全新搭建并不完善,很多功能和组件都没有,需要花费些时间在这些基础工作上。因此,此阶段主要目的就是能达到可替换现行的这套系统,实现业务基础功能就可以。在这期间主要存在的问题就是:
1、团队的磨合,每个人都有些开发经验,但每个人的开发习惯和代码规范上都不尽相同,常常因此而闹些小矛盾。在需求的理解上,各自根据自己的经验也存在些许分歧,彼此难以说服彼此。
2、分工不明,人员不多,沟通起来理应较为方便,但是很多时候却往往忽略了沟通。而且正因为人少,很多任务没有进行细化、评估和分析,导致到真正开发的时候才发现很多东西原先都没有考虑到,而往往容易导致既有的安排无法正常完成。
第二阶段是推动项目上线替换旧系统阶段。客户是外地客户,预期是一个月左右的时间。可是,最后却差不多整整经历了四个月,最终还是因为客户现行系统已经无法运行下去了,才仓促上线。其原因,我觉得有四个方面:
1、客户比较强势且预期过大。客户强势导致关于项目进度和规划方面被客户牵着走,最后不得不在一些功能和流程上不断地跟客户妥协和示好。而却又使客户预期过大,结果就是往往会因为客户的一句话,就得加班加点的进行修改,把我们的开发人员都搞得很疲惫。
2、我们缺少专门的需求人员,导致我们开发直接对接需求。容易产生四个不好的影响:
2.1、 占用大量的开发时间,经常导致开发任务无法正常完成。
2.2、没有人来过滤客户的需求,无法判断那个需求紧急和优先,导致不能合理的安排相关任务。
2.3、无法深入了解需求和设计功能,掌握需求的核心点,导致模块返工的概率大。
2.4、没人专门负责和客户对接需求,导致需求对接反复混乱,无法准确获知客户的真正需求。
3、没有测试人员,导致线上出现问题概率大。且开发人员测试并不充分,很多情况场景没有考虑到。容易造成在更新前测试没有问题,更新后客户一用就出现问题,给客户造成不好印象。
4、客户是外地客户,实施阶段需要驻场就得长期在外地,一开始还好。但是时间久了后,大家都容易出现抵触心理。且在客户现场办公条件恶劣,几乎没有休息,没有周末,晚上有事就传唤。好不容易休息下,客户就得拼命给我们找事情做,不做好像都觉得欠着他们是的,相当疲惫。
第三阶段就是项目收尾阶段。尽量优化线上流程和解决系统中存在的问题,然后有问题处理问题。之前曾有人跟我说:ERP项目很难落地。在这段实施过程中,逐渐明白了其原因。就我目前面对的客户情况来讲,现在我也几乎失去了真正落地的信心,项目可预见的会烂尾结局:
1、流程涉及的部门较多,各部门之间的分工存在交集,就容易使各部门之间互相推卸责任。存在一个人做多项工作的情况,比如:库管人员兼顾着做采购人员的采购单的补录和确认等相关工作,而采购人员也兼顾着采购收货等情况。
2、流程标准化后,相关的人力并没有减下来。相反由于流程标准化后,各个环节的分工开始明细化,反而会增加相关的人力成本。比如:配送的时候三点发现有问题,原先可能四点就能快速处理完了。但是系统流程标准化后,八点都不一定能处理完。因为工作系统细化后,人员线下的工作没有细化,就涉及很大的沟通成本。
3、流程单据没人跟踪,无人负责,导致很多单据都挂在系统上。只能每隔一段时间,盘库或者领导发现了临时起意看一下,就导致下面的员工加班加点的处理单据。
4、基础信息没有统一标准维护,比如:商品、供应商、客户等基础信息。都是采购员和业务员根据自己的需要自行新建,客户方也曾安排有人统一负责新建,也建立过相关的规范。但是到了具体实施后,他们缺乏中层的调度,导致他们的一线的人员都只专注于自己的工作。一旦卡住,有些人的任务就难于继续做下去,最后还是只能放开让他们新建。导致商品有建重复的,或者是同一个商品而名字不一样,客户名称更是自己的随意新建,供应商没有过滤导致街上的小店小面全录了进系统等等问题。
5、公司发展过快,企业本身的流程管理也无法稳定。从项目实施到现在,企业合并其他公司一次,库房扩建搬迁两次,新增大业务两次。每一次变动,对于系统都是很伤的。系统还无法稳定运行起来,就继续进行大幅度的调整和改动,就会直接导致系统存在更大的不确定性。
6、相关的中层管理不具备相应的能力,人员流动性大。在工厂的人员流程本身就很大,但在客户哪里明显感觉已经超出了正常的范围内。企业从初创到现在时间并不久,但是从项目开始和客户接触到现在,客户那边至少换了两拨人。不同的人即便他们负责同一件事,对于工作和流程的要求也不尽相同。为了推项目上线,几乎每一次都为他们进行调整,导致最后很多开发任务非常的被动。
对于ERP系统来说,我有个同事是将其定位引导企业进行标准化的管理。期望在关键的环节上,通过一些非常方式,阻止流程往下走,从而引导用户规范化工作。但我始终不认同这一点,这个项目更加验证了我的观点。我始终是认为这类的管理信息系统就只是一个辅助系统,而企业的管理本身就是由企业的本身根据自身的需要进行调整,不是由系统所能主导的。系统所能提供就是将线下的工作搬到线上来,方便用户工作和管理。而对于系统最重要的两个核心功能,我认为就是基础数据和单据的录入和维护,以及报表分析功能:
1、基础数据和单据,操作这一块就是直接操作系统数据流转。这是系统的最为基础的功能,是系统正常运行的前提和保证,为报表和系统管理提供数据的来源。
2、报表是系统数据的直观体现,间接的反映了工厂和员工的工作情况。为管理层的决策提供了数据上的支撑。但其价值也是依赖于相关单据和基础数据的维护,取决于数据的可信度。
至于流程,我则认为应该灵活多变的,必须要考虑一定的兼容性和变化性,不能因为线上的情况而影响到线下工厂的实际运作。且在实际的运行中,线下的情况是无法预测的,线上不能保证一定会没有问题。事实上,随着企业的发展,企业的规模、人员的流程、业务发展等等原因也会导致线下流程都会适时的变化。但显然线上经不起这样的折腾,且企业本身对系统的成本也无法支撑得住。因此,我对于流程得定位就是一个工作的范畴,是一个工作框架,用来划定相关角色的工作职责和责任的边界。绝不能依赖流程来作为管理的手段,用来规范员工工作的一种衡量,否则,我觉得只会适得其反。