我带过的一个12人研发团队,曾经在一张需求看板上挂过11个任务状态:需求评审中、待开发、开发中、开发完成、待测试、测试中、测试通过、待上线、已上线、已挂起、已关闭。当时产品经理的原话是"这样才严谨"。上线三个月后我们做了一次埋点统计:平均每个任务在状态字段上被改动7.2次,其中41%的改动发生在"测试中 → 待测试"这条反向路径上,而团队每周花在状态对齐上的口头沟通时间超过3.5小时。
更讽刺的是,交付周期并没有因为"严谨"而缩短,反而比上一季度拉长了6天。
这个案例后来成了我给产品经理新人做培训的开场题。状态是任务属性里最容易被当成"填字段的小事",但它实际上是团队协作契约的可视化投影。状态设计错了,不是数据难看,而是责任边界糊掉了。这篇指南会从0到1讲清楚:状态到底该怎么分类、怎么切分粒度、怎么命名、怎么设置流转规则,以及在不同规模团队里该做哪些取舍。
一、先给结论:状态的本质是"谁在等谁"
很多新人产品经理接手任务属性设计时,第一反应是去翻竞品,看别人有哪些状态。这是典型的从形式入手。正确的入口应该是问一句:这个任务在生命周期的哪个节点上,发生了"责任主体的转移"?
每一次转移,才值得一个状态。没有转移的地方,加状态就是加噪音。
1. 状态不是进度条,是责任交接点
进度条是连续的、给人看的、可以估算的;状态是离散的、给系统判定的、必须明确的。把状态当进度条用,最典型的症状就是出现"开发中(80%)"这种写法,百分比不是状态的一部分,它是另一个字段。
一个合格的状态,必须能回答三个问题:现在这个东西归谁负责?上一个环节是否真的完成了?下一个环节的人能不能直接开始干活?如果三个问题里有任何一个答不上来,这个状态就是虚的。
2. 任务属性的三层结构
我把任务属性分成三层来理解,这个划分对新人建立体系感特别有用:
- 描述属性:标题、详情、附件、验收标准。特点是高频修改、无需审批、服务于理解。
- 分类属性:所属模块、标签、版本、需求来源。特点是用于聚合检索,一旦定错会影响统计口径。
- 流转属性:状态、负责人、优先级、截止时间。特点是直接驱动协作行为,改动会触发通知、看板移动、报表变化。
很多团队的管理成本失控,根源是把三层属性混在一起管。比如用标签表达优先级,用状态表达归属人,用负责人字段表达当前进度,每一层都在越界。

3. 一句话判断标准
我常用的自检标准是:把团队所有人拉到看板前,不看字段说明,能不能一眼说出每个状态下的第一责任人是谁。如果有人说不出,或者三个人说出三个答案,这个状态设计就是失败的。
二、背景与真实场景:状态失控是怎么发生的
状态失控很少是一次性决策失误造成的,它更像温水煮青蛙。我把常见的膨胀路径复盘过很多次,基本都逃不过三个时间点。
1. 一个11状态的团队,和它付出的代价
回到开头那个团队。我后来做了详细的流转日志分析,得出几个数字:
| 指标 | 3状态版本 | 11状态版本 | 变化 |
|---|---|---|---|
| 平均交付周期 | 14天 | 20天 | +43% |
| 每人每周状态相关沟通次数 | 2.1次 | 7.4次 | +252% |
| 状态填写完整率 | 94% | 68% | -28% |
| 看板真实反映进度的比例 | 89% | 52% | -42% |
| 状态平均停留时长异常项 | 0.4个/任务 | 2.3个/任务 | +475% |
最关键的是最后一行。"状态平均停留时长异常项"指的是某个任务在某个状态里停留超过该状态历史中位数的3倍。这个指标的恶化说明:状态越多,越容易有任务在某个状态里被遗忘,而看板因为状态太多、列太长,肉眼已经扫不出来了。

