Lean Software Development, Part 1: Seven Principles

原创 2007年09月13日 10:33:00

Lean是从丰田的生产以及开发方式发展出来的一种过程管理方法,从90年代开始被很广泛的研究。几年前的一本书《Lean Software Development》将Lean方法引入了软件开发领域,当时读了就觉得此书非同一般,非常有收获。所以决定将其精华整理一下,做个笔记。Lean在中文里翻译成“精益”,感觉总是怪怪的,所以我就直接用英文了。

首先概括一下Lean软件开发的七个原则。

1. 消灭浪费(Eliminate Waste)

这是Lean最基本的一个原则。丰田的大野耐一说过,我们所做的就是观察从客户给我们一个订单直到我们收到付款这个时间段,并且通过消灭无价值的浪费来缩短这个时间段。(All we are doing is looking at the timeline from the moment a customer gives us an order to the point when we collect the cash. And we are reducing that timeline by removing the nonvalue-added wastes.)软件开发中最大的浪费就是多余的功能。

2. 品质为先(Build Quality In)

从一开始就注重品质,而不是最后依靠测试。测试的任务不是发现缺陷而是预防缺陷,测试驱动开发(TDD)就是一个很好的实践。

3. 创建知识(Create Knowledge)

软件开发是个创建知识的过程。开发之前我们应该有一个基本架构,但是实际上,详细的设计总是发生在编码时的。我们不但应该有一个鼓励大家系统学习的开发流程,而且应该不断的改进这个流程。

4. 推迟决定(Defer Commitment)

首先我们应该依靠灵活的设计来使的大多数的决定是可逆的,这样就可以作出决定并在以后轻松的改变它。不可逆的决定(比如使用哪种开发语言等)应该尽可能的推迟,直到不得不作出这个决定时,因为此时我们拥有最多的信息。

5. 快速交付(Deliver Fast)

我们应该尽快的交付软件,这样客户才会满意,并且可以让客户没有时间来改变他们的想法。快速的交付还可以削除大量的浪费。

6. 尊重员工(Respect People)

软件开发以人为本,人是软件开发团队中最重要的资源。

7. 全局优化(Optimize the Whole)

软件开发中很容易发生局部优化,但是一个Lean的团队应该优化整个价值流(value stream),即从收到一个订单开始直到软件发布以及维护。

另外,从这些原则看出,Lean和Agile在很多方面都是相通的,但也有一些不同,以后会再谈这个问题。

精益软件开发(Lean Software Development)

Introducing Lean Software Development IntroductionAs software systems grow more complex and more peo...
  • pengjian007
  • pengjian007
  • 2008年06月18日 14:51
  • 2950

Lean Software Development的七个原则与管理观念

在agilesoftwaredevelopment.com看到一篇Seven Principles of Lean Software Development才知道原来Agile Software De...
  • esebella
  • esebella
  • 2009年12月02日 12:59
  • 1116

Lean Software Development, Part 2: Eliminate Waste

消灭浪费是Lean的第一原则,要消灭浪费,首先就要找到浪费。《Lean Software Development》中提供了一种Value Stream Map的工具,就是把整个流程用图表示出来,从而轻...
  • dimstar
  • dimstar
  • 2007年09月17日 10:32
  • 858

《Agile Software Development: Principles, Patterns, and Practices》

这是一本获2003年Jolt大奖的书籍,国内第二版也已经出版了,可惜是在我买这本书之后才出版的。书的前六章虽然简短,对敏捷开发原则、计划、测试、重构等方方面面地介绍却很精彩,后续六章对敏捷开发设计原则...
  • saintxzm
  • saintxzm
  • 2007年07月26日 17:18
  • 1667

Lean Software Development, Part 3: Build Quality In

1. 一致性 作者定义了两种类型的一致性:感官一致性(Perceived Integrity)和概念一致性 (Conceptual Integrity),或者说外在一致性和内在一致性。感官一致性就是用...
  • dimstar
  • dimstar
  • 2007年10月10日 10:33
  • 606

Lean software development

关于敏捷和XP的介绍,大多都会说到避免过度的设计,未来是多变的不可预测的。今天又看到一篇文章,把大家所熟悉的丰田的精益生产跟Agile做了类比,这个比喻就比较形象了。WikiPedia上关于精益软件开...
  • optman
  • optman
  • 2008年03月02日 21:47
  • 631

Computer Networks. Concepts

1 OSI, open system interconnection The principles that were applied to arrive at the seven layers...
  • sjyhehe
  • sjyhehe
  • 2015年01月12日 09:11
  • 640

Principles of Software Development

Develop Software IterativelyIterative development means analyzing, designing, and implementing incre...
  • echo3
  • echo3
  • 2005年12月10日 13:26
  • 956

Principles of Software Development (aka Principles of Shipping)

Before we jump into the principles, I want to call out a few things:No exceptions to the rules : Th...
  • Agilelee
  • Agilelee
  • 2010年08月10日 09:36
  • 487

Amazon Leadership Principles

Amazon Leadership Principles Whether you are an individual contributor or a manager...
  • besley
  • besley
  • 2012年11月22日 14:03
  • 1188
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lean Software Development, Part 1: Seven Principles
举报原因:
原因补充:

(最多只允许输入30个字)