这是一个比较具体的场景,需求上有一些变化,但是我觉得这也是能够引发思考的一个实例。
在系统中,管理人员需要定期对一段时间内的总收益进行各方分账处理,比如一段时间的总收益是1000元,总公司分多少,分公司分多少,门店又分多少......但是这个过程中,由于现实情况比较复杂,所以有一小部分门店只能由总公司对其进行线下转账。最终,财务人员转账之后,在系统中录入结果,转账成功还是转账失败。
如果是线上的分账那肯定是系统来保证整个过程的运行,并记录这个过程的日志。但是线下,单纯由财务人员录入结果,其实是这个系统不可控的,因为财务人员是否转账了,成功还是失败了,这些都不知道。就算财务人员将结果录入系统,这个数据也并不可靠,最终的依据还是系统线上处理的部分,以及真实线下处理的账目。
从这个角度说,除非是做一个线下处理结果录入子系统,各种证明,流程都要考虑在内,否则这个数据对于系统就是无效的。所以,如果是只让财务录入结果的话,和直接标记为该账目是线下处理的效果相同。
------------------------------------------------------------------------------
以上处理方式,我觉得可以引发对于系统设计的一些思考。在做系统时,得想想哪些业务是做了没什么用的,哪些业务是做了确实有效的。软件系统做出来是要解决问题的工具,但像上述这种业务流程如果真的做出来,线下处理了有可能系统中没有记录,线下没有处理成功的也有可能系统中又显示记录成功了,可能还会引发一系列的麻烦。这就不是软件设计的本意了。