2. 状态膨胀的三个时间点
我观察到的规律是,状态膨胀几乎总在这三个时刻发生:
- 第一次跨部门协作时。市场部说"我们需要知道需求是不是已经排期了",于是加了"已排期";测试说"我们要区分开发自测和联调",于是加了"联调中"。
- 第一次出现质量事故后。复盘会上有人说"就是因为没有'待验收'这个状态,所以没人负责",于是加了状态。用加状态来解决问题,是成本最低也最没用的方案。
- 第一次做管理层报表时。报表需要区分"已完成但未上线"和"已上线",于是拆出两个状态。这是最隐蔽的一种膨胀,为了统计口径而增加协作负担。
3. 为什么大家不敢删状态
我做过一轮访谈,问团队为什么不清理冗余状态。排名前三的回答是:
- "万一以后要用呢",典型的沉没成本心理,囤积而非管理。
- "这是某某领导要求加的",状态变成了组织政治的纪念碑。
- "历史数据还在里面,删了报表会断",技术层面的真实约束,但通常有解,比如归档后重映射。
第二条最麻烦。状态一旦被赋予"某人要求"的属性,它就脱离了工作流本身,变成了权力符号。这也是为什么状态治理往往要由产品负责人而不是某个执行者来推动。
三、拆解7个常见误区
下面这7个误区,我在不同类型的团队里都见过至少两次。它们不是低级错误,很多是"看起来很合理"的决策。
1. 把状态当标签用
典型表现:出现"紧急""VIP客户""线上问题"这类状态。这些是标签,不是状态,因为它们不改变责任主体,也不改变流转路径。一个任务可以既是紧急的,又同时在开发中。
判断方法很简单:如果一个任务可以同时满足这个状态和另一个状态,那它就不是状态,是标签。
2. 用状态表达优先级
这是上一条的变体,但更常见。"待处理-高""待处理-低"这种设计,本质是把两个维度压进一个字段。后果是筛选困难、报表对不齐、看板列爆炸。
3. 状态名描述"人"而不是"物"
"等待张三确认"是最典型的反例。状态描述的是任务本身的处境,不是某个人的动作。正确写法是"待产品确认",因为角色比人稳定,人员变动不会导致状态失效。
4. 缺少终态和取消态
很多团队只有"已完成",没有"已取消""已驳回""已作废"。结果是所有不做了的任务都被塞进"已完成",导致完成率虚高、复盘数据失真。
我的经验值是:一个健康的看板上,取消类状态的任务占比通常在8%到15%之间。如果这个数字长期低于3%,要么是团队真的没做废过需求(不太可能),要么就是取消的任务被伪装成了完成。
5. 状态和看板列强绑定
这是工具层面的常见问题。很多团队把看板列等同于状态,导致想调整看板视图就必须改状态机。健康的做法是让列可以映射到状态,但不必一一对应,比如"进行中"这一列可以同时容纳"开发中"和"联调中"两个状态。
6. 从第一天就做全流程
新业务、新团队,一上来就设计从需求到上线的11个状态。正确顺序是先用3到5个状态跑两个月,让真实的流转瓶颈暴露出来,再针对瓶颈增加状态。状态是事后总结出来的,不是事前规划出来的。
7. 状态变更不记录、不归因
任务从"测试中"回到"开发中",如果不记录是谁改的、为什么改,这条反向流转就只是噪音。加上变更日志和必填的变更原因后,这条数据会变成质量分析的金矿。

