作者:Chris Sims译者 李忠利 来源:InfoQ 酷勤网收集 2008-09-04
在最近一篇博客中,Martin Fowler解释了"应该用精益软件开发方法而不是敏捷软件开发吗?"这个问题,他说这是基于一种错误的假设。敏捷和精益的思想相互交织如此之深,以至于你在使用敏捷的时候也总在做精益的事情,反之亦然。我们可以考察它们发展过程的变化,发现它们内在关联的描述,这样更有趣、更有启发性。
Martin Fowler开始简单解释了精益概念的历史,他说,有关精益概念的历史根源可以追溯到20世纪50年代发展起来的精益制造和丰田生产系统。这个系统和它蕴含的思想,为日本制造业,尤其是丰田公司,赢得了广泛的信誉。
在任一款基于精益制造和丰田生产系统的工作方法中,精益已经开始作为一个涵盖性的术语在使用了,包括精益建造,精益实验室,以及精益软件开发。
敏捷也是一个涵盖性的术语,它被用在诸如Scrum和XP这些分享敏捷核心原则的开发方法中。当一些人说他们正在用敏捷软件开发的时候, 这可能意味着他们正在使用敏捷开发方法中的任何一个,或者是几种方法的混合,或者只是简单将敏捷的核心原则应用于工作中。
许多对敏捷贡献良多的人都受到了精益生产以其所蕴含的思想的影响,在精益和敏捷上,我们可以看到他们的很多共性:
1)以人为中心
2)授权给团队
3)自适应规划
4)持续改进
在Mary Poppendieck、Tom Poppendieck、Alan Shalloway和其他人的努力下, 一个精益软件开发社区已经形成。这个社区不同于其他的Scrum、XP、DSDM和FDD等社区,然而,所有这些社区都是敏捷意义下的社区。敏捷,转而也被精益生产的最初的思想深深影响着。
所以说精益软件开发就是敏捷,或者说敏捷软件开发就是精益都是正确的。因此,"该采用敏捷软件开发还是精益软件开发呢?"这样问比"该采用Scrum还是敏捷呢?"这样问更不合理。

