返回架构笔记
Arch Day 105

Arch Day 105: 技术债管理(高级) — 今天的捷径,明天的利息

Arch Day 105: 技术债管理(高级) — 今天的捷径,明天的利息

2026-07-13
第四阶段 - 高阶融合
技术债SQALEWardCunningham优先级矩阵偿还策略量化

日期: 2026-07-13 (Day 105) 阶段: 第四阶段 - 高阶融合 标签: #技术债 #SQALE #WardCunningham #优先级矩阵 #偿还策略 #量化


核心概念

技术债是"今天的捷径,明天的利息"——但不是所有技术债都该还

Ward Cunningham在1992年首次提出"技术债"这个隐喻,将代码中的妥协比作金融借贷:

"发布第一版代码就像借债一样。少量的债务可以加速开发,只要通过重写及时偿还。如果不偿还,利息就会累积——每分钟花在不太正确的代码上的时间,都是这笔债的利息。" —— Ward Cunningham, 1992

这个金融隐喻之所以如此强大,是因为它让非技术人员也能理解技术妥协的代价。但很多人误解了Cunningham的原意——他说的是有意识的、谨慎的妥协,而非草率的代码质量问题。

2025-2026年技术债管理的新背景

  1. AI加速了代码产出,也加速了技术债积累——AI生成的代码可能不符合架构规范
  2. 技术债的"利率"在上升——微服务架构下,一处技术债可能影响整个服务网格
  3. 组织对技术债的容忍度在下降——快速迭代的市场环境下,技术债拖慢了交付速度

知识点详解

一、技术债分类——Ward Cunningham四象限

Martin Fowler在Cunningham概念的基础上提出了技术债四象限模型,将技术债按两个维度分类:

              谨慎的 (Prudent)          鲁莽的 (Reckless)
         ┌────────────────────┬───────────────────────┐
有意的    │ "我们知道这是妥协,  │ "我们没时间做设计"      │
(Deliberate)│  但现在必须先上线"  │                       │
         │                    │ → 最常见也最危险         │
         │ → 战略性债务        │ → 需要尽快偿还           │
         │   有计划地偿还      │                         │
         ├────────────────────┼───────────────────────┤
无意的    │ "现在我们才明白      │ "什么是分层架构?"      │
(Inadvertent)│  应该怎么做"       │                       │
         │                    │ → 能力不足导致            │
         │ → 学习型债务        │ → 需要培训+重构          │
         │   随经验自然改善     │                         │
         └────────────────────┴───────────────────────┘

四种技术债详解

1. 谨慎-有意(Prudent-Deliberate)——战略性债务

场景: "我们知道应该用事件驱动,但MVP阶段先用同步调用,
      上线后第二个Sprint偿还"

特征:
├── 团队清楚知道这是妥协
├── 有明确的偿还计划
├── 决策被记录在ADR中
└── 利息可控

处理: 记录 → 跟踪 → 按计划偿还

这是唯一"可以接受"的技术债

2. 鲁莽-有意(Reckless-Deliberate)——草率决策

场景: "没时间做代码审查了"
      "测试?上线再说"
      "先硬编码,反正以后会改"

特征:
├── 团队知道这样做不对
├── 但选择忽视质量标准
├── 通常源于不合理的deadline压力
└── 利息会快速累积

处理: 尽快偿还 + 根因分析(为什么要走捷径?)

这是最需要警惕的技术债——往往是组织文化问题的信号

3. 谨慎-无意(Prudent-Inadvertent)——学习型债务

场景: "当时我们用了最好的方案,但后来发现有更好的方法"
      "我们选了MySQL,现在才知道这个场景更适合Redis"

特征:
├── 做决策时团队是认真的
├── 但后来获得了新知识
├── 属于正常的学习和成长过程
└── 利息通常温和

处理: 评估改进的收益 → 如果值得就偿还

这是最"温和"的技术债——是创新和学习的正常副产品

4. 鲁莽-无意(Reckless-Inadvertent)——能力不足

场景: "写了一个God Class(上帝类),因为不知道SOLID原则"
      "把密码明文存数据库了"

特征:
├── 团队不知道自己在制造技术债
├── 源于知识或经验不足
├── 可能长期潜伏不被发现
└── 利息可能很高(安全债务尤其危险)

处理: 代码审查发现 → 培训 → 重构

需要投资于团队能力建设

二、SQALE方法论详解