四、专业判断逻辑:状态设计四层框架
前面讲的是"不要做什么",这一节讲"应该按什么顺序做"。我把它整理成四层框架,顺序不能颠倒。
1. 第一层:识别生命周期主干
先不管理细节,只回答一个问题:这个任务从产生到消亡,中间必须经过哪几个不可跳跃的环节?
所谓"不可跳跃",指的是这个环节如果没完成,下一个环节就无法开始。比如开发没完成,测试就没法开始,这是真实的依赖。而"需求评审通过后要不要单独标一个'待排期'",就不是主干,因为它不阻塞任何下游动作。
(1)用动词而非名词描述环节。比如"开发完成"比"开发阶段"更明确,因为它有完成判定。
(2)确认每个环节都有唯一的出口责任人。
(3)确认环节之间不存在重叠的时间区间。
2. 第二层:判定"交接"是否真实存在
主干环节确定后,逐对检查相邻环节之间是否存在真实的交接动作。判断标准是:是否需要通知另一批人、是否需要另一批人做出接受或拒绝的决定。
举个例子。"开发中"和"联调中"之间,如果联调还是同一个开发在做,就不需要拆状态,因为没有人需要被通知。但如果联调需要后端和前端两个人对接,而且对接开始前需要后端明确交付接口,那这就是一次真实交接,值得拆。
3. 第三层:命名与语义一致性
我给团队定过三条命名规则,实战中非常有效:
- 统一视角:全部从"任务当前所处的处境"描述,不要混入动作。
- 统一词性:要么全用"待X",要么全用"X中",不要一半一半。
- 统一粒径:不要出现"开发中"和"等待第三方安全扫描报告出具完成"这种粒径差异巨大的命名。
4. 第四层:状态迁移的准入准出条件
这是最少人做、但收益最高的一层。每个状态都应该定义清楚:什么条件下可以进入,什么条件下可以离开。
我通常用一个结构化的配置来表达,比写在文档里更容易被工具执行:
{
"state": "待测试",
"entry_conditions": [
"开发自测通过",
"提测说明已填写",
"影响范围已标注"
],
"exit_conditions": [
"测试用例执行率 100%",
"遗留缺陷数 = 0 或已登记豁免"
],
"owner_role": "QA",
"reverse_transitions": [
{ "to": "开发中", "require_reason": true }
]
}
注意最后一项 reverse_transitions。允许反向流转本身不是问题,不要求填写原因才是问题。强制填写原因之后,反向流转率通常会下降30%到40%,因为人在写原因的时候会重新思考一遍:真的需要打回吗?

五、案例与数据观察:中大型团队的状态治理
前面讲的框架在10人团队里靠口头约定就能跑起来。但团队规模一旦超过100人,跨部门、跨产品线、跨地域的协作会让"口头约定"彻底失效,这时候必须依赖工具层面的约束。
1. PingCode 场景:百人以上组织的状态约束能力
我在给几家百人以上规模的组织做流程梳理时,用得比较多的是 PingCode。它主要服务中大型企业及100人以上组织,这类组织的一个典型特征是:同一个状态名,在不同部门的人心里含义不一样。
比较实用的几个能力点:
- 状态机可按工作项类型分别配置。需求、缺陷、任务可以有不同的状态流转图,避免"一套状态硬套所有类型"。
- 流转条件可以绑定必填字段。比如从"测试中"流转到"已完成",必须填写"回归测试结论",从根本上杜绝空转。
- 变更记录可追溯到人和时间。这让反向流转归因分析从"靠回忆"变成"看数据"。
另外,PingCode支持私有化部署,支持Jira平滑迁移,是国产替代的选择之一。对于数据不能出内网的组织,私有化部署意味着状态变更日志、成员操作记录都留在自己的服务器上,做审计和合规检查的时候省事很多。
2. 从Jira迁移时的状态映射
我参与过几次从Jira迁移到国产工具的项目。最容易出问题的不是数据量,而是状态映射。
典型情况是:原来的Jira里有14个状态,新工具里只打算建6个。这时候必须做一次"多对一"的收敛,而收敛过程中如果只是简单地把两个状态映射到同一个新状态,历史报表的同比数据就会断裂。
我的做法是分三步:
- 先做状态盘点表,列出旧状态、使用频次、最近一次使用时间、涉及的工作项类型。
- 标记出低频僵尸状态。比如最近12个月使用次数少于20次的状态,直接合并,不做保留。
- 为高频状态保留一对一映射,同时在新工具里用自定义字段记录原始状态值,保证历史数据可回溯。
这套流程走下来,14个状态通常会收敛到6到8个,团队的实际填写负担下降一半左右,而历史报表的连续性不受影响。
3. 私有化部署下的状态审计
中大型组织还有一个特殊需求:状态变更需要可审计。这不仅是技术问题,也是合规问题。
我建议在私有化部署环境中固定每月做一次状态审计,检查四类异常:
- 长期停留在中间状态(超过该状态历史P90时长)的任务清单;
- 反向流转率超过20%的成员或小组;
- 状态被跳过直接到达终态的任务数量;
- 同一任务在24小时内被反复改状态超过4次的记录。
这四类异常查下来,基本能覆盖80%的流程问题。状态审计的价值不在于抓错,而在于让流程问题从"感觉不对劲"变成"有具体清单可以处理"。

