经理|产品经理必会之状态机设计( 二 )


说完了状态机设计的2大要点,我们再一起来看看,状态机设计中所面临的挑战是什么。
挑战一、状态机发生了缺失、状态跳跃如何处理
还是以高德打车为例,大量的状态都是需要依赖下游的网约车服务商来完成的,比如接单、到达。这个时候由于技术等问题,很有可能出现还没达到,行程已经开始了。这个时候,在设计状态机时,就需要明确强依赖(只有A状态,才能跃迁至B状态)与弱依赖(无论什么状态都可以跃迁至B状态),以及明确状态机回补(A状态缺失时,如何补一个A状态回去)的策略。
挑战二、对于过于繁杂的状态机,如何进行有效的的管理与迭代在一个异常复杂的业务场景中,会出现状态机多到无法单独依靠一个人来梳理和负责的程度(高德打车就是),这个时候,就需要对状态机进行领域划分来管理。比如以高德打车为例,就可以简单划分为行前、行中、行后,来分别管理状态机。
挑战三、不同的业务场景,对同一套状态机的要求不同时,如何快速响应业务变化(即不能每上一个新业务就要对状态机做开发迭代)
比如还是说高德打车,日常的打车和接送机显然在业务上具备显著的差异性,这个时候,如何在同一套状态机的基础上快速响应各种业务变化呢?这个时候就需要引入一个叫流程编排的概念了,即状态机的跃迁不是一成不变的,而是基于不同的条件(业务场景)可以进行灵活的编排,这个话题以后有机会可以单独开一篇文章来写,有兴趣的同学可以先行自己查阅相关资料。
最后,再把今天文章涉及的核心内容给大家汇总一下。
1、状态机(又叫有限状态机),英文为FSM(Finite State Machine),具体定义为:在当前状态下,输入一个命令,然后根据业务规则触发相应的工作,最后完成一次状态的迁移。
2、状态机的设计,需要遵循<现态、事件、动作、次态>状态机四要素来完成。
3、设计状态机的第一步,叫抓住主要矛盾,即理清楚整个流程中的关键节点(关键节点就是说,少了这个节点,整个流程运转不下去了)。
4、状态机设计的第二步,叫罗列特殊业务场景,即把整个业务流程中,可能发生的所有特殊(或者需要进行运营干涉)的业务场景都罗列出来,并且要制定相应的应对措施(即发生了这种场景怎么办,比如司机取消怎么办)。
5、状态机的挑战一、状态机发生了缺失、状态跳跃如何处理。
6、状态机的挑战二、对于过于繁杂的状态机,如何进行有效的管理与迭代。
7、状态机的挑战三、不同的业务场景,对同一套状态机的要求不同时,如何快速响应业务变化(即不能每上一个新业务就要对状态机做开发迭代)。
作者:超级大头,8年+各类中后台产品设计经验,个人公众号:产品经理两三事。
本文由 @超级大头 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Pexels,基于CC0协议