






审批流程系统的开发, 要说起来, 表面上看着是挺简单的, 然而在实际情况当中存在的坑, 其实比你心里所想象的还要多得多。
我从事软件开发工作已经长达8年时间了, 这期间先后经手过二十来个审批系统的项目。对于此事而言, 我最大的感受就是一句话——并不是说写代码本身存在着多么难以解决的困难, 而是大家往往很难把那些需求给搞清楚、弄得明白。
因为无法把要求理清清楚, 导致在后面的工作中出现大量的重新整改情况, 花费的钱翻了一倍是很普遍的现象。
真正让人感觉到困难的, 并不是去编写代码这个行为本身。
拿一个请假审批流程来说, 表面上看, 这似乎只是包含几个按钮的简单事情, 但是, 在实际的开发过程中, 必须考虑到多个层级的审批环节, 还需要处理会签以及加签的情况, 同时也得包含撤回操作以及超时后的自动催办机制, 甚至还要兼顾节假日顺延这样的规则, 光是这些错综复杂的业务规则, 就足以让开发人员产生想要放弃的念头, 并对自己完成工作的能力产生怀疑。

更让人头疼的是业务的变更, 今年在OA里面嵌入一个审批流程, 明年就需要去对接钉钉平台, 到了后年又要上线飞书系统, 导致所有相关的接口全都需要重新开发制作, 客户这边还嫌弃响应速度慢, 觉得能力方面不行。
我的建议只有一条, 就是流程引擎这块儿千万别自己闷头去开发,一定要避免自研。面对像 、、 这些现成的方案, 只要仔细挑一个当下社区运营还比较活跃的项目, 直接部署到你们自己的业务环境里使用就好了这么操作下来, 足足可以帮你节省掉将近大半年的项目工期。
如果你打算自己研发, 那么就要把精力专门放在权限模型和单据模板上面去。这是因为这两个部分是和业务内容耦合程度最深的地方。而且, 在外包开发的过程之中, 这里往往是最容易出现问题、最容易让人踩雷的地方。
把模板修改十个版本这样的情形看作是一种普遍状态, 需要在整体结构层面将这一部分设计得具备高度的灵活性, 否则每当流程需要调整时都不得不涉及到底层代码的变动, 如果这样做下去时间一长就必然会导致整个局面陷入混乱无序的状态。
关于审批流程系统开发这件事, 大家心里要明白, 事先把逻辑想透彻, 这个动作永远比急着动手去写代码更要重要。正确的做法是先花力气去画流程图, 并且至少要画上三遍不同的版本, 然后再找来三个不同部门的人进行各自独立的审核环节, 在这样的准备工作没做好之前, 千万别轻易地启动项目。