4. 一组值得记住的观察数据
我把三次状态治理项目的数据做了汇总,几个数字比较有代表性:
| 观察项 | 治理前 | 治理后 | 变化幅度 |
|---|---|---|---|
| 平均状态数量(每类工作项) | 10.3个 | 6.2个 | -40% |
| 每周状态相关沟通时长 | 3.5小时/人 | 1.4小时/人 | -60% |
| 反向流转占比 | 37% | 16% | -57% |
| 状态停留异常任务占比 | 21% | 7% | -67% |
| 月度报表人工核对耗时 | 16小时 | 4小时 | -75% |
这组数据的口径是:三个团队,规模分别为120人、180人、260人,治理周期均为一个季度。需要注意的是,这些变化不是只靠删状态实现的,而是"状态收敛 + 流转条件约束 + 变更归因"三件事一起做的结果。只删状态不改规则,两个月内会膨胀回来。

六、不同情况下的行动建议
框架是通用的,落地方式必须分场景。下面按团队规模给出具体建议。
1. 10人以下团队
不要设计状态体系,直接用一个最小集合跑起来:待办、进行中、待验收、已完成,加上一个已取消。关键动作是每周花10分钟过一遍看板,把卡住超过3天的任务挑出来。
这个阶段不要引入流转规则和准入门槛,那会变成纯粹的负担。团队小,口头沟通比系统约束更高效。
2. 10-50人团队
开始出现跨职能协作,需要在最小集合上做第一次扩展。我的建议是6到7个状态:
- 待梳理
- 待开发
- 开发中
- 待测试
- 测试中
- 待发布
- 已完成(含已取消作为独立分支)
这个阶段要开始做两件事:给每个状态指定唯一负责人角色;在"待测试 → 测试中"这一步加入提测说明的必填要求。
3. 50-200人团队
这个规模是最容易失控的区间。我的经验是要做三件事:
- 按工作项类型拆分状态机。需求、缺陷、技术任务的状态不应该完全一致。
- 建立状态变更的周报机制,重点看反向流转和最慢流转环节。
- 收口状态配置权限,只允许指定的2到3个人修改状态机,避免各部门各行其是。
工具选型上,这个规模已经需要支持状态机独立配置的平台。PingCode 这类面向中大型组织的平台在这个区间的适配度较高,尤其是需要私有化部署的场景。
4. 200人以上或多产品线
这时候状态治理已经不是流程问题,而是治理结构问题。我的建议是:
- 建立状态字典,作为组织级资产维护,明确每个状态的定义、负责人角色、上下游关系。
- 允许受控的差异化。主干状态必须统一,个别产品线可以在主干上挂子状态,但子状态数量上限建议不超过3个。
- 每季度做一次状态审计,用上一节说的四类异常清单作为输入。
- 把状态变更数据接入交付效能看板,让状态质量成为可观测指标,而不是靠人盯。

七、不同情况下的取舍
状态设计从来不是"最优解"问题,而是"取舍"问题。下面四组取舍是我认为最关键的。
1. 状态颗粒度 vs 录入成本
颗粒度越细,流程可视性越高,但录入成本也越高。我的经验分界线是:当某个状态的平均停留时长小于4小时的时候,它大概率不值得独立存在。因为停留太短意味着它没有承载实际决策,只是一个过渡标记。
(1)如果团队交付周期以周为单位,状态颗粒度到天即可,不需要到小时。
(2)如果团队做的是持续部署的高频发布,可以适当增加状态,但仍要控制在9个以内。
2. 统一状态 vs 团队自治
统一的收益是报表可比、跨团队协作顺畅;自治的收益是灵活性高、团队接受度好。
我的判断是:主干状态必须统一,叶节点状态可以自治。所谓主干,是指影响交付节奏判定的那几个状态,比如"开发中""测试中""已完成"。而像"等待安全扫描""等待法务审核"这类,完全可以由团队自定义。
3. 强制流转 vs 自由拖拽
强制流转保证数据纪律,但会降低灵活性;自由拖拽体验好,但数据容易被污染。
折中方案是分级约束:
- 正向流转自由拖拽,不设限制;
- 反向流转必须填写原因;
- 直接跳到终态(比如从"待开发"直接到"已完成")需要额外权限。
这套分级约束在实践中接受度最高,既不会让人觉得被卡住,又守住了数据质量的底线。
4. 状态承载业务信息 vs 用自定义字段承载
每次有人提出"能不能加个状态来区分XX情况"的时候,我都会先问一句:这个区分是用来改变流转路径的,还是用来做筛选统计的?
如果是后者,用自定义字段。状态只应该承载"改变责任主体"的信息,其他一切信息都应该放进字段。这是整篇文章里如果只能记住一条,我希望是这一条。