SQALE(Software Quality Assessment based on Lifecycle Expectations)是一种系统化的技术债量化方法,被SonarQube等工具广泛采用。

SQALE的核心思想

SQALE将技术债视为"金融组合"(Financial Portfolio),从两个维度度量:

技术债的两个成本维度:

1. 修复成本(Remediation Cost)
   └── 修复这个问题需要多少时间?
   └── 例: 重构这个God Class需要3天

2. 利息成本(Interest Cost)
   └── 不修复这个问题,每个月要多付出多少?
   └── 例: 因为这个God Class,每次修改要多花2小时

技术债净值 = 修复成本
技术债利率 = 利息成本 / 修复成本

SQALE质量模型

SQALE定义了一组分层的质量特征:

SQALE质量模型(从高到低优先级):

Level 1: 可测试性 (Testability)
├── 单元测试覆盖率
├── 测试可运行性
└── 测试隔离性

Level 2: 可靠性 (Reliability)
├── Bug密度
├── 异常处理完整性
└── 资源泄漏

Level 3: 可变更性 (Changeability)
├── 圈复杂度
├── 代码重复
├── 耦合度

Level 4: 效率 (Efficiency)
├── 算法复杂度
├── 资源使用效率
└── 性能瓶颈

Level 5: 安全性 (Security)
├── 注入漏洞
├── 认证缺陷
└── 数据暴露

Level 6: 可维护性 (Maintainability)
├── 命名规范
├── 注释完整性
└── 代码结构清晰度

Level 7: 可移植性 (Portability)
├── 平台依赖
├── 硬编码配置
└── 环境特定代码

SonarQube中的SQALE实践

SonarQube输出示例:

项目: payment-service
技术债总量: 45天(修复所有问题需要45人天)
技术债比率: 12.3%(技术债时间/开发时间)

按特征分布:
├── 可靠性: 15天 (33%)  ← 最需要关注
│   ├── Bug: 23个
│   └── 严重度: Critical 5, Major 12, Minor 6
├── 可维护性: 12天 (27%)
│   ├── Code Smell: 156个
│   └── 代码重复: 8.2%
├── 安全性: 8天 (18%)
│   ├── Vulnerability: 7个
│   └── Security Hotspot: 15个
├── 可变更性: 7天 (16%)
│   └── 圈复杂度>15的方法: 12个
└── 其他: 3天 (6%)

趋势:
├── 上月技术债: 42天
├── 本月技术债: 45天
├── 新增: +5天
├── 偿还: -2天
└── 净增: +3天 ← 技术债在增长!

三、技术债可视化

四象限优先级矩阵

            高影响
              │
    ┌─────────┼─────────┐
    │ 第二优先 │ 第一优先 │
    │         │         │
    │ 高影响   │ 高影响   │
    │ 高成本   │ 低成本   │
    │         │         │
    │ "规划偿还"│ "立即偿还"│
────┼─────────┼─────────┼────
    │ 第四优先 │ 第三优先 │
    │         │         │
    │ 低影响   │ 低影响   │
    │ 高成本   │ 低成本   │
    │         │         │
    │ "接受/   │"顺手偿还"│
    │  忽略"   │         │
    └─────────┼─────────┘
              │
            低影响
    高修复成本 ←──────→ 低修复成本

各象限策略

象限影响成本策略示例
第一优先立即偿还修复安全漏洞、消除代码重复
第二优先规划偿还(专项Sprint)重构核心模块、架构改造
第三优先顺手偿还(Boy Scout)改善命名、添加注释
第四优先接受或忽略老旧但稳定的模块

技术债热力图

按模块可视化技术债分布:

模块            技术债(天)  变更频率  风险等级  优先级
─────────────  ────────  ───────  ──────  ─────
支付核心         ████████  高       高      P0
用户认证         ██████    中       高      P1
订单处理         █████     高       中      P1
报表系统         ████      低       低      P3
管理后台         ███       低       低      P4
通知服务         ██        中       低      P3

颜色: 🔴 高危 (>10天) 🟡 中危 (5-10天) 🟢 低危 (<5天)

关键洞察:
├── 支付核心是"高技术债+高变更频率+高风险"的危险组合
├── 报表系统虽有技术债但变更频率低,可以暂缓
└── 用户认证的安全债务需要优先处理

四、技术债偿还策略

1. Boy Scout规则(童子军规则)

"离开营地时,让它比你来时更干净"

