《持续交付2.0系列一》从技术交付到业务引领

从技术交付到业务引领

适合谁:产品/研发/运维/项目经理,任何经历过"做了很多但产出很低"的团队

读完能拿到:一套识别伪交付的思维框架 + 一个自检工具 + 一份下周就能用的行动计划


一、引言:为什么你需要读这一章?

你有没有经历过这样的场景------

  • CI/CD 流水线搭了三天三夜,每天部署几十次,上线的功能用户无动于衷
  • 迭代评审会上每个人都说"我这周干了什么",没有人问"我们为什么要干这个"
  • 运维同学抱怨发布太频繁,研发同学抱怨需求总变,双方互相甩锅
  • 老板问"这个月交付了多少业务价值",你张不开嘴

如果以上有一条戳中了你,那这一章就是在回答你的问题。

核心矛盾一句话点破:技术交付能力 ≠ 业务能力。

持续交付1.0解决了"怎么快速交付",但没解决"该交付什么"。

持续交付2.0补上了这块短板------用精益思维把业务价值放回交付的中心。

读完这一章,你会获得一个全新的视角:交付不是把代码推到生产环境,而是把正确的价值传递给正确的用户。


二、软件工程的四次进化:每一次都是被逼出来的

理解持续交付2.0,首先要理解它从哪来。软件工程的演进不是谁拍脑袋发明的,而是每一步都被上一步的痛点逼出来的。

2.1 演进路线图

复制代码
瀑布模型          敏捷开发          DevOps         持续交付1.0      持续交付2.0
  |                |                 |                |                |
  v                v                 v                v                v
重计划重文档   拥抱变化短迭代   打破部门墙     自动化流水线    业务价值驱动
周期长反馈慢   开发阶段优化   全链路自动化   技术导向       做正确的事+正确地做事

2.2 瀑布模型:一切都很慢

复制代码
需求分析 --> 系统设计 --> 编码实现 --> 测试验证 --> 部署上线
   |           |           |           |           |
  完整文档    完整设计    完整代码    完整报告    完整发布
  • 优点:可控、可审计、适合合规要求高的行业
  • 致命缺陷:反馈周期太长。等你测完上线,市场需求可能已经变了。
  • 一句话:瀑布模型假设"需求是确定的"------但现实很少这样。

2.3 敏捷开发:快起来了,但只快了一半

  • 进步:短迭代、持续交付可运行软件、拥抱变化
  • 遗留问题:敏捷主要管好了"开发阶段",但开发完交给运维时,链条断了。
  • 经典场景:开发说"代码已合并到主干",运维说"你怎么又改配置?"

2.4 DevOps:把断裂的链条接上

复制代码
开发 ----+
         |
测试 ----+-->  全链路自动化:构建->测试->发布->部署->监控
         |
运维 ----+
  • 核心突破:开发、测试、运维在整个生命周期内深度融合
  • 关键手段:全链路自动化 + 文化变革
  • 遗留问题:解决了"怎么交付得快",但没解决"该交付什么"

2.5 持续交付1.0:流水线来了,但方向可能错了

复制代码
代码提交 -> 自动构建 -> 自动测试 -> 自动部署 -> 生产环境
           (秒级反馈)   (覆盖率保障)  (零停机)     (可回滚)
  • 核心贡献:部署流水线概念,让交付变得可重复、可预测
  • 关键局限:过度聚焦技术实现。团队可能每天部署50次,但50次都在交付错误的东西。
  • 这就是持续交付2.0诞生的原因

三、核心框架:双环模型------做正确的事,再正确地做

这是本章最核心的概念,也是全书的总纲。

3.1 什么是双环模型?

两个环,各司其职:

探索环(价值探索) 验证环(快速验证)
核心问题 我们该做什么? 我们做得对不对/好不好?
四个环节 提问 → 锚定 → 共创 → 精炼 构建 → 运行 → 监测 → 决策
指导思想 精益思想:消除浪费、拉动交付 技术实践:自动化、数据驱动
典型失败 做了很多功能,没人用 功能交付很快,但方向错了
类比 战略层:选对赛道 战术层:跑得快

