Lean Software Development

Lean development is the application of Lean principles to software development. Lean got its start in manufacturing, as a way to optimize the production line to minimize waste and maximize value to the customer. These two goals are also relevant to software development, which also follows a repeatable process, requires particular quality standards, and relies on the collaboration of a group of specialized workers in order to get done.
Of course, there are some major differences between manufacturing and software development, as well -- namely, that manufacturing deals with the production of physical goods, while the value being created in software development is created within the mind of the developer.
Applying Lean principles to knowledge work requires a shift in mindset however, in terms of how value, waste, and other key Lean concepts are defined. Read this post to learn how these 7 Lean principles apply to software development practices. 
7 Lean Development Principles
The seven principles of Lean development are: Eliminate Waste, Build Quality In, Create Knowledge, Defer Commitment, Deliver Fast, Respect People, and Optimize the Whole. In their book, Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck outlined how these Lean principles can be applied to software development. Here is a brief summary of each of these principles, as well as practical tips on how to apply them in software development.
Eliminate Waste
Build Quality In
Create Knowledge
Defer Commitment
Deliver Fast
Respect People
Optimize the Whole
 
 
Books Recommended:
Lean Software Development: An Agile Toolkit (Agile Software Development Series)
by Mary Poppendieck and Tom Poppendieck