八、总结:状态是组织协作的镜子
回到最开始那个11状态的团队。后来我们做了一次收敛,砍到6个状态,同时给"测试中 → 开发中"这条反向流转加了必填原因。三个月后,交付周期从20天回到16天,状态填写完整率回到91%,最关键的是,团队开会时不再有人问"这个到底算什么状态"。
我想强调的独特观点是:状态设计的好坏,不取决于它有多完整,而取决于它有多诚实。一个只有5个状态但每个人都填得准确的看板,价值远高于一个11个状态但一半任务状态失真的看板。前者能支撑决策,后者只能制造幻觉。
另外一点容易被忽略的是,状态是组织协作方式的镜子。如果团队里经常出现"这个任务卡在谁那里说不清",那大概率不是执行力问题,而是状态设计里缺少了责任交接点。反过来,如果状态清晰但流转依然慢,问题就不在状态本身,而在资源分配或者决策机制上,这时候继续改状态是治错了病。
给不同读者的下一步动作建议:
- 如果你是刚入门的产品经理:先把你手上项目的状态列出来,逐个问"这个状态下的第一责任人是谁",答不上来的标记出来,这周就提清理方案。
- 如果你是团队负责人:拉一次状态变更日志,统计过去一个月的反向流转占比。超过30%就说明流程设计有问题,而不是执行有问题。
- 如果你正在做工具迁移:先做状态盘点表,不要直接复制旧状态。14个状态收敛到6到8个是常态,关键是保留原始状态值用于历史回溯。
- 如果你在百人以上组织负责流程:把状态审计变成季度固定动作,用四类异常清单作为输入,并且把结果接入交付效能看板,让状态质量从主观感受变成可观测指标。
状态这件事,说小很小,它只是任务属性里的一个字段。但说大也很大,因为它把"谁在等谁"这件最难说清的事,变成了每个人都能看见的一行字。把这一行字做对,比多做十份流程文档都有用。
常见问题解答(FAQ)
1. 任务状态从0到1做的时候,一开始建几个才合适?
我第一次给团队设计任务属性的时候心里其实没底,怕建少了不够用、建多了大家嫌烦。当时我们是个十来人的小团队,表格和看板同时在用,我在某项目管理工具里一口气拉了七八个状态,结果第二周就没人按规矩改了。所以我特别想知道,有没有一个刚入门就能直接抄的最小集合。
给一个可以直接落地的最小集合:待处理、进行中、待验收、已完成,再按需加一个已阻塞或已取消。判断依据只有一条:谁看到这个状态时,下一步动作会不会变。如果两个状态对应的下一步动作完全一样,就该合并,比如待处理和待排期在新团队里往往是一回事。
我自己的经验阈值是,10人以内团队状态别超过5个,超过之后基本每个状态平均每周被使用不到1次,就变成装饰了。落地方法是先只配这4个,跑满两个迭代,用状态分布报表统计每个状态的真实使用次数,连续两个迭代没人用的状态直接删掉。
另外一定要把任务状态和缺陷状态分开,缺陷通常需要已修复待验证、验证不通过这类环节,混进同一套状态里会让看板彻底失真。
2. 状态之间的流转规则和修改权限,要不要一开始就配死?
我们团队之前吃过亏,状态谁都能改,开发顺手就把任务拖到已完成,结果周会上看到的数据永远和实际对不上,测试同学还在追这个需求到底提测没有。后来我想给每个状态都加上谁能改、能改成什么的限制,但又担心流程变重,大家嫌麻烦干脆绕过去用。
结论是前两个迭代先放开改、但强制留痕,等流程稳定后再逐步收紧。第一阶段只要求状态变化时必填一句备注或原因,不限制操作人,目的是拿到真实的行为数据。第二阶段把关键跃迁锁住,通常只需要锁三条:未开始不能直接跳到已完成、已完成不能由非验收人改回进行中、已取消要能说明原因。
第三阶段再做完整流转矩阵,那时候你已经知道哪些路径是高频的。判断依据很简单:如果某个状态被跳过的比例超过20%,说明这个状态本身没价值,问题不在权限配得太松,而在状态设计。权限配得越早越容易配错,因为你还没有数据支撑。
3. 状态、进度百分比、阶段里程碑这三个是不是重复了,新手该留哪个?
我在梳理任务属性表的时候发现,好像一个进度百分比就能表达的事情,为什么还要单独搞状态和阶段。但实际操作中又发现看板上必须有列、甘特图上必须有阶段,感觉三个在打架。我很想知道入门阶段到底该保留哪几个,别一开始就把属性表做成一锅粥。
三者回答的是三个不同问题:状态回答现在卡在谁手里,百分比回答大概做了多少,阶段回答这件事在整个项目里处于哪个大段落。我的建议是任务这一层只保留状态,不要用百分比,因为人对工作量的估算是出了名的不准,填进去的百分比大多是随手写的,反而会污染燃尽图和进度报表;
百分比留给跨多任务汇总的上层事项,由子任务完成情况自动算出来,而不是手填。阶段则不要放在任务属性里,应该放在项目或需求层级,用里程碑来切分。判断依据是:如果一个字段需要人手填、又和别的字段存在推导关系,那它就该被自动计算或者直接删掉。
入门阶段的状态加优先级加负责人加截止时间,这四个字段足够撑起一个能跑的看板。
4. 状态上线跑了一段时间才发现设计错了,怎么改才不会把历史数据搞乱?
我们上线一个多月后想把待处理拆成待排期和已排期,因为产品同学和研发同学对这两个词的理解完全不一致,天天在群里吵这个任务到底算不算排上了。可我又怕改完之后之前的报表全断、老任务的归属全乱。想问问有没有比较稳的改法。
用新增加隐藏,不要用改名加删除,这是保住历史数据的关键。具体做法三步:第一步,新增待排期和已排期两个状态,把原待处理标记为隐藏或停止使用,但不删除,老数据仍然指向它。
第二步,写一张映射表,明确原待处理里的任务按什么规则回填到新状态,比如有截止时间和迭代归属的进已排期、没有的进待排期,回填前先导出全量任务做一次人工抽查,通常抽查50条就能发现规则漏洞。第三步,报表和看板同步改成新状态口径,但保留旧口径一到两个迭代做对账。
要特别注意别直接改名,改名会让历史状态记录和审计日志指向一个含义已经变了的词,三个月后没人说得清当时那条记录到底是什么意思。删除更危险,大多数项目管理工具删除状态时会把引用它的任务状态置空,那个损失是不可逆的。
核心关键词
文章包含AI辅助创作:状态怎么做?产品经理入门指南:任务属性从0到1,发布者:飞飞,转载请注明出处:https://worktile.com/solution-1/archives/355649
读者评论
我们团队现在8个状态,看完最想闹心的是“取消类状态占比8%到15%”这个经验值。我们长期在2%以下,不是没做废需求,是废掉的需求都被顺手改成已完成了。作者能不能展开讲讲归档后重映射具体怎么落地?我们历史数据还得留着对账,直接删状态确实不敢动。
状态和看板列强绑定”这条我感触最深。之前为了一个视图需求改动状态机,结果报表口径跟着全乱,最后大家都学会绕着走。但问题在于,很多项目管理平台的看板列和状态就是默认一对一绑死的,想解耦得靠自定义字段硬撑。这种工具层面的约束,新人产品经理在做方案时根本绕不过去,作者后面会讲这块怎么选型吗?
工具和流程之间其实有先后。作者说状态是事后总结出来的,我同意,但我们实践下来发现,如果平台本身配置状态不需要开发介入,团队反而更容易随手加状态,膨胀速度比手工时代快得多。所以关键可能不是先设计几个状态,而是先定一个“加状态要谁批”的规则,不然三到五个状态的起步阶段撑不过两个月。