原本想合并两套自动化,最后却重新拆开了销售与员工行政
✨ GPT-5.6 Sol 的总结
记录我如何在保留既有销售与短信业务的同时,思考一套还能扩展到呼入应答和员工行政的运营自动化架构。
已经有两套系统在运行
公司内部已经有两套朝不同方向发展起来的自动化系统。
其中一套是前任开发者先做好的短信年假管理系统。它会计算每位员工的年假,发送年假使用提醒短信,再解析短信回复中的申请,一直处理到批准或驳回。Web、backend、DB 和 Android 工作手机已经串成了一个完整流程。
另一套是我一直在打磨的公开数据收集与销售自动化。它收集设施和联系方式,再接入 Vox 的外呼,把数据真正转成销售活动。
起初我以为,把两个项目搬到同一个仓库就算完成了整合。但一想到之后还要加入的功能,就发现简单地合并文件夹远远不够。
- 与现有外呼衔接的呼入应答
- 接收员工请求并转交行政业务的流程
- 自动生成并交付在职证明的功能
- 按员工、合同和现场信息划分权限的功能
- 在一处查看失败、批准、重试和审计记录的运营界面
从那时起,问题从“怎样合并两份代码”变成了“今后不断增加的业务应该分别放在哪里”。
我决定不丢掉既有系统
看到那套短信年假系统时,我很想重新做一遍。里面既有陈旧的结构,也有临时设置,还有很多地方让我想按现在的标准重新设计。只抽出需求再搬到新代码里,看起来会更干净。
但越是逐项查看资料,我越发现那套系统里装着比代码更重要的东西。
- 实际呈现给员工的年假结果
- 按入职日期计算年假的方式
- 需要发送使用提醒的对象与时点
- 把短信申请解释为日期与半天假的规则
- 申请、批准、驳回和结果短信的顺序
- Android 工作手机收发短信的方式
- 运营人员已经在使用的界面和异常处理
如果把这些压缩成几页文档再从头开发,即使新代码更干净,原有用户得到的结果也可能变掉。我不能只凭自己的设计偏好,抹掉前任开发者真正做完并投入使用的纵向流程。
于是我改变了方向:先完整复现既有服务,把界面和计算结果留下作为回归基准,再按功能逐步替换有问题的部分。新系统不能靠删掉旧系统起步,而要在不丢失原有能力的前提下,把它纳入更大的架构。
销售与员工行政不是同一个应用
即使把项目放进同一个仓库,如果连 DB 和 Runtime 也全部合为一体,又会出现新的问题。
销售自动化处理公开数据、联系方式、呼叫对象和销售结果。员工行政处理员工信息、文件签发、年假、审批和消息。两者可以出现在同一个运营界面里,但数据性质、权限和故障影响范围都不同。
我不想让销售 DB 的 migration 卡住员工行政的部署,也不想因为年假服务故障,连销售数据收集都一起停摆。账号与 credential、queue、backup 和 rollback 同样需要按业务拆分。
最后我决定保留一个仓库,但把销售和员工行政拆成独立应用。运营界面可以让人从一处进入两个应用,却不直接读取 DB;每个 backend 分别对自己的数据和权限负责。
即使表面上是一个统一的运营界面,内部也没有必要变成一个庞大的单体服务。
从外呼扩展到呼入与行政业务
既有的销售自动化更接近主动向外打电话的外呼流程。15 日那天,我也花了很长时间思考该怎样把呼入接进来。
电话打进来,并不意味着所有请求都必须在通话系统内部处理。通话可以只是接收请求并转交给合适业务的入口。收到在职证明申请后,要把它交给身份确认与文件签发业务;签发后的文件还要走单独的交付流程。即使同一请求来自 Web 或移动端,最后也应该汇入同一个行政业务。
决定从在职证明开始,原因也在这里。它是第一个能一次检验请求受理、员工主数据确认、文件生成、审批、交付、失败处理与审计全套运营自动化流程的功能。
目标不只是做好一个功能,还要让之后加入的其他员工行政业务能够复用同样的边界。
不能重新制造一份主数据
公司已经在另一个系统里管理员工、合同和现场分配。自动化确实需要这些信息,但如果我们再做一份员工管理主账,两套系统的数据很快就会不一致。
外部系统应该继续拥有主数据,我们这边只读取所需资料,并保留经过验证的 snapshot。修改主账的能力,必须和利用这些信息处理行政事件的能力分开。
问题在于,我当时还没确认实际下载文件的格式,也没有找到稳定的员工标识符。如果把界面上看到的编号擅自称为工号,或者连下载功能都没检查就写成 Excel,后续设计就会全部建立在虚假前提上。
所以不知道的部分就继续留作未决定。那天既是做出许多答案的一天,也是为了不装作知道未知信息而反复修改措辞的一天。
整合不是合并文件夹
15 日那天我几乎没写代码,而是不断梳理项目名称、应用边界、数据所有权、既有服务的迁移顺序,以及运营界面的职责。
我想找到一种方法:既尊重前任开发者做好的系统,又不把它永远冻结;既不把我做的销售自动化锁死在当前结构里,又能让它从现有的 Vox 外呼扩展到呼入,再延伸到员工行政与文件自动化。
把两个项目放进同一个文件夹很容易。真正困难的是决定要保留什么、拆开什么,又从哪里开始扩展。15 日是我开始把两套不同的自动化重新看作一个运营架构的那一天。
留下评论