## 一、典型的软件开发流程（中国境内常见实践）

在中国，软件开发流程通常是**“类瀑布 + 敏捷迭代”的混合模式**，尤其在互联网公司最为常见。

整体流程可抽象为 8 个阶段：

```
立项 → 需求分析 → 产品设计 → 技术设计 → 开发 → 测试 → 上线 → 运维/迭代
```

下面逐阶段展开。

---

## 二、各阶段说明 + 核心文档

### 1️⃣ 立项阶段（项目启动）

**目标**：决定“做不做、为什么做、值不值得做”。

**参与角色**

* 业务负责人 / 产品负责人
* 技术负责人
* 管理层（评审）

**常见文档**

| 文档    | 说明             |
| ----- | -------------- |
| 项目立项书 | 项目背景、目标、范围、ROI |
| 可行性分析 | 技术、成本、周期、风险    |
| 项目章程  | 角色分工、里程碑       |

👉 政企项目中尤为正式，互联网内部项目可能简化。

---

### 2️⃣ 需求分析阶段（需求澄清）

**目标**：搞清楚“用户要什么、业务怎么跑”。

**核心角色**

* 产品经理（主导）
* 业务方
* 技术、测试参与评审

**关键文档**

* **PRD（重点，见下文详解）**
* 需求评审纪要
* 原型图（Axure / 墨刀 / Figma）

---

### 3️⃣ 产品设计阶段（方案细化）

**目标**：把“需求”变成“可交付的产品形态”。

**文档**

| 文档     | 内容        |
| ------ | --------- |
| 交互原型   | 页面跳转、流程   |
| UI 设计稿 | 视觉规范      |
| 业务流程图  | 状态流转、业务规则 |

> 在很多公司，**产品设计与需求分析阶段是合并的**。

---

### 4️⃣ 技术设计阶段（系统设计）

**目标**：回答“技术上怎么实现”。

**核心角色**

* 技术负责人 / 架构师
* 后端 / 前端 / 客户端

**关键文档**

| 文档                | 说明              |
| ----------------- | --------------- |
| **DDS（重点，见下文详解）** | 详细设计说明          |
| 架构设计说明            | 系统拆分、技术选型       |
| 接口文档              | API 定义（Swagger） |
| 数据库设计             | 表结构、索引          |

---

### 5️⃣ 开发阶段（编码实现）

**目标**：把设计变成代码。

**常见产物**

* 代码仓库（Git）
* Code Review 记录
* 开发自测说明

**中国公司特点**

* 强调 **PR / MR 审核**
* 常配合 Jira / TAPD / 禅道

---

### 6️⃣ 测试阶段

**目标**：验证功能、稳定性、安全性。

**文档**

| 文档   | 说明           |
| ---- | ------------ |
| 测试计划 | 测什么、怎么测      |
| 测试用例 | 功能 / 异常 / 边界 |
| 缺陷单  | Bug 记录       |

---

### 7️⃣ 上线发布阶段

**目标**：安全、可控地交付生产环境。

**文档**

* 上线方案
* 回滚方案
* 变更单（政企尤其严格）

---

### 8️⃣ 运维与迭代阶段

**目标**：稳定运行 + 持续优化。

**文档**

* 运维手册
* 监控指标说明
* 复盘文档

---

## 三、重点详解：PRD 是什么？

### 1️⃣ PRD 全称与含义

> **PRD = Product Requirements Document**
> 中文常称：**产品需求文档**

---

### 2️⃣ PRD 是“做什么”，不是“怎么做”

**PRD 解决的问题：**

* 用户是谁？
* 解决什么问题？
* 产品功能是什么？
* 业务规则是什么？
* 成功标准是什么？

**PRD 不关心：**

* 用什么语言
* 表怎么建
* 接口怎么拆

---

### 3️⃣ PRD 的典型结构（中国公司常见）

```text
1. 背景与目标
2. 用户画像
3. 使用场景
4. 功能需求列表
5. 业务规则
6. 非功能需求（性能、权限）
7. 异常与边界
8. 数据埋点（互联网常见）
```

---

### 4️⃣ PRD 的作者 & 读者

| 角色   | 是否主要使用 |
| ---- | ------ |
| 产品经理 | ✅ 编写   |
| 技术   | ✅ 理解需求 |
| 测试   | ✅ 编写用例 |
| 业务   | ✅ 验收   |

---

### 5️⃣ 中国语境下的特点

* PRD **非常详细**
* 常被当作“需求合同”
* 政企项目中甚至作为验收依据

---

## 四、重点详解：DDS 是什么？

### 1️⃣ DDS 全称与含义

> **DDS = Detailed Design Specification**
> 中文常称：**详细设计说明书**

⚠️ 注意：
不要和“数据分发服务（Data Distribution Service）”混淆。

---

### 2️⃣ DDS 是“怎么做”，不是“做什么”

**DDS 解决的问题：**

* 系统架构怎么拆？
* 模块职责是什么？
* 接口参数、返回值？
* 数据表怎么设计？
* 关键算法逻辑？

---

### 3️⃣ DDS 的典型结构

```text
1. 总体技术架构
2. 模块划分说明
3. 核心流程时序图
4. 接口设计（API）
5. 数据库设计（ER 图）
6. 异常与容错设计
7. 性能与并发考虑
```

---

### 4️⃣ DDS 的作者 & 读者

| 角色    | 是否主要使用   |
| ----- | -------- |
| 技术负责人 | ✅ 主导     |
| 开发工程师 | ✅ 实现依据   |
| 测试    | ◯ 理解技术边界 |
| 产品    | ◯ 辅助理解   |

---

### 5️⃣ 中国公司 DDS 的现实情况

| 公司类型      | DDS 情况  |
| --------- | ------- |
| 政企 / 传统软件 | 必须，极其正式 |
| 大厂        | 视项目而定   |
| 创业公司      | 常弱化或口头  |

---

## 五、PRD 与 DDS 的对比总结（重点）

| 维度   | PRD                           | DDS                           |
| ---- | ----------------------------- | ----------------------------- |
| 全称   | Product Requirements Document | Detailed Design Specification |
| 关注点  | 业务 & 产品                       | 技术 & 实现                       |
| 回答问题 | 做什么                           | 怎么做                           |
| 作者   | 产品经理                          | 技术负责人                         |
| 面向对象 | 产品 / 技术 / 测试                  | 开发 / 架构                       |
| 是否必须 | 几乎必须                          | 视项目规模                         |
| 中国特点 | 偏详细                           | 偏重形式化                         |

---

## 六、一句话总结（非常重要）

> **PRD 是业务视角的“需求合同”，DDS 是技术视角的“实现蓝图”。**

