精益来自丰田汽车生产方式,精益的核心就是以越来越少的投入——较少的人力、较少的设备、较短的时间和较小的场地创造出尽可能多的价值;同时也越来越接近用户,提供他们确实要的东西。因而,精益不单纯追求成本最低、企业眼中的质量最优,而是追求用户和企业都满意的质量、追求成本与质量的最佳配置、追求产品性能价格的最优比,达到用户和企业双赢。
丰田模式的两大支柱是: 持续改善和尊重他人。持续改善是挑战一切事物,持续改善的真正价值是创建持续学习的气氛和接受变化而且拥抱变化的环境。这有点颠覆我对持续改善的看法,可以把持续改善联系到管理的本质上来。
精益的目标是持续快速交付价值。敏捷也提倡持续快速交付。究竟精益和敏捷开发到底有什么不同?表面上看区别不大。
精益和敏捷开发都为了提高软件用户可以感知的质量以及软件开发的效率;都重视并拥抱项目中的需求变化;都追求将向用户交付真正性价比高的产品。
但敏捷更加关注软件开发及项目管理中的实践,而不太关注软件开发的业务环境。而精益可以应用于更广的领域,从软件开发实践到整个企业。而且越大范围地应用精益思想,潜在收益会越大。而软件开发仅仅是企业中的一部分,而敏捷方法好像是精益思想的一个实践。
但是敏捷开发的专注于与客户密切合作并尽快交付可以工作的软件。在精益角度看来,这也是非常有意义的,但是它的更专注于如何消除与客户价值无关的浪费。但消除浪费并不是精益的支柱。
总而言之,敏捷有很多的规范的方法,然而精益却没有,相反它有一整套推荐的最佳实践工具集可供选择。事实上,在实施精益软件开发时,普遍的做法是挑一种轻量级的敏捷方法作为开始,然后再应用这些精益方法。而这种精益方法对我们软件开发而言比较适合的就是Scrum。
如何将精益思想运用在我们的工作中?看板、站会、回顾会?这些工具能够实现尊重他人和持续改善,是否能实现精益的目标呢?这需要我们在工作中不断摸索。
还有一问题需要思考,精益中的创新体现在哪里?