扫码阅读
手机扫码阅读

学会多摸鱼至少2小时 | 复杂逻辑的分析方法 — 考勤打卡案例

73 2024-03-22

#
产品经理必聊的100个话题



第19期:复杂逻辑的分析方法

某大型超市,有一天HR带着一份考勤逻辑来找开发团队,希望开发团队来开发一个考勤打卡程序,原始需求如下所示。



1.公司雇佣的员工有如下几种:

正式员工、外包员工、小时工、留学生。

2.考勤打卡限制规则

正式员工和外包员工每周出勤小时数不低于30小时。

在合同有效期。

留学生的留学资格要在有效期时间段内。

正式员工和外包员工每次出勤小时数不可以少于6小时。

小时工和留学生每次出勤小时数上限为4小时。

留学生的留学资格要在有效期时间段内。

年少者(16-18周岁)每周(按周一-周日为一周算)不允许超过4次出勤,累计不能超过16小时。

深夜打卡(23:00-25:00)不能超过连续4天。

只能在计划出勤的时间之前15分钟到计划出勤起始时间内打上班卡。

在计划出勤时间之后打卡视为迟到。

只能在出勤计划结束之后打下班卡,否则视为早退。

不允许连续工作超过13天。

在合同有效期内。

在计划出勤日,非计划出勤日打卡无效。


其实可能还有很多内容,这里只列出一些例子条款。HR顺便说了,这个是试行规则,之后可能会变。





如何着手


Business Analysis





作为BA/产品经理,处理这样的复杂逻辑有两种方式可以选择:

1.直接转发原文给开发团队

但如果这样做,那自己就没有价值了。

2.分析后以合适的形式传递给开发团队

但是这个问题似乎又不知道如何下手,同时需要充分考虑到需求分析的质量要保证,不能出现错误,还要考虑需求未来会变更,现在就要考虑清楚未来发生变更的时候怎么办。


参考答案


Business Analysis





采用职责链模式,可以将各种规则分类后进行细化排队。

这样当校验发生的时候,这些规则逐个排队进行校验,任何一个规则校验失败之后就会返回具体的错误消息,而停止后续的校验。

分类的方式可能各有不同,但是分类处理是解决这个问题的比较好的一个方法。

1.质量保证分析

这样的分析方法,需求的质量得到了保证。

如果采用了嵌套非常深if-else结构,会造成很大的复杂度,并且无法确保需求分析的完整(完整性缺失),各种细节都考虑清楚了。而且可能造成理解困难等问题(可读性下降)。

2.需求变更的响应-如果增加了新的规则


那么就将新的规则按照上述分类找到合适的位置增加进去就可以了。并且新的规则对旧的没有影响,在if-else结构下无法保证影响性。

如果增加的新的规则是属于新的分类,则在原来的链条上增加新的节点就可以了。也是没有影响性。

3.需求变更的响应-如果调整了旧的规则

单独的规则调整对其他的没有影响,在if-else结构下无法保证影响性。

原文链接: http://mp.weixin.qq.com/s?__biz=Mzk0MzM2OTQzOA==&mid=2247484243&idx=1&sn=5a865f53a981900b775efc443bda33f9&chksm=c335bee2f44237f40c6e250da03102f43906966f97f500beba6e5215bdb0e96428eea4225218#rd