Wednesday, February 10, 2010

The Art of Lean Software Development

Authors: Curt Hibbs, Steve Jewett & Mike Sullivan
Published: 2009
Publisher: O'Reilley Media Inc.
Paperback: 144 pages

Got this book as a part of conference kit, when I attended the Agile India Conference conducted by Agile Software Community of India.

It is a brief introduction to the Lean methodology as applied to the software development process. This also gives a roadmap for getting started on Lean.

The first chapter introduces us to the Lean Principles after setting the context by discussing the problems in software development and the success stories of Agile and Lean methodologies.

The next chapter provides an overview of how Lean can be applied to software development. It also compares the Lean and Agile Methodologies. Both the methodologies aim to improve the software quality (from customer's perspective) and productivity; both view requirement changes positively ; both place highest value on delivering the software that meet the customer's real needs (not the initial perceived customer needs). The difference between these two approaches lie in their respective primary focus. While the primary focus of Agile software process is on close collaboration with customer and the earliest possible delivery of working software, the Lean methods focus on eliminating waste in context of what customer values.
Lean considers defects, extra features (unasked for features), handoffs, delays due to waiting , partially completed work, task switching and process overheads as wastes and strives to eliminate them.

The authors recommend six basic practices necessary for successful Lean implementation. They are:
  1. Source Code Management and Scripted Builds
  2. Automated Testing
  3. Continuous Integration
  4. Less Code
  5. Short Iterations
  6. Customer Participation
Each of the above practice has a complete chapter dedicated to it. These chapters outline how to go about implementing these practices and also provide tips on how to overcome the impediments encountered on the way.

The last chapter introduces the concepts of Lean thinking and analysis practices - Kaizen, Value Stream Maps, Root Cause Analysis (Five Whys) and Kanban.
In my opinion each of these topics deserved a dedicated chapter so that more details could have been discussed. This would have greatly enhanced the value of the book (probably its bulk and price too !)

The book also provides a comprehensive list of books for further reading.

On the whole a very well written book in a easy to understand language. Highly recommended for an absolute newbie to Lean.

No comments:

Post a Comment