软件业发展数十年,开发过程也一代接一代的往前变革着,估计不久就会出现敏捷的下一代。从接触敏捷开发开始,我的脑海里就有一个疑问,敏捷开发与传统制造业有关系吗?它的理论依据是不是来源于传统行业呢?直到最近看了一系列关于丰田模式的文章,才算是找到答案。
丰田的生产模式的核心就是精益生产,可以把它看作去除浪费,降低成本,提高效率的精神。时时刻刻以企业的系统性思考为理论基础。
1.从工厂的组织看。组装线以外的专职人员都不创造价值,把清理现场、工具小修、质量检查的任务都下放到生产小组,允许这些小组定期讨论改进工艺。这明显的可以映射到敏捷开发中破除silo,取而代之的是团队开发模式。团队中的开发、测试、BA、文档等都可以紧密合作,同时不停的讨论如何找到最适合自己的一套运转模式和节奏。
2.供货关系。丰田与协作厂商之间不再是合同关系,而是互相有人员交流,资金交流(互相持股),推行自己的生产模式。这就是敏捷中著名的pig and chicken的故事吧。
3.多品种、小批量。这就是随着市场上的需求越来越丰富,对供货速度要求越来越苛刻。那么敏捷是不是最主要的就是应付这类问题呢?我们需要不停的产出故事或者特性,让PO或者客户去用,再拿到反馈,而不是一作作个半年,从黑屋子里走出来的时候,世道已经不同了。
4.充分满足客户需求。按订单生产,将零售商纳入生产开发的计划中。而不是把自己的货强行推给零售商,拿零售商当缓冲。敏捷中我们强调的也是一切皆为需求,开发人员不得以任何借口来弱化需求。
从以上的内容,我们可以看出丰田的精益生产和我们软件开发中的敏捷流程其原则和目的是非常接近的。