见过一次挺典型的扯皮:订单在网站上下完了,库存系统里的数没动,仓库照旧按老库存发货,超卖的一单赔了三倍运费。追责追到建站公司,对方说库存归你们内部系统管;追到软件公司,对方说网站的订单归建站方管。两边说的都有道理,问题正出在——开工前没人把“数据归谁管”这句话说死。开会的时候人人点头,落到方案里一个字都没有,这种事我见过不止一回。
一旦要对接内部系统,技术活儿反倒排在后头,先把几笔账在桌面上算清。订单算谁的:网站下的单,进不进内部系统的流水,以哪边为准。库存算谁的:谁扣减、谁回补,两边同时改一条记录听谁的。客户资料算谁的:网上注册的人,进不进你们的老客户库,撞上了算一条还是两条。账号算谁的:员工用一套密码还是两套,人走了在哪边停权。别笑,最后一问最常被忽略,离职员工的账号还挂在对接系统里,是很多公司查了半年才查出来的隐患。这几笔账,每笔都值得单独开一次短会。
对接的方式也得先定。要实时,订单一落库库存立刻减,开发量大但账目干净;可以接受延迟的,定时同步一次,省事但要写清楚隔多久,频率落在合同附件里,别只是口头约定;量小的甚至人工导入,一个月几十单的小生意,犯不上为此大动干戈。方式没有高下,跟业务量匹配就是好方式。拿不准的,先按小的来跑,跑顺了再升级,比一上来就上重方案稳当。
这笔账里每一条,都得落到一个“唯一”上:一条数据,只能有一个主人,另一个只能做副本。副本定期对账,对不上的时候有据可查。两边都想当家,接口写得再漂亮也会打架。同步的方向、冲突了听谁的、同步断了怎么补,这三件事写进方案,对接才立得住。账目立起来,人就不慌。
另有一层容易被忽略:数据的责任边界,得跟两边的合同对上。接口是谁开发、谁维护、出了错算谁的,别指望开工后靠互相客气解决。我们做对接项目,方案定稿前一定拉两边的技术坐到一张桌子上,把每张表、每个字段过一遍,谁写谁读谁负责,当场记下来签字。签字这一步别省,白纸黑字在,日后谁的记性都不算数。麻烦是麻烦了半天,省下的是往后无数个扯皮的电话。
系统对接这个事,外人看是技术活,做过的人都知道是规则活。网站开发谈对接的那天,先别问怎么连,先把数据的主从关系理清楚。理清了,连法自然就有了。先理账,后写代码,次序颠倒了,代码写得越多,坑挖得越深。