精益软件开发一词起源于Mary Poppendieck 和Tom Poppendieck写的一本同名书籍。这本书将传统的精益原则以一种新的方式呈现—作为22种 敏捷开发实践 之一,并且和其他工具进行了比较。
Mary 和 Tom’s 在敏捷软件开发社区中提出的改进,包括在 敏捷开发会议上的几次演讲,已经形成了被 敏捷开发社区广泛接受的概念。 例如:咨询公司NetObjectives 和C.C. Pace 就使用了“精益-敏捷”以及其他一些列入的概念。
和精益制造原则的概念相近,精益开发也可以总结为如下七条原则:
尊重一线人员
工作在一线的人最了解实际情况,他们知道现在发生了什么,知道当前情况下的最佳应对方法;
他们熟知每天使用的工具、流程、规则,因而完全具备足够的知识提出改进意见;
要充分尊重一线人员的意见;
消除浪费
消除浪费(或者叫muda,是丰田管理词典中的一种特殊的浪费)原则,最初是由Taiichi Ohno(丰田生产方式之父)的理念所采用的。他将如下行为视为浪费:
储存的等着被使用的汽车零配件生产任何不是马上就需要的产品不必要的配件移动等待其他配件被生产制造过程中多余的处理步骤缺陷(质量差) 换句话说,按照精益思维,任何不能为客户增加价值的行为即是浪费。包括:
不必要的功能和代码软件开发过程的延迟不明确的需求繁文缛节低效的内部沟通 为了消除浪费,首先必须能够识别、认识到浪费。如果某项活动可以被跳过或者没有这些活动也能达成最终的结果,那它就是浪费。在开发过程中作成但最终被废弃的代码是浪费。客户不经常使用的额外的处理和特性是浪费。等待其他活动、团队、处理是浪费。缺陷和低品质是浪费。不产生实际价值