原则: 每次修改代码时,顺手改善一点
├── 改善变量命名
├── 提取重复代码为方法
├── 添加缺失的注释
├── 补充单元测试
└── 修复简单的Code Smell

适用: 低成本的第三象限技术债
投入: 每次PR增加10-15分钟
累积效果: 每月自动偿还10-20%的低级技术债

2. Tech Debt Sprint(技术债冲刺)

每N个Sprint专门安排一个"技术债Sprint":

Sprint 1: 业务功能
Sprint 2: 业务功能
Sprint 3: 业务功能
Sprint 4: 技术债冲刺 ← 专门偿还技术债
Sprint 5: 业务功能
...

Tech Debt Sprint内容:
├── 优先处理P0/P1技术债
├── 重构高风险模块
├── 升级依赖版本
├── 补充测试覆盖
└── 清理废弃代码

优点: 集中时间解决大问题
缺点: 可能被业务需求挤占("这个Sprint改做新功能吧")

3. 20%规则

Google著名的"20%时间"应用于技术债:

每个Sprint预留20%的容量用于技术债偿还:
├── 10个Story Point的Sprint
├── 8个用于业务功能
└── 2个用于技术债偿还

优点:
├── 持续偿还,不会积累
├── 不需要专门的Sprint
└── 团队养成习惯

缺点:
├── 大型技术债需要拆分
└── 需要产品经理的理解和支持

4. Refactoring Day(重构日)

每月固定一天作为"重构日":

重构日规则:
├── 所有开发者参与
├── 不做新功能
├── 专注于代码质量改善
├── 结对编程偿还技术债
└── 结束时展示改善成果

适合:
├── 团队规模中等(5-20人)
├── 技术债需要团队协作解决
└── 培养团队的重构能力

5. 战略性偿还计划

对于大型技术债(如架构改造),需要长期计划:

评估 → 量化 → 排优先级 → 制定路线图 → 分期执行

路线图示例:
Q3 2026:
├── 偿还支付核心的God Class(10天)
├── 引入领域事件替代直接调用(8天)
└── 补充核心场景测试覆盖到80%(5天)

Q4 2026:
├── 数据库连接池重构(3天)
├── 日志规范化改造(5天)
└── 依赖版本全面升级(3天)

Q1 2027:
├── 用户认证模块安全加固(8天)
├── API规范统一化(10天)
└── 监控覆盖完善(5天)

五、技术债的"管理层语言"

架构师面临的最大挑战之一:如何让不懂技术的管理层理解技术债的严重性?

月利息计算

将技术债翻译为金钱:

场景: 支付模块有一个设计缺陷,每次修改需要多花2天调试

计算:
├── 该模块每月修改3次
├── 每次多花2天(16人时)
├── 开发者日均成本: ¥3000
├── 月利息 = 3次 × 2天 × ¥3000 = ¥18,000
├── 年利息 = ¥18,000 × 12 = ¥216,000

修复成本: 5天 × ¥3000 = ¥15,000

ROI = ¥216,000 / ¥15,000 = 14.4倍!

话术: "投入1.5万修复,每年节省21.6万,1个月回本"

风险等级转化

将技术风险翻译为业务风险:

技术语言                      → 管理层语言
─────────────────────────── → ──────────────────
"代码耦合度高"                → "新功能开发速度越来越慢,
                                竞争对手半个月上线,我们要3个月"
"测试覆盖率低"                → "每次上线都有30%概率出故障,
                                每次故障损失¥50万"
"依赖版本过旧"                → "存在已知安全漏洞,
                                被黑客利用的概率每月增加10%"
"架构不支持横向扩展"           → "明年用户翻倍时系统会崩溃,
                                需要6个月紧急重构"
"单点故障"                    → "这台服务器坏了,
                                整个业务停摆,预计损失¥100万/小时"

对交付速度的影响

技术债如何拖慢团队(用图表展示):

                    无技术债     有技术债
Sprint 1:          8 SP         8 SP
Sprint 2:          8 SP         7 SP
Sprint 3:          8 SP         6 SP
Sprint 4:          8 SP         5 SP
Sprint 5:          8 SP         4 SP
Sprint 6:          8 SP         3 SP

6个Sprint总交付:   48 SP        33 SP

差距: 15 SP = 31% 的生产力损失

话术: "我们团队的速度正在下降。如果不处理技术债,
      到年底我们的效率会下降到现在的40%。"

管理层报告模板

## 技术债月度报告 — 2026年7月

