精益软件开发
以最少的浪费,创造最大的价值
思想谱系
| 阶段 | 核心思想 | 局限 / 转化 |
|---|---|---|
| 福特流水线 | 标准化、规模化、流水线生产 | 高效率但刚性强,容易产生库存浪费 |
| 丰田生产系统 TPS | JIT + 自働化 | 在资源有限条件下追求低库存、高质量 |
| 精益软件开发 | 把制造业精益思想映射到软件开发 | 库存 → WIP,生产线 → 开发流程 |
三大支柱
JIT:准时化
需要什么、什么时候需要、就生产多少。
软件中的对应:
- 按真实需求开发
- 少做提前设计
- 少堆积未完成任务
- 避免“为了以后可能用到”而开发功能
Jidoka:自働化
带有人判断能力的自动化。
软件中的对应:
- CI 红灯即停
- 测试失败阻塞合并
- 构建失败先修复,不继续堆代码
- 发现异常可以暂停发布流程
同构映射
把制造业概念翻译成软件开发概念。
| 制造业 | 软件开发 |
|---|---|
| 库存 | WIP:未完成工作 |
| 次品 | Bug / 缺陷 |
| 停线 | CI 失败阻塞合并 |
| 生产线 | 开发、测试、上线流程 |
| 拉动生产 | 按需求拉取开发任务 |
精益软件开发七大原则
| 原则 | 核心含义 |
|---|---|
| 消除浪费 | 不创造客户价值的活动都应减少 |
| 内建质量 | 质量要在开发过程中保证,而不是事后检查 |
| 创建知识 | 软件开发本质是持续学习和知识沉淀 |
| 推迟决策 | 在信息更充分时再做关键决策 |
| 快速交付 | 缩短从需求到上线的周期 |
| 尊重人 | 让团队有自主性、能力成长和心理安全 |
| 全局优化 | 优化完整价值流,而不是局部 KPI |
软件开发中的七种浪费
| 浪费类型 | 典型表现 |
|---|---|
| 部分完成的工作 | 未合并分支、半成品 PR、搁置需求 |
| 多余功能 | 用户不用的功能、过度配置 |
| 缺陷 | Bug、回归错误、返工 |
| 任务切换 | 同时做多个项目,频繁切换上下文 |
| 等待 | 等评审、等环境、等审批、等依赖 |
| 不必要复杂性 | 过度设计、抽象过多、提前扩展 |
| 重新学习 | 同样的问题反复踩坑,知识没有沉淀 |
浪费不是做得少,而是做了不该做的。
关键实践对应关系

工程师视角升级
| 层级 | 关注点 |
|---|---|
| 看见代码行 | 语法、API、函数实现 |
| 看见价值流 | 需求如何从想法变成上线功能 |
| 看见系统 | 团队、流程、客户、运维之间的反馈关系 |
| 看见人 | 尊重人的创造力、动机和成长 |