这篇文章,我们来讨论一个比较有趣的需求,可能曾经出现在你设计的系统中,又或者你见过类似的解决方案。
不管怎样,我们抱着思考讨论的心态,一起来聊一下吧~

先来简单的描述一下目标功能的大概内容:我们的系统提供一个模块,该模块有3种用户类型:一线销售人员,销售经理,市场总监。
该模块最基本的一个流程是:销售人员提前填写未来周的工作计划(7天),提交后先由自己部门经理审批,通过后再由市场总监审批,最终流程完结。如果在审批过程中出现工作计划变更或审批拒绝,则回到流程原点。
我们这里不把关注点放在讨论该流程是否合理的方面(毕竟如果人数众多的话,市场总监怎么可能了解所有销售人员的工作明细呢?)。
我们假设这是一个用于十人的小型销售团队,此外该公司业务稳定,团队成员稳定。没毛病了吧?

由于需求过于常见,所以并没有什么值得深究的,一周开发下来就交付给客户了。
这个时候,对方提出了一个“小需求”:假如销售人员的工作计划中有错别字怎么办?

当听到这个需求,我第一感觉是无语。系统也要照顾到这类问题吗?换句话说,在一个严肃的审批流程中,如果错别字影响工作计划了,主观直接拒绝就好啦,如果有强迫症,那就改一下然后重新走审批流程不得了~

但客户不怎么想,站在客户的角度来看,如果只是因为一个错别字,就要麻烦领导重新审批,岂不是“非常的”不方便吗!!
实不相瞒,这个问题直接造成了我们团队认知上的撕裂。到底这个“错别字”问题是否应该让系统来解决呢?

经过一轮的讨论,大家最终妥协出一个方案:增加历史记录。但在我看来这已然严重破坏了这个模块的核心功能:审批。
何为增加历史记录?就需要将“是否重新审批”的权利交给销售人员,假如他选择了不重新审批,则他做的变更系统需要做历史版本的记录。
而他对一周的工作计划的变更的情况又非常复杂,包含了新增,删除,编辑其中的多项。
开发量和复杂度都直线上升,而且我们仅仅为的是“错别字”这个有点玩笑的需求。我个人觉得真的是不值得~

那有没有完美的方案呢?高端一点的自然语言识别来解决错别字纠错?搜了一下果然也是各种云服务可用,不过涉及到运营成本问题了。
不知道为这个“错别字”问题追加运营成本,公司领导又会有怎样的思考呢?

我们再说回“历史记录”这个方案,深入下去的话也还是有很多的小细节需要决策,例如系统默认显示的是更新后的版本还是更新前的版本呢?
显示更新后的版本,出了问题再追溯历史版本?但在我们的业务场景中,识别是否出问题的成本比较高,这也就意味着用户很容易忽略历史版本。
(那不是很好吗?本来历史版本也都是错别字才对吧)
但如果是恶意的更新呢?就让它悄声无息的覆盖掉原始的审批版本吗?所以我更倾向于优先显示更新前版本,然后标识出该计划有最新版本变更,用户可以手动切换到最新版本来看,负责审批的角色也可以在心情好的时候对新版本进行审批,之后系统就会显示最新审批过的那个版本。

不过不管怎么说,我们都要为“错别字”买单,而提出这个需求的用户,有思考过一个问题吗?错别字到底发生的概率和产生的后果有多大?是否值得如此厚待呢?