### 摘要
- 技术债总量: 45人天(约¥135,000修复成本)
- 月利息: ¥72,000(持有这些债务每月的额外成本)
- 趋势: ↑ 环比增加3天(正在恶化)

### 关键风险
1. 🔴 支付模块安全漏洞(CVE-2026-xxxx)
   - 影响: 被利用可能导致数据泄露
   - 修复成本: 2天 / ¥6,000
   - 建议: 本周修复(P0)

2. 🟡 核心模块性能劣化
   - 影响: P99延迟从200ms增加到800ms
   - 每月业务损失: 约¥30,000(用户流失)
   - 修复成本: 8天 / ¥24,000
   - 建议: 本月内完成

### 偿还计划
本月计划偿还: 10天
├── P0安全债: 2天
├── P1性能债: 8天
└── 预计月利息减少: ¥40,000

### 投资回报
本月投入: ¥30,000(10天修复成本)
预计年节省: ¥480,000
投资回报期: 0.75个月

六、技术债的"利率"概念

不同类型的技术债有不同的"利率"——有些债务的利息很高(经常进入的代码区域),有些很低(几乎不碰的代码)。

利率评估模型:

高利率(每月都在付出代价):
├── 核心业务逻辑中的技术债(每天都在开发这块代码)
├── API接口的设计缺陷(每个消费者都受影响)
├── 数据库Schema问题(每次查询都受影响)
└── 安全漏洞(每天都面临被攻击的风险)

低利率(偶尔付出代价):
├── 很少修改的模块("沉睡代码")
├── 内部工具的UI问题
├── 非关键路径的性能问题
└── 过时但功能正常的依赖

零利率(实际上不是债务):
├── 已经不再使用的功能
├── 即将退役的系统
└── 一次性脚本/工具

关键洞察:
"高利率的小债务"比"低利率的大债务"更应该优先偿还

公式: 优先级 = 影响面 × 频率 × 严重度 / 修复成本

对比分析

技术债偿还策略对比

策略持续性解决力度组织阻力适用场景
Boy Scout最强最低低级Code Smell
20%规则中等技术债
Refactoring Day需要协作的重构
Tech Debt Sprint大型架构债务
战略性计划最高最高系统级改造

量化方法对比

方法精确度成本自动化适用
SQALE/SonarQube中高代码级债务
专家评估架构级债务
速度衰减整体趋势
故障成本可靠性债务
利息计算管理层汇报

架构设计实操:建立技术债评估模型

分类

technical_debt_taxonomy:
  categories:
    - name: "代码债务"
      description: "代码质量、复杂度、重复"
      detection: "SonarQube自动检测"
      examples:
        - "圈复杂度>15的方法"
        - "代码重复率>5%"
        - "God Class (>500行)"

    - name: "设计债务"
      description: "架构决策、模式选择"
      detection: "ArchUnit + 人工评审"
      examples:
        - "分层架构违规"
        - "循环依赖"
        - "缺少防腐层"

    - name: "测试债务"
      description: "测试覆盖、测试质量"
      detection: "覆盖率工具 + 人工评审"
      examples:
        - "核心模块覆盖率<60%"
        - "无集成测试"
        - "脆弱测试(Flaky Tests)"

    - name: "基础设施债务"
      description: "部署、配置、环境"
      detection: "IaC扫描 + 运维审查"
      examples:
        - "手动部署流程"
        - "缺少IaC"
        - "环境不一致"

    - name: "依赖债务"
      description: "第三方依赖过旧/不安全"
      detection: "Snyk/Dependabot自动检测"
      examples:
        - "依赖有已知CVE"
        - "使用EOL版本"
        - "依赖版本落后>2个主版本"

    - name: "文档债务"
      description: "缺少或过时的文档"
      detection: "人工评审"
      examples:
        - "API文档与实现不一致"
        - "架构图过时>6个月"
        - "无运维手册"

    - name: "安全债务"
      description: "安全缺陷和合规差距"
      detection: "SAST/DAST + 安全审计"
      examples:
        - "已知安全漏洞未修复"
        - "不安全的默认配置"
        - "缺少输入验证"

量化

