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在很多方面都是相通的,但也有一些不同,以后会再谈这个问题。

相关文章推荐

wiki百科翻译之Lean software development之Eliminate waste

Eliminate waste 减少浪费 Lean philosophy regards everything not adding value to the customer as waste ...

wiki百科翻译之Lean software development之Amplify learning

Amplify learning增强学习Software development is a continuous learning process based on iterations when w...

wiki百科翻译之Lean software development之Decide as late as possible

Decide as late as possible延迟决定As software development is always associated with some uncertainty, be...

wiki百科翻译之Lean software development之Contents

Lean software development精益软件开发From Wikipedia, the free encyclopediaLean software development (LSD) ...

Lean Software Development

  • 2009年05月05日 16:33
  • 3.3MB
  • 下载

【奔跑的FPGA】part seven DE1-SOC引脚分配与导入方法

在使用Qt ii进行FPGA开发的时候经常需要进行引脚分配工作,如果采用传统的方法不仅费时而且容易出错,以下使用新方法进行引脚的批量化分配以及管理,方便快捷,具有较强的可移植性。 引脚分配方法1:直接...

Implementing.Lean.Software.Development

  • 2007年11月07日 09:23
  • 1.9MB
  • 下载

Principles of Computing (Part 2) -- week 1

1. The importance of Searching 2. Generators Generators are a kind of iterator that are defined l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lean Software Development, Part 1: Seven Principles
举报原因:
原因补充:

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