3.2 探索环详解:从模糊到清晰

复制代码
  提问                    锚定                    共创                    精炼
  "用户到底需要什么?"   "我们假设的核心       "跨角色一起             "提炼出最小
  "为什么这个问题       价值假设是什么?"       brainstorm,           可行方案"
  重要?"                "谁是最早愿意           产品+研发+运维
                         付费的用户?"           一起参与"

每个环节的具体做法:

  1. 提问:不要从"我们要做一个XX功能"开始,而是从"用户遇到了什么痛点"开始
  2. 锚定:明确核心假设。比如"我们认为目标用户愿意为这个功能每月付10块钱"
  3. 共创:不是产品一个人画原型,而是拉研发、运维一起讨论可行性
  4. 精炼:把想法拆成最小可验证的增量------MVP

3.3 验证环详解:从假设到证据

复制代码
  构建                    运行                    监测                    决策
  "把方案变成             "以最小代价             "收集真实               "基于数据决定
  可运行的产品"           上线给真实用户           用户行为数据"           继续/调整/放弃"
  "自动化流水线"          "灰度发布/A-B测试"      "埋点、日志、监控"      "下一步行动"

关键认知:验证环的"监测"不是监控服务器有没有挂,而是监测"业务假设是否成立"。

3.4 双环咬合:缺一不可

复制代码
只做验证环(只对不快)          只做探索环(只快不对)
         |                              |
         v                              v
   技术很强,交付很快           想法很多,从不落地
   但交付的都是错的             停留在PPT和PRD里
   "高效地做无用功"             "完美的纸上谈兵"
         |                              |
         +--------------+---------------+
                        |
                        v
                 双环都闭合
              "做对的事,并且做好"

四、四项核心原则:从知道到做到

双环模型告诉你"做什么",四项原则告诉你"怎么做"。

原则一:坚持少做

复制代码
错误做法                          正确做法
  |                                |
  v                                v
[列出100个需求]              [找到1个核心假设]
[排期6个月]                  [2周内做出MVP]
[全部开发完成]               [上线获取反馈]
[上线]                       [基于反馈决定是否继续]
[没人用]
  • 核心思想:MVP思维。先做最小的可行方案,验证后再投入更多资源。
  • 落地技巧:需求评审时问"如果不做这个,最坏的结果是什么?"如果答案是可以接受,那就先不做。
  • 反例:花三个月做了一个"智能推荐引擎",上线后发现用户根本不需要推荐。
  • 正例:先用人工客服手动推荐一周,验证需求真实性,再考虑自动化。

原则二:持续分解问题

复制代码
大目标:"重构整个支付系统"
  |
  v
拆解为:
  ├── 步骤1:梳理现有支付流程(1天)
  ├── 步骤2:设计新的支付接口(2天)
  ├── 步骤3:实现核心支付功能(3天)
  ├── 步骤4:接入测试环境(1天)
  └── 步骤5:灰度上线(1天)
  每步都可独立验证,每步都有反馈
  • 核心思想:把大任务拆成小步快跑的迭代,降低单次交付风险。
  • 落地技巧:任何超过2周才能交付的任务,说明拆分还不够细。
  • 判断标准:每一步都应该能独立编译、独立测试、独立部署。

原则三:坚持快速反馈

复制代码
慢反馈循环(瀑布式)          快反馈循环(CD2.0式)
  |                                |
  v                                v
上线后一个月看报表          上线后一小时看指标
不知道好不好用              马上知道用户反应
发现问题时已无法挽回        可以快速调整方向
  • 核心思想:反馈越快,试错成本越低。
  • 落地技巧
    • 技术层面:CI流水线控制在10分钟以内
    • 业务层面:上线后24小时内必须有核心指标看板
    • 用户层面:建立用户反馈的快速通道(不是等季度调研)

原则四:持续改进并衡量

复制代码
没有衡量的改进 = 凭感觉
有衡量的改进 = 可复制的能力
  • 核心思想:所有改动都要设定可度量指标。
  • 落地技巧
    • 部署频率:每周几次?
    • 平均恢复时间(MTTR):出问题了多久恢复?
    • 变更失败率:多少部署导致了回滚?
    • 交付周期:从代码提交到上线需要多久?
  • 关键认知:不衡量就无法改进。你以为自己在改进,可能只是在原地踏步。

