做了几年项目,返工的原因几乎都能归到同一件事:动手之前没画清楚。
不是客户不配合,也不是开发不用心,而是「语言」不通。客户讲的是业务场景,开发听的是功能点,两边都以为自己懂了。三张图能把这件事对齐。
第一张:流程图(谁在什么情况下做什么)
不要画成「开始 → 处理 → 结束」这种给老师看的图。要画真实的分支:
- 客户下单后,什么情况下要走改价?谁有权改?
- 库存不足时,是拦截、还是允许负库存、还是转预售?
- 售后申请超过 7 天系统怎么处理?
画的时候用泳道图:每个部门一条泳道,横向表示流转。画完你大概率会发现,有三四个环节从来没有明确规则——全靠老员工临场判断。
这些模糊地带,就是后面所有扯皮的来源。
第二张:角色权限表(谁能看到什么、能改什么)
这张表经常被跳过,然后在中后期引发大量返工。至少要回答:
- 有哪几种角色?(老板、店长、销售、仓管、客服、财务)
- 每个角色能看到哪些数据?是全部、本部门、还是只有自己经手的?
- 哪些操作需要审批?金额阈值是多少?
- 谁能导出数据?(这一条最容易被忽略,也最敏感)
把它做成一张表格,横向是角色、纵向是功能,「查看/编辑/审批/导出」四列打勾。开发照着这张表建权限,比口头描述准确十倍。
第三张:状态流转图(一条数据的一生)
订单、工单、合同、报销单,任何有生命周期的东西都需要这张图。
以订单为例:
待付款 → 已付款 → 待发货 → 已发货 → 已完成 ↘ 已取消 ↘ 退款中 → 已退款
每个状态要写清三件事:
- 谁能触发(客户点取消 / 后台操作 / 支付回调)
- 触发后通知谁(站内、短信、企业微信)
- 是否可逆(能不能从「已发货」退回「待发货」)
状态机画不清,最后一定出现「这个订单状态怎么不对」的 bug——而且很难查,因为数据本身已经乱了。
顺带说:这三张图不用很专业
不用 Visio,不用 Axure。白板拍照、或者用任意在线表格都行。重要的是内容完整,不是图好不好看。
我们做需求梳理时,通常会用 60–90 分钟跟实际使用者过一遍,边问边画,最后把图发回给客户确认。客户经常在这时候说:「等等,我们好像不是这么走的」——这正是这张图的价值。
一个反面案例
有个客户要「一个简单的报修系统」,听起来三句话能说完。画完三张图之后:
- 流程图里出现了「紧急工单」和「普通工单」两条完全不同的路径;
- 权限表里发现「区域经理只能看自己片区,但要能看到全部统计」;
- 状态图里发现「退回返工」可能循环三次以上。
原本以为两周的活,实际是六周。这不是需求变复杂了,是复杂度本来就在,只是之前没被看见。 早看见,报价和排期就是准的;晚看见,双方都难受。
你可以自己先做的一件事
在找任何团队之前,先写下你公司里最常出错的三个环节,各用五句话描述它现在怎么走。
这五句话,比一份二十页的需求文档更有用。