quantification:
  per_item:
    fields:
      - name: "修复成本(人天)"
        type: "number"
        source: "专家评估 或 SQALE自动计算"

      - name: "月利息成本(元)"
        type: "number"
        formula: "extra_hours_per_incident × incidents_per_month × hourly_rate"

      - name: "影响范围"
        type: "enum"
        values: ["单模块", "多模块", "全系统", "面向客户"]

      - name: "变更频率"
        type: "enum"
        values: ["高(每周)", "中(每月)", "低(每季度)", "极低(每年)"]

      - name: "风险等级"
        type: "enum"
        values: ["P0-关键", "P1-重要", "P2-一般", "P3-轻微"]

  scoring:
    formula: "priority_score = impact × frequency × severity / remediation_cost"
    impact_weights:
      "面向客户": 4
      "全系统": 3
      "多模块": 2
      "单模块": 1
    frequency_weights:
      "高": 4
      "中": 3
      "低": 2
      "极低": 1
    severity_weights:
      "P0": 4
      "P1": 3
      "P2": 2
      "P3": 1

优先级

prioritization:
  matrix:
    p0_immediate:
      criteria: "priority_score > 8 OR 安全漏洞(Critical/High)"
      action: "当前Sprint立即处理"
      sla: "1周内修复"

    p1_planned:
      criteria: "priority_score 5-8"
      action: "排入下一个Sprint"
      sla: "1个月内修复"

    p2_scheduled:
      criteria: "priority_score 3-5"
      action: "排入技术债Backlog"
      sla: "1个季度内修复"

    p3_boy_scout:
      criteria: "priority_score < 3"
      action: "Boy Scout规则顺手修"
      sla: "无强制时间"

    p4_accept:
      criteria: "低影响 AND 高成本 AND 低频率"
      action: "接受(记录但不修复)"
      review: "每季度重新评估"

偿还路线图

roadmap:
  q3_2026:
    budget: "20%团队容量(约40人天)"
    items:
      - id: "TD-001"
        description: "支付模块安全漏洞修复"
        priority: "P0"
        cost: "2天"
        expected_savings: "消除数据泄露风险"

      - id: "TD-005"
        description: "核心模块性能优化"
        priority: "P1"
        cost: "8天"
        expected_savings: "月节省¥30,000"

      - id: "TD-012"
        description: "测试覆盖率提升到80%"
        priority: "P1"
        cost: "15天"
        expected_savings: "减少50%上线故障"

      - id: "TD-008"
        description: "依赖版本升级"
        priority: "P2"
        cost: "5天"
        expected_savings: "消除23个已知CVE"

    total_cost: "30天"
    total_expected_annual_savings: "¥960,000"
    roi: "32倍"

  q4_2026:
    budget: "20%团队容量"
    items:
      - id: "TD-003"
        description: "数据库Schema重构"
        priority: "P1"
        cost: "20天"
      # ...

KPI度量

kpis:
  leading_indicators:
    - name: "技术债总量趋势"
      target: "季度环比不增长"
      measurement: "SonarQube技术债天数"

    - name: "新增技术债速率"
      target: "< 偿还速率"
      measurement: "每Sprint新增vs偿还的技术债天数"

    - name: "P0/P1债务数量"
      target: "< 5个"
      measurement: "待修复的P0/P1技术债项目数"

  lagging_indicators:
    - name: "交付速度"
      target: "不下降"
      measurement: "Sprint Velocity趋势"

    - name: "故障率"
      target: "月度环比下降"
      measurement: "变更导致的故障次数/变更总数"

    - name: "开发者满意度"
      target: "> 4/5"
      measurement: "季度开发者体验调查"

  reporting:
    frequency: "月度"
    audience: "管理层 + 架构委员会"
    format: "Dashboard + 一页报告"

AI增强

AI在技术债管理中的应用

  1. AI辅助技术债识别

    • AI扫描代码库,识别传统工具无法发现的"隐性"技术债
    • 分析代码变更历史,发现"频繁修改但质量低"的热点
    • 预测哪些技术债最可能导致未来的故障
  2. AI量化利息成本

    • 分析Git历史,计算每个模块的"额外时间成本"
    • 预测技术债对未来交付速度的影响
    • 自动生成管理层可理解的ROI分析
  3. AI辅助重构

    • AI生成重构建议和代码改善方案
    • 自动识别安全的重构操作(不改变行为)
    • 生成重构前后的对比测试
  4. AI技术债预警

    • 在Pull Request阶段识别即将引入的技术债
    • 评估新代码对整体技术债的影响
    • 推荐替代方案减少技术债引入

2025-2026年的新趋势

