场景(本场景纯属虚构):国家推出福利,让每个有小孩的家庭都可以申领补贴。需要申领补贴的人,需要在S系统里面填写表单,填好小孩的资料,然后提交申请。有关人员将在S系统进行审批,走完流程之后方可发送补贴。按照目前的政策,每个家庭只能为1个小孩申请补贴。基于这项福利,我需要在S系统添加相应功能。
这种场景比较典型。我现在就把目光聚焦在“每个家庭只能为1个小孩申请补贴”这一点上。我可能会在下面两种方案中选择一种: (1)既然每个家庭只能为1个小孩申请补贴,那么,我只考虑“1个表单只包含一个小孩信息”这种情形,而不考虑“1个表单里面可能包含多个小孩信息”这种情形。 (2)考虑到将来国家政策可能改变,我在设计时,直接就按照“1个表单里面最多能有N个小孩信息”这种情形设计(把N看成参数,而不会把N假设成1)。然后我再为N这个参数传入常量1。
很明显,(2)方案更灵活,更容易适应需求。但是与(1)方案相比,(2)方案比较复杂,真正实现时会耗费较多的人力物力。假如最后国家一直不改变政策,那么,我岂不是白白耗费成本?————有时候,国家的确变更了政策,但是变更的方式并非想象中的“允许为多个小孩申请补贴”,而是直接取消这项补贴福利,那么,我为了“灵活”而作的考虑,就成为笑谈了。 另一方面,(1)方案虽然比较简单,但假如国家真的改变了政策,允许一个家庭为多个小孩申请补贴,那么,变更所带来的工作量,会比较可观。从项目管理角度看,如果需求变更引起了工作量,我可以对客户多收钱。但假如客户有一点技术功底,知道工作量与“不灵活的设计”有关,那么,要说服客户多付钱,还真有难度。
时间: 2024-11-05 18:37:47