五、持续交付七巧板:你的组织缺哪一块?

作者用"七巧板"比喻持续交付2.0涉及的七个维度------必须像拼图一样,在正确的顺序和边界上把每块拼齐。

5.1 七巧板全景图

复制代码
           ┌─────────────────────────────┐
           │      组 织 文 化             │
      ┌────┴────┐     ┌────────────┐     │
      │         │     │            │     │
      │ 协作    │     │  部署      │     │
      │  方式   │     │  流水 线   │     │
      │         │     │            │     │
      ├─────────┤     ├────────────┤     │
      │         │     │            │     │
      │  软件   │     │  发布与    │     │
      │  架构   │     │  监测      │     │
      │         │     │            │     │
      ├─────────┴─────┴────────────┤     │
      │                            │     │
      │      分 支 与 集 成          │     │
      │                            │     │
      └─────────────────────────────┘     │
           ┌─────────────────────────────┐
           │      自 动 化 测 试          │
           └─────────────────────────────┘

5.2 七块拼图详解

序号 拼图名称 关键问题 典型工具/实践
组织文化 团队敢不敢试错? 心理安全感、 blameless postmortem
软件架构 能不能独立部署? 微服务、DDD、模块化
协作方式 产品/研发/测试/运维怎么配合? 跨职能团队、每日站会
部署流水线 代码到上线有多远? Jenkins/GitLab CI、自动化管道
分支与集成 多人协作会不会打架? 主干开发、Feature Toggle
自动化测试 改代码敢不敢不手动测? 单元测试、E2E测试、测试金字塔
发布与监测 上线后知道用户怎么用吗? 灰度发布、A/B测试、Prometheus

5.3 自检表:你的组织在哪个阶段?

复制代码
评分标准:每项 0=完全没有  1=刚开始  2=做得不错  3=成熟稳定

  组织文化    ████████░░  6/12   ← 偏弱
  软件架构    ██████████░░  8/12
  协作方式    ██████░░░░░░  4/12  ← 最弱
  部署流水线  ████████████░ 11/12 ← 最强
  分支与集成  █████████░░░  8/12
  自动化测试  ████████░░░░  6/12
  发布与监测  ███████░░░░░░ 6/12

总分:49/84
诊断:技术能力强(流水线11分),但协作和文化是短板。
建议优先补齐"协作方式"和"发布与监测"。

5.4 不同规模团队的拼装优先级

复制代码
初创团队(<20人):
  优先级:流水线 > 测试 > 分支 > 协作 > 架构 > 文化 > 监测
  理由:活下来最重要,先把东西做出来、推上去

中型团队(20-200人):
  优先级:协作 > 文化 > 测试 > 流水线 > 架构 > 分支 > 监测
  理由:规模化后协作瓶颈最先出现

大型团队(>200人):
  优先级:文化 > 架构 > 协作 > 监测 > 流水线 > 测试 > 分支
  理由:技术债和组织惯性是最大的敌人

六、业务落地:从本章到下周的行动计划

光看懂不够,得用起来。以下是分周的落地计划。

第一周:用双环模型重新审视一个在研项目

任务:选一个你目前正在做的项目,用下面的模板做一次"双环体检"。

复制代码
项目名:____________________

【探索环检查】
1. 我们真正要解决的问题是什么?(不是"要做什麼功能")
   _________________________________________________
2. 我们的核心假设是什么?
   _________________________________________________
3. 最小可行方案(MVP)是什么?
   _________________________________________________
4. 谁是最早愿意验证这个假设的用户?
   _________________________________________________

【验证环检查】
5. 我们如何快速构建MVP?
   _________________________________________________
6. 上线后用什么指标判断成功?
   _________________________________________________
7. 如果数据不好,我们有什么备选方案?
   _________________________________________________

