精益软件开发七条原则
- 尊重一线人员
工作在一线的人最了解实际情况,他们知道现在发生了什么,知道当前情况下的最佳应对方法; 他们熟知每天使用的工具、流程、规则,因而完全具备足够的知识提出改进意见; 要充分尊重一线人员的意见;
- 消除浪费
任何不增加价值的工作都是浪费;
没有人会去看的文档是浪费,不符合客户使用场景的需求是浪费,开发出来的特性不是用户最急需的是浪费,工作转交是浪费; 所有的Bug都是浪费; 尽量减低复杂性,减少重复劳动;仅做必要的工作;
- 增强学习
软件开发的过程是个不断学习的过程,团队需要不断地学习和积累有关如何才能做得更好的知识;
- 延迟决策
延迟决策意味着在获得足够的信息之前,不要草率下决定,或者在你不得不决策的时候才下决定; 譬如在需求不清晰的时候给出项目的时间估计,在没有充分调研的情况下决定采用某种技术; 采用Emergent Design;
- 嵌入质量
质量是在过程中产生的; 如果在开发流程的每一个阶段,都能保证产出物的质量,最终产品的质量就能以最低的代价实现; 过程中保证质量能大量减少浪费,质量是过程的一部分;
- 快速交付
快速交付的好处数不胜数,譬如能够使客户更早地得到产品价值,能使产品更快地投入市场;
- 整体优化
局部的优化,若不能带来整体的改善,将是没有价值的; 构造一个完整的产品