AI编码助手(Copilot等)既是技术债的制造者也是解决者:

  • 制造:AI生成的代码可能不符合项目架构规范,引入"无意-鲁莽"型技术债
  • 解决:AI可以大规模识别和修复代码级技术债,如批量改善命名、添加测试、修复Code Smell

关键策略:将架构规范和编码标准编码到AI助手的上下文中,让AI"按规范生成代码"。


Web3关联

智能合约的"技术债"

区块链世界的技术债更加极端——因为智能合约不可变:

  1. 不可变性放大了技术债:传统代码可以重构,智能合约部署后无法修改
  2. Gas优化vs可读性:为了节省Gas费的极端优化让代码难以维护
  3. 升级机制本身就是技术债:Proxy模式让合约可升级,但增加了复杂性和安全风险
  4. 审计成本:每次变更都需要安全审计,技术债的偿还成本极高

启示:在Web3中,"谨慎-有意"的技术债尤其重要——每个妥协都需要被记录和追踪,因为修复的窗口可能很小。


今日思考

技术债管理的核心洞察:不是所有技术债都该还

第四象限(低影响+高成本)的技术债,明智的选择是"接受它"——把有限的资源投入到ROI最高的地方。这和金融投资的原则完全一致——不是要零负债,而是要管理好负债水平和结构。

最难的部分不是识别和量化技术债(工具已经很成熟),而是说服管理层投资偿还。把技术债翻译成金钱语言是关键技能——"每月利息¥72,000""投入¥30,000修复,年节省¥96万,1个月回本"——这些数字比任何技术论述都有说服力。

2025-2026年的新变化:AI让技术债的识别和修复效率提升了数倍,但同时也在制造新的技术债。架构师需要建立"AI-aware"的技术债治理体系。


面试题

Q1: 如何量化技术债?

30秒回答:两个维度量化——修复成本(修复需要多少人天,SonarQube可自动计算)和利息成本(不修复每月额外付出多少,基于变更频率和每次额外时间计算)。用ROI打动管理层:"投入X修复,年节省Y,Z个月回本。"

2分钟详细回答

技术债量化的三层方法:

  1. 代码级量化(自动化):SonarQube + SQALE模型自动计算。给出技术债总量(人天)、按类别分布、按模块分布。适合代码质量类债务
  2. 架构级量化(专家评估):架构师评估每个架构债务的修复成本和影响范围。使用优先级矩阵(影响×成本)排序
  3. 业务级量化(金钱转化):将技术债翻译为管理层语言——月利息(每月因技术债多花的钱)、风险等级(被攻击/宕机的概率和损失)、交付速度影响(技术债导致每Sprint少交付多少需求)

追问准备

  • 如何衡量"隐性技术债"?→ 分析交付速度趋势(Velocity衰减)、故障频率、开发者调查
  • 技术债是零好还是有一些好?→ 适度的"谨慎-有意"技术债是正常的,零技术债意味着过度工程

Q2: 如何说服管理层投资偿还技术债?

30秒回答:三招——第一,用金钱说话("每月利息¥7万,修复只需¥3万,1个月回本");第二,用风险说话("安全漏洞不修复,数据泄露概率每月增加10%");第三,用交付速度说话("技术债让团队效率下降了30%,偿还后可恢复")。

2分钟详细回答

说服管理层的核心是"说他们的语言":

  1. 金钱语言:量化月利息成本和修复ROI。"这个Bug每月让我们多花¥5万处理客户投诉。修复成本¥2万。不修复的话1年损失¥60万"

  2. 风险语言:将技术风险转化为业务风险。"这个依赖有已知安全漏洞,如果被利用可能导致数据泄露,根据行业统计平均损失¥500万+声誉损害"

  3. 速度语言:展示技术债对交付的影响。"上个季度团队速度下降了25%,主要原因是XX模块的技术债。偿还后预计恢复到正常速度"

  4. 竞争语言:将技术能力与竞争优势关联。"竞争对手每2周上线一个新功能,我们需要6周。差距主要在技术债"

不要做的事:

  • 不要用技术术语("圈复杂度太高"→管理层听不懂)
  • 不要一次申请大预算("3000万全面重构"→会被拒绝)
  • 不要只说问题不说方案(要有具体的偿还计划和ROI)

学习资源


明日预告

明天我们将进入新的主题——性能工程(高级)。从性能测试到性能调优,从JVM调优到数据库优化,我们将学习如何系统性地发现和解决性能问题,以及如何建立性能工程的组织能力。