【结论】
□ 探索充分,验证到位 ------ 继续推进
□ 探索不足 ------ 先回到探索环,想清楚再做
□ 验证不足 ------ 先设计好指标和监测方案再上线

第二周:落地一项核心原则

建议从"坚持少做"开始,因为这是最容易见效的。

具体行动

  1. 本周的需求评审会上,主动提出"我们先做MVP验证"的建议
  2. 把一个需求拆成两个版本:V0(最小可行)和 V1(完整版)
  3. 记录V0上线后的用户反馈,对比预期

第三周:搭建或优化一个反馈指标

不要试图一次性搭建完整的度量体系,先从最关键的1-2个指标开始。

推荐起步指标

  • 部署频率(每周几次?)
  • 变更失败率(多少次部署导致回滚?)
  • 交付周期(从代码提交到上线需要多久?)

第四周:做一次七巧板自检

用第五章的自检表,给团队打个分。不用追求满分,重点是找出最弱的那一块。


七、总结复盘

本章三个最重要的收获

  1. 交付的本质是传递业务价值,不是推送代码。 技术能力只是基础,业务能力才是核心。
  2. 双环模型缺一不可。 探索环保证"做正确的事",验证环保证"正确地做事"。只快不对或对而不快,都是伪交付。
  3. 精益思想是底层逻辑。 消除浪费、拉动交付、持续改进------这三条原则贯穿所有实践。

自我提问清单:你真的理解了吗?

回答下面5个问题,如果都能清晰作答,说明你吃透了本章:

  1. 如果一个团队部署频率很高但用户增长为零,问题出在哪一环?
  2. MVP和"偷工减料"有什么区别?
  3. 探索环的"精炼"环节和验证环的"决策"环节,分别回答什么问题?
  4. 为什么"持续分解问题"比"制定完美计划"更重要?
  5. 如果你的团队七巧板中"组织文化"得分最低,你会优先做什么?

延伸思考

  • 附录A提到了"软件工程的三次进化",建议读完本章后直接翻到附录,对照着看会有更深的理解。
  • 第二章"价值探索环"是对探索环的深度展开,第三章"快速验证环"是对验证环的深度展开。两章配合第一章的双环模型,构成完整的认知框架。

附录:本章核心概念速查表

概念 一句话解释
持续交付1.0 自动化流水线,解决"怎么快"的问题
持续交付2.0 业务价值驱动,解决"做什么才对"的问题
精益思想 消除浪费、拉动交付、持续改进
探索环 做正确的事:提问→锚定→共创→精炼
验证环 正确地做事:构建→运行→监测→决策
四项原则 坚持少做、持续分解、快速反馈、持续改进并衡量
七巧板 组织文化、软件架构、协作方式、部署流水线、分支与集成、自动化测试、发布与监测
MVP 最小可行产品,用最小成本验证核心假设

最后一句话:持续交付2.0不是一套工具,而是一种思维方式。它要求我们从"我能多快把代码推上去"转向"我能多准地把价值送到用户手里"。这个转变,从今天的一个问题开始:你现在正在做的这件事,用户真的需要吗?

相关推荐
Mr__Miss1 小时前
Java 随机数生成器选型指南:Random、ThreadLocalRandom 与 SecureRandom
java·开发语言·python
Zhu7581 小时前
在k8s环境部署Apache kafka4.3.1
容器·kubernetes·apache
if_you_can_please_do2 小时前
IDEA插件Maven开发版本管理小助手Maven With Me更新2.9.x版本啦,升版、快速搜索依赖、JDK切换等核心功能助力中大厂业务快速开发与迭代!
java·maven·intellij-idea
zzz_23682 小时前
【Java实习面试算法冲刺】动态规划
java·算法·面试
cfm_29142 小时前
SpringBoot自定义Starter
java·spring boot·后端
Demon_Hao2 小时前
Spring Boot 4、JDK 25 与 GraalVM:Java 云原生进化,能否撼动 Go 的地位?
java·spring boot·云原生
wuqingshun31415911 小时前
什么是责任链模式,一般用在什么场景?
java·责任链模式
:-)12 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
wuqingshun31415912 小时前
说一下消息队列的模型有哪些?
java