<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>bytedepth</title>
<link>https://bytedepth.cn</link>
<description>bytedepth 最近发布的文章</description>
<atom:link href="https://bytedepth.cn/feed.xml" rel="self" type="application/rss+xml"/>
<lastBuildDate>Wed, 26 Aug 2026 13:55:56 +0800</lastBuildDate>
<item>
<title>05 软件工程综合实践：定义一个真实工程问题</title>
<link>https://bytedepth.cn/posts/problem-definition-software-engineering-practice</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/problem-definition-software-engineering-practice</guid>
<description>&gt; **TL;DR**：本篇用一个完整案例串起全专栏方法——为“交付周期变长”定义一个可操作的问题。流程：5W2H 检查完整性 → MECE 分解定位瓶颈 → 问题陈述卡（不预设方案）→ 利益相关者地图与边界声明 → 可证伪条件。最终产出是一页“问题定义记录”，让未参与者能理解一致、能指出薄弱点、能据此启动因果分析和决策流程。 --- ## 概念解释 ### 为什么要专门练习“定义问题” 大多数团队的瓶颈不在分析能力，而在问题定义——看到“交付变慢”就冲向“加人/催评审/上工具”，不检查到底慢在哪、是不是真正的问题、谁受影响。本篇把 5W2H、MECE、问题陈述卡和利益相关者地图串成一个端到端</description>
<pubDate>Wed, 26 Aug 2026 13:55:56 +0800</pubDate>
</item>
<item>
<title>04 利益相关者与边界：谁受影响、谁有事实、谁能决策</title>
<link>https://bytedepth.cn/posts/stakeholder-boundary-definition</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/stakeholder-boundary-definition</guid>
<description>&gt; **TL;DR**：边界不是客观世界中等待被圈出的盒子，而是观察者为某个决策做的判断——把它视为事实会漏掉被外部化的成本。利益相关者地图回答三个问题：谁受影响、谁掌握事实、谁有权决策。这三个角色经常不是同一群人。定义问题时最常犯的边界错误是“把依赖团队和用户当作外部”，导致局部方案把成本转移到了边界外。 --- ## 概念解释 ### 边界是判断而非事实 这是从 [系统、边界与目的](/posts/206) 继承的核心观点：边界取决于观察者和当前决策目标，没有脱离问题的“正确边界”。同一个发布平台，对平台团队是产品，对业务团队是基础设施，对安全团队是风险控制——三种边界服务于三种决策。 #</description>
<pubDate>Wed, 26 Aug 2026 13:55:42 +0800</pubDate>
</item>
<item>
<title>03 问题陈述：把现象转化为可操作的定义</title>
<link>https://bytedepth.cn/posts/problem-statement-definition</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/problem-statement-definition</guid>
<description>&gt; **TL;DR**：问题陈述是把模糊现象转化为可操作定义的产物。一份合格的问题陈述包含四个要素：目标状态、当前状态、量化差距、不预设方案。最常见的问题是“把方案藏在问题里”——“我们需要增加 Redis”不是问题陈述，是方案。“如何将读延迟从 200ms 降到 50ms 且不增加超卖风险”才是问题陈述。好的问题陈述让多个方案可以竞争，坏的问题陈述已经预设了唯一答案。 --- ## 概念解释 ### 问题陈述的定义 **问题陈述**是一段可被多人一致理解的文字，它描述“要解决的差距是什么”，而非“要做的方案是什么”。它回答：目标在哪里、现状在哪里、差多少、边界在哪。问题陈述是问题定义的核心产</description>
<pubDate>Wed, 26 Aug 2026 13:55:28 +0800</pubDate>
</item>
<item>
<title>02 MECE：互斥穷尽的分解原则</title>
<link>https://bytedepth.cn/posts/mece-decomposition-principle</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/mece-decomposition-principle</guid>
<description>&gt; **TL;DR**：MECE（Mutually Exclusive, Collectively Exhaustive）是麦肯锡提出的分解原则：每个层级的子项不重叠、合起来覆盖全部。MECE 不是一个工具而是一个**检查标准**——它告诉你分解是否合格，但不告诉你怎么分解。它的价值在于防止“重复计数”和“遗漏关键”，在问题定义和方案分类时都有用。常见误用：把 MECE 当成目标而非检查，为了形式上 MECE 而牺牲实际的洞察力。 --- ## 概念解释 ### MECE 的定义 **MECE** 是两个约束的缩写： - **Mutually Exclusive（互斥）**：同一层级的子项不重</description>
<pubDate>Wed, 26 Aug 2026 13:55:15 +0800</pubDate>
</item>
<item>
<title>01 5W2H：检查完整性的工具</title>
<link>https://bytedepth.cn/posts/5w2h-completeness-check</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/5w2h-completeness-check</guid>
<description>&gt; **TL;DR**：5W2H 用七个问题检查一个问题描述或行动计划是否完整，但它**只能暴露缺口、不能发现根因或比较方案**。5W2H 最常见误用是把它当成根因分析工具——它的 `Why` 是“为何重要或为何这样做”，不等同于 5 Whys 的连续追问。正确用法是：在“定义问题”阶段检查现状描述是否完整，在“设计行动”阶段检查计划是否完整，然后交给因果分析或决策工具完成深度分析。 --- ## 概念解释 ### 5W2H 的由来与定义 5W2H 是 What、Why、Who、When、Where、How、How much/many 七类问题的缩写。它的用途极其简单：**检查一个描述或计划是</description>
<pubDate>Wed, 26 Aug 2026 13:55:01 +0800</pubDate>
</item>
<item>
<title>00 问题定义总览：从现象到问题陈述</title>
<link>https://bytedepth.cn/posts/problem-definition-overview</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/problem-definition-overview</guid>
<description>&gt; **TL;DR**：问题定义是七阶段闭环里最容易被跳过的阶段——团队看到现象就冲向方案，不检查&quot;我们解决的到底是不是真正的问题”。问题定义的核心是把模糊的现象转化为可操作的问题陈述：明确目标（想要什么）、现状（当前在哪）、差距（差什么）、边界（不解决什么）。系统思维提供边界和目的，本专栏把“定义问题”独立深化为一套可审阅、可质疑、可修正的过程。 --- ## 概念解释 ### 问题定义 **问题定义**是把观察到的现象（“交付变慢了”“线上事故变多”）转化为一个可操作的问题陈述。它不解决现象本身，而是明确：目标状态是什么、当前状态是什么、差距在哪、谁受影响、边界在哪。一个被正确地定义的问题</description>
<pubDate>Wed, 26 Aug 2026 13:54:47 +0800</pubDate>
</item>
<item>
<title>05 软件工程综合实践：做一次能改变规则的复盘</title>
<link>https://bytedepth.cn/posts/retrospective-software-engineering-practice</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/retrospective-software-engineering-practice</guid>
<description>&gt; **TL;DR**：本篇用一个完整案例串起全专栏方法——为一次线上事故做端到端复盘。流程：无责时间线 → 促成条件与系统防线 → PDSA 对照假设 → 判断更新深度 → 产出可审阅的行动项与复查记录。最终产出是一页“复盘决策记录”，让未参与者能复述因果逻辑、判断更新是否到位。判断复盘是否有效，不看文档长度，看行动项是否改变了规则或信息流、复发率是否下降。 --- ## 概念解释 ### 什么是“能改变规则的复盘” 大多数复盘止于“总结经验教训”——它产出一句话“下次注意”，但不改变任何规则、信息流或结构。能改变规则的复盘至少产出一项**可验证的系统层更新**（改信息流、激励或结构），使同</description>
<pubDate>Wed, 26 Aug 2026 12:08:26 +0800</pubDate>
</item>
<item>
<title>04 单环、双环与系统学习：更新哪一层</title>
<link>https://bytedepth.cn/posts/single-double-loop-systems-learning</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/single-double-loop-systems-learning</guid>
<description>&gt; **TL;DR**：Chris Argyris 区分了三种学习深度：单环学习只问“动作对不对”，双环学习追问“规则和目标对不对”，系统学习改变信息流、激励和结构。大多数复盘停在单环——改动作不改规则。有效复盘必须有意识地追问“能不能改更深一层”，因为只调动作不改变系统条件，同类问题会反复出现。 --- ## 概念解释 ### 三种学习深度的定义 Chris Argyris 在《Double Loop Learning in Organizations》（HBR, 1977）中提出： - **单环学习**：行动结果与预期不符 → 调整动作/参数 → 不质疑规则和目标。类比：恒温器检测到温度偏</description>
<pubDate>Wed, 26 Aug 2026 12:08:14 +0800</pubDate>
</item>
<item>
<title>03 AAR 与迭代回顾：简洁高效的行动后学习</title>
<link>https://bytedepth.cn/posts/aar-iteration-retrospective</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/aar-iteration-retrospective</guid>
<description>&gt; **TL;DR**：AAR（After Action Review）是美国陆军发展的行动后学习方法，只用四个问题就能产出可复用的学习。迭代回顾是 AAR 在敏捷中的变体。两者都不追求完整 PDSA 的严谨，而是以极低成本在每次行动后快速提取“预期 vs 实际”的差距。核心纪律：写下来而非只在脑子里过一遍——**不落纸的学习等于没学**。 --- ## 概念解释 ### AAR 的由来与定义 **AAR**（After Action Review）由美国陆军在 1970 年代发展，后被企业管理领域广泛借鉴。它的设计原则是：**任何行动结束后，无论成功失败，都立即进行结构化回顾**。AAR 的</description>
<pubDate>Wed, 26 Aug 2026 12:08:03 +0800</pubDate>
</item>
<item>
<title>02 PDSA 循环：从预测到研究的知识生成</title>
<link>https://bytedepth.cn/posts/pdsa-cycle-knowledge-generation</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/pdsa-cycle-knowledge-generation</guid>
<description>&gt; **TL;DR**：PDSA（Plan-Do-Study-Act）是 W. Edwards Deming 提出的持续改进循环，核心不在 P 和 D，而在 **Study**——Deming 强调“研究”而非“检查成败”。PDSA 的独特价值是：每次行动前先写下预测，行动后对比预测与实际，从差距中提取知识。它不是“做了再看”，而是“预测了再做，研究了再学”。 --- ## 概念解释 ### PDSA 的由来与定义 **PDSA** 由 W. Edwards Deming 在其质量管理理论中提出，是 PDCA（Plan-Do-Check-Act）的演进版。Deming 在晚年将 Check 改</description>
<pubDate>Wed, 26 Aug 2026 12:07:51 +0800</pubDate>
</item>
<item>
<title>01 无责复盘：从时间线到系统防线</title>
<link>https://bytedepth.cn/posts/blameless-postmortem-system-defenses</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/blameless-postmortem-system-defenses</guid>
<description>&gt; **TL;DR**：无责复盘（Blameless Postmortem）是 Google SRE 推广的事后分析方法，核心原则是**归因到系统条件而非个人**。复盘回答“当时什么系统条件让这个行为合理且危险”，而非“谁做错了”。有效流程：时间线（事实与解释分离）→ 促成条件分析 → 系统防线缺口 → 可验证行动项。产出不是“加强培训”，而是改变信息流、工具和默认路径。 --- ## 概念解释 ### 无责复盘的由来与定义 **无责复盘**（Blameless Postmortem）由 Google SRE 团队在《SRE Book》中系统阐述。它的核心主张：**把事故归因于系统条件（流程、</description>
<pubDate>Wed, 26 Aug 2026 12:07:39 +0800</pubDate>
</item>
<item>
<title>00 复盘与学习总览：从行动结果到能力更新</title>
<link>https://bytedepth.cn/posts/retrospective-learning-overview</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/retrospective-learning-overview</guid>
<description>&gt; **TL;DR**：复盘不是“总结经验教训”，而是**把行动结果转化为可被检查、可被更新、可被他人复用的能力**。系统思维建模、因果与证据验证、决策与权衡选择之后，复盘与学习负责回答：结果说了什么、需要更新哪一层（动作/规则/目标/系统）、以及怎么让下次不同。关键区分：复盘产出的不是结论，而是**可审阅的更新记录**——当时相信什么、实际发生什么、该更新哪条规则。 --- ## 概念解释 ### 复盘与学习 **复盘**原指棋局的“复局”——对弈结束后重新摆棋，分析每一步的得失。在工程实践中，复盘是行动结束后系统性地回顾“预期 vs 实际”的差距，并据此更新模型、规则或系统能力。 **学习</description>
<pubDate>Wed, 26 Aug 2026 12:07:27 +0800</pubDate>
</item>
<item>
<title>附录：ADR 模板与示例</title>
<link>https://bytedepth.cn/posts/adr-template-and-example</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/adr-template-and-example</guid>
<description>&gt; **TL;DR**：本篇提供 ADR（架构决策记录）的空白模板与一个公认写得好的完整示例。模板遵循 Michael Nygard 的原始四要素结构，示例改编自业界广泛参考的微服务缓存决策案例。直接复制模板使用，对照示例检查完整度——**一篇合格的 ADR 不在于篇幅，而在于假设可证伪、后果含负向、放弃了什么被写明**。 --- ## 概念解释 ### ADR 模板的来源 Michael Nygard 在 2011 年的文章《Documenting Architecture Decisions》中提出的格式极其简洁：Context（上下文）、Decision（决策）、Consequences</description>
<pubDate>Tue, 25 Aug 2026 11:08:44 +0800</pubDate>
</item>
<item>
<title>决策与权衡综合实践：做一次可复盘的技术选型</title>
<link>https://bytedepth.cn/posts/decision-tradeoffs-software-engineering</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/decision-tradeoffs-software-engineering</guid>
<description>&gt; **TL;DR**：本篇用一个完整案例串起全专栏方法——为消息队列选型做一次可复盘的技术选型。流程是：判断门类型 → 列选项与维度 → 决策矩阵权衡 → Premortem 识别风险 → 写 ADR 记录假设与退出条件 → 预设回退路径。最终产出是一页“技术选型决策记录”，让选型过程可被审阅、假设可被证伪、回退可被执行。判断选型是否合格，不看上线后是否“没问题”，看证据链是否闭合、退出条件是否预设。 --- ## 概念解释 ### 技术选型作为决策问题 技术选型（如选消息队列、数据库、框架）是软件工程最高频的决策类型。它的难点不在“哪个技术更好”，而在“在当前团队、业务约束、未来不确定性下</description>
<pubDate>Tue, 25 Aug 2026 10:47:27 +0800</pubDate>
</item>
<item>
<title>Premortem与预承诺：在行动前发现失败路径</title>
<link>https://bytedepth.cn/posts/premortem-precommitment</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/premortem-precommitment</guid>
<description>&gt; **TL;DR**：Premortem（事前验尸）在决策执行前，假设“这个决策一年后失败了”，然后倒推失败原因。它把事后复盘的反思能力前置到还有机会调整的时刻。预承诺是配套机制：基于 Premortem 识别的风险，预先承诺“若出现 X 就做 Y”，避免事发后临时决策。两者配合，把单向门决策的失败成本从“事后救火”前移到“事前预防”。 --- ## 概念解释 ### Premortem 的由来与原理 **Premortem**（事前验尸）由心理学家 Gary Klein 于 2007 年在《Harvard Business Review》提出。它与传统的 postmortem（事后复盘）相</description>
<pubDate>Tue, 25 Aug 2026 10:47:11 +0800</pubDate>
</item>
<item>
<title>可逆性与双向门：降低决策的不可逆成本</title>
<link>https://bytedepth.cn/posts/reversibility-two-way-door</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/reversibility-two-way-door</guid>
<description>&gt; **TL;DR**：不是所有决策都值得同等慎重。Bezos 的门框架把决策分为双向门（可逆，快做）和单向门（不可逆，慎做），让分析投入匹配风险。关键认知：可逆性是**连续谱而非二元**——很多决策表面可回退却带隐性不可逆成本（数据已迁移、承诺已被依赖）。判断门类型的方法不是问“能不能撤销”，而是问“撤销的代价是否超过重做”。 --- ## 概念解释 ### 双向门与单向门 这两个概念由亚马逊创始人 Jeff Bezos 在 2016 年致股东信《2016 Letter to Shareholders》中明确提出。他用“门”比喻决策的不可逆性： - **双向门**（two-way door）</description>
<pubDate>Tue, 25 Aug 2026 10:46:55 +0800</pubDate>
</item>
<item>
<title>决策矩阵与权衡：在多目标下显式取舍</title>
<link>https://bytedepth.cn/posts/decision-matrix-trade-offs</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/decision-matrix-trade-offs</guid>
<description>&gt; **TL;DR**：决策矩阵把“凭直觉选”变成“显式权衡”——列出选项与评估维度，为每个交叉点打分或标注，让“为什么选 A 不选 B”成为可检查的推理。它的价值不在精确分数，而在**暴露权重假设**：当两个方案总分接近时，翻看哪个维度的权重决定了结果，就能发现你真正在权衡什么。矩阵不替你做决定，它让你的取舍可被审阅、可被质疑、可被修正。 --- ## 概念解释 ### 决策矩阵是什么 **决策矩阵**（Decision Matrix，又称 Pugh 矩阵或加权评分矩阵）是一种多准则决策工具：把候选方案作为行、评估维度作为列，为每个交叉点打分，再按维度权重加权求和，得出每个方案的总分。它最早</description>
<pubDate>Tue, 25 Aug 2026 10:46:40 +0800</pubDate>
</item>
<item>
<title>决策记录ADR：让技术决策可追溯可演进</title>
<link>https://bytedepth.cn/posts/adr-architecture-decision-records</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/adr-architecture-decision-records</guid>
<description>&gt; **TL;DR**：架构决策记录（ADR）是一份轻量文档，记录“做了什么决策、为什么、基于什么假设、放弃了什么”。它不是设计文档，而是决策的留痕——让半年后没人记得“为什么选了 A”时仍能回溯推理。ADR 的关键属性是可演进：新决策可取代旧决策，形成决策树而非孤立文件。一份合格的 ADR 必须包含上下文、决策、后果与假设，且**假设是可证伪的**——若假设不成立，决策应被推翻。 --- ## 概念解释 ### ADR 的由来与定义 **架构决策记录**（Architecture Decision Record，ADR）由 Michael Nygard 在 2011 年的文章《Documen</description>
<pubDate>Tue, 25 Aug 2026 10:46:24 +0800</pubDate>
</item>
<item>
<title>决策与权衡总览：从选项到可审阅的承诺</title>
<link>https://bytedepth.cn/posts/decision-tradeoffs-overview</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/decision-tradeoffs-overview</guid>
<description>&gt; **TL;DR**：决策不是“选最好的方案”，而是**在多目标、不确定性和约束下，做出可被审阅、可回退、可演进的承诺**。系统思维建模、因果与证据验证之后，决策与权衡负责把分析转化为选择。关键区分：可逆决策快做、不可逆决策慎做；决策质量不等于结果好坏——**过程可审阅、假设可回溯、退出条件预设，才是一个工程决策的交付物**。 --- ## 概念解释 在进入正文前，先讲清本专栏用到的核心概念——它们常被混用，但各自指向不同的认知任务。 ### 决策与权衡 **决策**是把多个可能行动收敛为一个承诺的认知动作。它由三层组成：选项（有哪些可能）、判断（哪个更优）、承诺（选定并执行）。**权衡**</description>
<pubDate>Tue, 25 Aug 2026 10:46:09 +0800</pubDate>
</item>
<item>
<title>软件工程综合实践：验证一次改进是否有效</title>
<link>https://bytedepth.cn/posts/causal-evidence-software-engineering</link>
<guid isPermaLink="true">https://bytedepth.cn/posts/causal-evidence-software-engineering</guid>
<description>&gt; **TL;DR**：本篇用一个完整案例串起全专栏方法——引入编程 Agent 后，交付周期是否真的缩短、质量是否守住。流程是：5W2H 与时间线固化事实 → 系统模型定位瓶颈 → 因果图显化混杂与中介 → 列竞争性解释 → 灰度/消融实验检验 → 指标护栏与 PDSA 复盘。最终产出是一页可照着执行的“证据化改进记录”，而非泛泛案例故事。判断改进是否有效，不看文档长度，看证据链是否闭合、护栏是否守住、模型是否被更新。 ## 目录 | 章节 | 说明 | |------|------| | [案例与系统边界](#案例与系统边界) | 引入 Agent 想缩短交付周期 | | [串起全流程](</description>
<pubDate>Mon, 24 Aug 2026 14:31:40 +0800</pubDate>
</item>
</channel>
</rss>