惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
L
LangChain Blog
WordPress大学
WordPress大学
V
V2EX
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
Recent Announcements
Recent Announcements
GbyAI
GbyAI
博客园 - 叶小钗
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
理清楚状态机,也将理清楚产品的业务逻辑
产品海豚湾 · 2022-12-01 · via 人人都是产品经理

产品的业务功能设计基本上都离不开业务状态的流转。随着业务的推进,一个业务对象会从一个状态转变到另一个状态,这种状态的流转就是状态机(State Machine)。本篇我们来讲讲如何进行状态机设计,相信看完后,你将梳理清楚了业务的状态及其流转条件。


在产品设计中,很多业务对象会有多个状态,通过状态机可以很好地梳理单个业务对象业务状态如何流转。同时,对于多个关联的业务对象,也可以实用状态机和流程图结合的方式,梳理业务环节上的多个业务对象的状态流转以及他们之间如何相互影响。

01 前言

产品的业务功能设计基本上都离不开业务状态的流转,比如订单状态会有:待付款、待发货(已付款)、已发货、已完成、已评价、已取消等等状态。随着业务的推进,一个业务对象会从一个状态转变到另一个状态,这种状态的流转就是状态机(State Machine)。状态机在业务流转的产品设计中非常重要,如果梳理清楚了业务的状态及其流转条件,那么整个产品的业务逻辑就会非常清晰。本篇我们来讲讲如何进行状态机设计。

02 什么是状态机

我们先来看下面的订单状态机图,然后再来讲状态机的具体定义。

从上面的图我们可以看到这是订单的业务状态流转图。

这里有一个起始状态,就是待付款,这是在用户下单后形成的。然后有三个结束状态,已取消、已完成和已评价。

为什么已完成也是结束状态,是因为用户评价不是必要的环节。

这里我们就得到了状态机的第一个关键要素:状态机由若干个不重叠的状态组成,状态机中至少有一个起始状态和一个结束状态。

然后我们也会看到,状态和状态之间是通过一条单向的线条连接的,这里引出了状态机的一个特征:状态机是有个有向图。最后,线条上注明了一个动作,这是促发状态改变的动作,也就是状态的改变是由外部的动作促发的。

结合上面的例子,我们就得到了状态机的定义:状态机是一个有向图形,由一组状态和一组相应的动作组成。状态机通过响应一系列动作而运行。

03 如何在产品设计中使用状态机

了解到状态机的定义,我们来看看如何在产品设计中使用它。这里分下面几个步骤:

  1. 列举某个业务对象的状态,这里需要使用 MECE 原则,即穷尽而不重复,将业务对象的所有状态都列举出来。比如上面的订单状态图,其实我们就遗漏了已退款、部分退款这两个状态。
  2. 梳理哪些状态是起始状态,哪些状态是结束状态,以确定业务的开始和结束。
  3. 确定状态直接的流转次序,并且列出促使状态流转的动作,也就是具体的业务行为。
  4. 确定每个具体业务行为需要提交的数据和产生的数据,即业务行为的输入输出。

实际简化出来就是“定状态理流程明数据”三个要点。我们再举一个我们产品开发的任务管理的例子。对于产品开发任某个需求点,通常会经过需求评审到上线的过程。我们按照上面的步骤进行一下状态机的分析:

  1. 状态列举:整个过程有待评审、被驳回、待开发、开发中、待测试、待验收、已上线7个状态。
  2. 待评审属于起始状态,被驳回、已上线属于结束状态。
  3. 状态的流转图如下:

每个业务行为的输入输出如下表所示。

04 状态机与流程图的区别

我们看上面的产品开发的任务管理状态机图其实并不是特别合理,我们可以看到不同的状态的流转其实的业务动作是一样的,比如评审不通过和通过实际上的行为应该是评审。

之所以会出现这个情况,是因为实际上这里揉和了多个业务对象:需求、开发任务、测试任务等等。

这种需要描述多个对象的状态机的情况,那么应该结合流程图来做,如下图所示。

这种方式可以将业务对象的状态变化和业务流程串联起来,会更好地知道哪些状态受关联的业务环节影响,比如需求的开发中状态就依赖开发任务的确认开始动作。

可以看到,状态机和流程图某些方面是类似的,都是用来描述业务流转,但是二者也存在明显的不同,状态机更关注的业务环节中某个对象自身的状态变化,而流程图更适合描述整个业务的环节的不同行为如何衔接各个业务对象。

也就是,状态机关注的范围相对会更小一些。

如果一个业务对象的状态流转无法通过作用于自身的业务行为表示,就可以引入相关业务对象的状态机和流程图来共同绘图表示。

由于同时绘制多个业务对象的状态机图可能会很复杂,因此建议将主路径用强调出来,这样可以很清晰地知道主流程如何流转。

05 总结

本篇介绍了状态机在产品设计中的应用,通过状态机可以很好地梳理单个业务对象业务状态如何流转。同时,对于多个关联的业务对象,也可以实用状态机和流程图结合的方式,梳理业务环节上的多个业务对象的状态流转以及他们之间如何相互影响。

实际我们产品设计过程中就可以采取“定状态理流程明数据”的方式去梳理业务。

作者:产品海豚湾;公众号:产品海豚湾(ID:pm-dophin-bay)

本文由@产品海豚湾 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。