研发流程通常包含需求收集与确认、方案设计与评审、开发实现、测试验证、发布上线、上线后跟踪与复盘等环节。每个环节以上一环节的交付物为输入,通过评审和状态流转推进到下一环节。不同团队会按产品类型、交付节奏和风险等级裁剪环节,但需求确认、设计评审、测试验证和发布把关通常是多数组织保留的公共控制点。
要点总览(TL;DR)
- 研发流程通常包含需求收集与确认、方案设计与评审、开发实现、测试验证、发布上线、上线后跟踪与复盘六个环节,每个环节以上一环节的交付物为输入。
- 流程起点落在需求被评估确认并进入排期的那一刻,终点通常延续到上线观察期结束、复盘结论形成,发布上线本身只是交付动作完成。
- 环节之间靠评审节点做判断、交付物做依据、状态流转做记录,三者配合才能让流程稳定推进,状态字段本身不能替代评审。
- 研发流程关注工作如何从需求变成可交付成果,项目管理流程关注资源与进度控制,发布流程是研发流程末端的子过程,三者对象不同。
- 环节数量可以按风险裁剪,需求确认、设计评审、测试验证和发布把关是多数团队保留的底线,裁剪后用缺陷率和回退情况检验效果。
研发流程通常包含哪些环节
研发流程是一组围绕“把需求转化为可交付产品”的活动序列。它关注的是工作如何从想法推进到上线,以及每一步由什么交付物证明完成。按常见顺序,可以拆成六个环节。
| 环节 | 主要输入 | 核心动作 | 主要产出 |
|---|---|---|---|
| 需求收集与确认 | 用户反馈、业务目标、问题记录 | 收集需求、澄清范围、确认优先级和验收标准 | 已确认的需求说明、验收标准 |
| 方案设计与评审 | 已确认需求、现有系统约束 | 设计技术方案、交互方案,组织评审 | 设计文档、评审结论、任务拆分 |
| 开发实现 | 设计文档、任务清单 | 编码、单元测试、代码评审、联调 | 可运行的代码、开发自测记录 |
| 测试验证 | 开发完成的功能、测试用例 | 功能测试、回归测试、缺陷修复与验证 | 测试报告、缺陷关闭记录、可发布版本 |
| 发布上线 | 通过验证的版本、发布计划 | 发布审批、部署、上线检查 | 上线记录、发布说明 |
| 上线后跟踪与复盘 | 线上监控数据、用户反馈 | 观察运行指标、处理线上问题、复盘改进 | 监控结论、复盘记录、改进项 |
这六个环节是常见骨架,并非每个团队都必须完整保留。小需求可以合并设计与开发评审,低风险改动可以简化发布审批;涉及资金、安全或合规的功能,则往往在测试验证和发布之间增加专项检查。环节数量可以调整,但每个保留的环节都应有明确的输入、产出和完成判断,否则流程容易变成走过场。
环节之间的顺序也不是严格瀑布式。需求确认后可能发现方案不可行而退回补充需求,测试阶段可能发现设计缺陷而返工。流程的价值在于让这些回退有记录、有判断依据,而不是假设工作永远单向推进。
研发流程的起点与终点在哪里
判断研发流程的起点,可以看两个条件是否同时出现:有一个待解决的问题或待满足的需求,并且团队决定投入研发资源处理它。仅仅收到一条用户反馈,还停留在信息收集阶段;当这条反馈被评估、确认范围并进入排期,研发流程才算正式开始。因此,起点通常落在“需求确认”这个动作上,而不是“有人提出想法”的那一刻。
终点的判断同样需要明确标准。发布上线只是交付动作完成,研发流程通常延续到上线后的观察期结束:关键指标稳定、线上问题处理完毕、复盘结论形成,这一轮流程才真正收口。如果团队把上线当作终点,线上问题和改进项就容易失去归属,下一轮需求也缺少来自实际运行的输入。
以下事项通常不属于研发流程本身,而是它的上游或外围工作:
- 市场调研和商业机会判断:为需求提供背景,但发生在研发资源投入之前。
- 日常运维值班和基础设施巡检:属于运维流程,与研发流程在上线后交接。
- 绩效考核、人员招聘和预算审批:属于管理流程,不构成研发环节。
- 单个工作项的状态点击:是流程执行中的操作记录,不能替代环节定义。
把边界划清的好处是责任可交接。需求确认之前由业务和产品角色主导,上线观察期结束后移交给运营或下一轮规划,研发流程内部则聚焦在方案、实现和验证上。
各环节如何衔接:评审、交付物与状态流转
环节之间靠三样东西衔接:评审节点做判断,交付物做依据,状态流转做记录。三者配合,流程才能从上一环节稳定推进到下一环节。
评审节点的作用是形成明确的放行或退回结论。需求评审确认“做不做、做到什么程度”,设计评审确认“怎么做、风险在哪里”,发布评审确认“能不能上、出问题怎么回退”。评审要有参与角色、判断标准和结论记录,否则容易变成通知会。评审结论可以是通过、有条件通过或退回,退回时需指明补充什么材料。
交付物是交接的依据。下一环节的负责人依据上一环节的产出开展工作,而不是依赖口头同步。需求说明缺失验收标准,测试就无法设计用例;设计文档缺少接口约定,联调就会反复。交付物不必厚重,但要能让接手人独立判断工作是否具备开始条件。
状态流转把上述判断固化为可追踪的记录。一个需求从“待确认”到“已确认”,一个任务从“开发中”到“待测试”,一个版本从“测试通过”到“已发布”,每次变化都对应一次实际动作和责任人。状态字段的价值在于让团队看到工作停在哪、卡在谁那里,而不是替代评审本身。
在工具层面,ONES 可以把需求、任务、缺陷和版本放在同一条工作链路上管理,让需求确认、任务流转、评审结论和发布状态留有记录。团队据此查看某个需求当前处于哪个环节、上一环节的交付物是否齐全,减少靠会议和口头同步确认进度的情况。工具承载的是流程记录和交接依据,环节怎么设、评审怎么判,仍由团队自己定义。
研发流程与项目管理流程、发布流程的区别
这三个概念经常被混用,区别在于关注对象不同。研发流程关注“工作如何从需求变成可交付成果”,项目管理流程关注“资源、进度和风险如何被计划与控制”,发布流程关注“一个已完成的版本如何安全地交付到用户环境”。
| 对比项 | 研发流程 | 项目管理流程 | 发布流程 |
|---|---|---|---|
| 核心问题 | 工作按什么顺序做、每步产出什么 | 范围、时间、资源如何安排和跟踪 | 版本如何部署、验证和回退 |
| 主要对象 | 需求、设计、代码、测试、版本 | 项目计划、里程碑、风险、资源 | 发布包、环境、发布窗口、回退方案 |
| 典型产出 | 各环节交付物与评审结论 | 项目计划、进度报告、风险清单 | 发布计划、上线记录、回退预案 |
| 时间跨度 | 覆盖单轮需求到上线后观察 | 可跨多轮研发,按项目周期管理 | 集中在发布前后的一段窗口 |
研发流程与项目管理流程是交叉关系。一个项目可能包含多轮研发流程,项目管理流程为这些轮次安排优先级和资源;研发流程则规定每一轮内部怎么走。发布流程是研发流程末端的一个子过程,把“测试通过”推进到“用户可用”,并处理发布失败时的回退。
单工作项的状态操作与流程环节也不是一回事。把任务从“进行中”拖到“已完成”,只是记录了一次状态变化;流程环节还包含进入条件、评审判断和交付物要求。状态字段可以支撑流程执行,但设置几个状态、状态怎么命名,属于工具配置问题,不能反过来定义研发流程包含哪些环节。
一个具体例子:中型团队的需求到发布流程
以下为演示情景,用于说明环节如何串联,不代表特定团队的真实做法。某中型团队负责一款内部业务系统,每两周发布一次,团队约二十人,分为产品、开发、测试三个职能小组。
流程这样走:产品角色从客服和业务方收集问题,整理成需求条目,在需求评审会上确认范围和验收标准,输出已确认需求说明。开发负责人据此组织方案设计,涉及接口变更的部分邀请测试和运维参加设计评审,评审通过后拆分为开发任务。开发完成任务并自测后,代码合并进入待测试状态,测试角色依据验收标准设计用例,执行功能测试和回归测试,缺陷修复并验证关闭。发布前由开发和运维共同确认发布清单和回退方案,按发布窗口部署,上线后观察两天关键指标,随后组织复盘,把改进项转为下一轮需求。
这个例子中常见的误解有三类。第一类是把流程等同于审批,认为每个环节都要领导签字才算规范。实际上评审的核心是专业判断和结论记录,参与角色按风险确定,低风险改动可以由同组评审完成。第二类是把环节越多视为越规范,结果每个小改动都走完整六步,交付周期被拉长。合理的做法是按风险分级:涉及核心链路或数据变更的需求走完整流程,文案调整类需求合并设计与发布评审。第三类是只保留状态字段而省略交付物,看板上任务都在流动,但测试拿不到验收标准、运维看不到回退方案,流程表面顺畅、实际交接断档。
流程裁剪的合理做法是先确定不可省略的控制点,再对其余环节做合并或简化。对多数团队而言,需求确认、设计评审、测试验证和发布把关是底线;需求收集的形式、开发任务的拆分粒度、复盘的频率,都可以按团队节奏调整。裁剪之后应观察一段时间,看缺陷是否增加、发布是否频繁回退,用实际结果检验裁剪是否合适,而不是凭环节数量判断流程是否规范。
常见问题
小团队人少、角色兼任,研发流程的环节可以合并到几个?
角色兼任时,合并的重点是同一职能内部的相邻环节,例如产品与设计由一人承担时,需求确认和方案设计可以合并为一次评审,但评审结论仍需分别记录“做什么”和“怎么做”。开发与测试由同一人承担时,自测记录和测试用例可以合并成一份检查清单,验收标准仍要独立于开发过程确定。需求确认、测试验证和发布把关这三类控制点建议保留,因为它们分别对应范围判断、质量判断和交付判断,合并后容易失去独立视角。
需求在开发中途发生变更,流程上应该怎么处理?
变更本身是正常现象,关键是让变更走一次明确的判断,而不是在任务里悄悄改掉。可以先把变更内容记录为一条新的需求说明或变更单,说明影响范围:涉及哪些已完成的开发、测试用例是否需要重写、发布计划是否顺延。再由原需求评审的参与角色做一次快速评估,结论分为接受并调整计划、推迟到下一轮、拒绝三种。接受变更时同步更新验收标准和任务拆分,让测试和发布环节拿到的是最新版本,避免上线前才发现口径不一致。
流程已经定义了评审节点,但评审经常变成通知会,怎么改?
评审流于形式通常有三个原因:参与角色不明确、判断标准缺失、结论没有记录。可以先为每类评审固定最小参与角色,例如设计评审至少包含开发负责人、测试代表和受影响的接口方;再给出判断清单,比如设计评审看接口约定、数据变更、回退方案是否说清;最后要求每次评审留下结论,写明通过、有条件通过或退回,退回时列出需补充的材料。评审频率也可以按风险分级,低风险改动采用异步评审或同组评审,把会议时间留给高风险决策。
上线后跟踪要持续多久,什么时候算这一轮流程结束?
观察期长度取决于变更影响面和系统特性,常见做法是按风险设定:核心交易链路或数据迁移类变更观察时间更长,文案和界面调整可以短一些。判断结束的标准可以看三条是否满足:关键运行指标处于正常区间、本轮上线发现的线上问题已处理完毕或有明确归属、复盘结论和改进项已形成记录。三条满足后,把遗留改进项转入下一轮需求池,本轮流程收口。观察期不宜无限延长,否则责任边界模糊,下一轮规划也缺少清晰输入。
流程裁剪之后,怎么判断裁得对不对?
裁剪是否合适,用运行结果检验比用环节数量判断更可靠。可以观察几个信号:缺陷是否在测试后期或上线后才集中暴露、发布是否频繁触发回退、需求返工是否明显增多、交接处是否经常出现材料缺失。如果这些信号变差,说明被简化掉的环节承担了实际控制作用,需要恢复或换一种更轻的方式补上;如果信号稳定而交付周期缩短,说明裁剪有效。建议裁剪后先在一个或几个团队试行一段时间,再决定是否推广到其他团队。


















