@Wahson
2019-05-07T01:25:11.000000Z
字数 2463
阅读 649
业务的坑
采购自身的坑
(老模型,老流程复杂性图表说明,流程长且多,重复、不一致问题)
俗话说的好,没有一设计出来就是完美的模型。好的模型不一定是一开始就能够设计出来,是必须经历过,踩过坑,然后从坑里面爬出来的过程中,逐步形成经验总结,最终梳理出来相对满足实际业务需求。 -- 鲁迅
2018年,将近1年的时间里,采购的业务流程经过不断的上线、调整、上线、调整......已经基本打磨成型,下图基本已经涵盖了采购线90%(异常流程并没有在途中展现)的业务流程。
采购系统在Today中台的各个系统里应该是最复杂的,从上面的图可以对采购系统总结出2个词:多
、长
。采购系统包括了门店的进货、退货、转货,仓库的进货、退货和转货业务,门店进货和退货根据不同的配送方式还分成直纳、寄库、经由等进货方式,每个方式又包含下单、审核、接单、发货、收货等流程。不同的流程有相似的地方,又有各自特殊的处理。
此外,图中也仅仅展示了正常的流程,加上异常流程,将会复杂得多。
先看看老模型的状态图:
修正单状态
在我们老的模型里面,我们拆分了采购单和配送单,相应的它们有各自的单据流转。当初设计时考虑的时候一个单有多次配送的情况,但是后来实践证明,实际业务上并没有这种情况,属于过度设计了。而且这两个单据其实是有很多重合的地方。另外从采购单上看,状态待发货->待仓库验收->仓库验收
,以及待发货->待门店验收->门店已验收
在宏观上看是可以合并起来的: 待发货->待验收->已验收
。
财务模型:数量,变化时间,价格,所有者
这里流程图我在原来的基础上做了一些简化,把一些相似的状态做了合并。说到这里,我们在识别系统状态的过程中,很容易会掉进一个陷阱:设定过多的相似的状态。比方说,在采购订单最初的状态里面,我们设定了有仓库关单、已关单2个状态,其实明眼人应该已经能够感觉到他们是非常相似的2个状态,但是为什么要这样设计呢?
两个主要原因:1. 逻辑处理方便,2. 查询显示方便。
似乎这样设计也无可厚非。但是,从设计的角度,状态集就杂了,增加了对外沟通解释的成本,另外考虑以后需求变化,增加了供应商关单的功能,那么整个模型是否意味着得增加一个状态,久而久之,状态越来越大。在我们的核心模型状态里面,我们希望是相对稳定的。