Home > Articles > Articles > FEATURED BOOK: The Art of Lean Software Development

FEATURED BOOK: The Art of Lean Software Development

Written by Brad Appleton   
Tuesday, 09 June 2009 10:07
jun-09-bookreviewbigby Curt Hibbs, Steve Jewett and Mike Sullivan

With last month's announcement of the Lean Software and Systems Consortium at the 2009 Lean & Kanban Conference, it seems fitting that this month's book is about Lean Software Development and how Agile development practices support Lean Thinking.


The Art of Lean Software Development: A Practical and Incremental Approach is an introduction to Agile software development practices through the lense of Lean thinking. The first thing you need to know about this book is who its target audience is (and if you're a regular reader of the Agile Journal, it may not be you). For those who are already well-versed in agile methods, or have already read (and understood) any one of the Poppendieck's books, then this book is not for you!

One of the authors states very clearly in a comment on the publisher's website for the book:

    This book has a very specific purpose -- it is aimed squarely at the complete novice. The one who has been hearing all the Lean-Agile buzz, really knows nothing about it, and wants to learn more quickly to decide if they want to dig deeper (without having to read a 500 page tome).

    The book is premised on the Dreyfus model of skill acquisition using the notion that beginners need more prescriptive guidance. It introduces them to the history and concepts (without much depth) and tells them where to go to delve deeper. This book is meant to introduce such developers to the concepts and give some prescriptive guidance on how/where to dig deeper.


ba0609-1This is no "Lean eye for the Agile guy" book! If you're an Agile aficionado and liked James Shore's and Shane Warden's similarly titled Art of Agile development then you may be assuming that Hibbs et.al's book does for Lean software development what  Shore and Warden's book does for Extreme Programming. It doesn't. The Art of Lean Software Development doesn't try to be comprehensive or detailed or use a lot of examples. It is strictly introductory for the uninitiated. If you were thinking otherwise, you will be disappointed.

Now that we've finally gotten that out of the way ... The Art of Lean Software Development actually succeeds at its intended purpose. It is a very "lean" introduction to the subject of applying lean thinking to software development. (You can see for yourself by looking at the online excerpts of chapter 2 and chapter 4.)

Chapter 1 gives an introduction with the common failings attributed to waterfall and V-model lifecycles of software development, and discusses the Standish Group's CHAOS studies and reports. Then it mentions what the agile manifesto and principles are along with some very brief descriptions of a few agile methods. Next it gives a brief history of Lean and the key concepts of just-in-time (JIT), autonomation (jidoka), and waste (muda), as well as the five principles of Lean Thinking as per Womack & Jones: value, value stream, flow, pull, and perfection. (It even covers the eighth form of waste.) There is a succinct table of the more common Japanese terms in the Lean vocabulary along with their English translations.

Chapter 2 simply describes the Poppendieck's translation of the various forms of waste into the software domain, as well as describing translation of  Womack's & Jones' five principles of Lean thinking into the Poppendieck's seven principles of Lean software development. It ends with a brief discussion about the difference between Agile and Lean. And while that last section is accurate, I think it misses another key difference regarding Agile development's principles of emergence and collaborative self-organization and what that means for the expected relationship with the various levels of management in an organization.

The book spends the next six chapters describing the agile practices that the others believe are the most basic ones necessary for Lean software development, in order of importance:
(muda) as well as the five principles of
  • Practice 0: Source-Code Management (SCM) and Scripted Builds
  • Practice 1: Automated Testing
  • Practice 2: Continuous Integration
  • Practice 3: Less Code
  • Practice 4: Short Iterations
  • Practice 5: Customer Participation
The author's say that SCM and scripted-builds aren't really specific to Lean/Agile per-se, but that if you aren't doing them already, you pretty much need to drop everything else and do those first before trying any of the other practices.

The last chapter is entitled "What Next", and primarily talks about Kaizen, Kaizen workshops, value stream maps, 5-Whys and Kanban (all very briefly). Aside from the faux pas of lumping C together with Lisp as a "functional language", most everything in the book is very accurate, clear and concise and is described in an order that makes sense. As such, the book fulfills its purpose of being an overview for novices that gives them ample pointers for what other books and resources to go to for more detailed discussion and instruction.

I like just about everything that The Art of Lean Software Development has to say. It is a bit of a dry read but a very quick one. What I and a couple other reviewers didn't like so much about the book is what it doesn't say. In their case, it was a matter of mismatched expectations. Other reviewers with the properly set expectation agreed the book was a good, quick introduction.

For me, even understanding who the target audience was, while I fully appreciate the brevity and ease with which I was able to plow through the book, I still came away feeling more like I had read the "Cliff's Notes" for Lean Software Development rather than reading through the work itself. I'd still probably recommend the Poppendieck's Implementing Lean Software Development instead. But for those more interested in the abridged version or the line-manager's equivalent of a technical overview, The Art of Lean Software Development is a very quick and easy read that successfully introduces the history and essentials of Lean and Agile software development from a Lean thinking perspective.



About the Reviewer
Brad Appleton is an enterprise SCM/ALM solution architect for a Fortune 500 technology company. Currently he helps projects and teams adopt and apply agile development & SCM practices. Brad also author's the Agile CM Environments blog, and is co-author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, the "Agile SCM" column in CMCrossroads.com's CM Journal, and is a former section editor for The C++ Report. Since 1987, Brad has extensive experience using, developing, and supporting SCM environments for teams of all shapes and sizes. He holds an M.S. in Software Engineering and a B.S. in Computer Science and Mathematics.


Comments (0)Add Comment


Write comment

You must be logged in to post a comment. Please register if you do not have an account yet.

busy
Last Updated on Tuesday, 23 June 2009 17:08
 

Agile Marketplace - Announcements and Special Offers

AgilePalooza - Serious Learning in a Fun Atmosphere
AgilePaloozas are community events sponsored by VersionOne and Agile Journal.  These one day conferences provide serious learning in a fun atmosphere.   Two tracks are included: Learning Agility and Advancing Agility. Speakers include internationally recognized agile coaches and trainers. The next seminar will be held August 27th in Dallas, TX – use discount code agilejournal and save $20!
Register Here


CollabNet Subversion Edge Improves Governance, Security, Administration

Quickly configure SVN, Apache, and ViewVC with one certified stack, fronted by a powerful UI.
Try our beta version and let us know what you think!


Virtual Conference: Agile ALM for Distributed Development
Learn how Agile technologies can create efficiencies for your business, hear from industry experts, and network with your peers. CollabNet and their technology business partners present two tracks of valuable information—business and technical. This environment will be available until July 20, 2010 at 3:30pm PDT, so please come back as often as you like to access the resources and presentations.
Register Today!