This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
We see many large and small organizations faced with serious competition adopting Lean in other areas of their manufacturing, office processes, logistics and supply chain processes and usually, they run into IT as a barrier to making improvements in their operations in other areas so they look into applying Lean to their software development. Lean is a system of management, not a collection of practices or a methodology. The starting point is to understand Lean thinking. The last slide in our classes lists 7 books we find most valuable to address issues commonly faced in implementing Lean in their software development work.
1. Taiichi Ohno - "Toyota Production System" - The book from the person who initially put together the ideas we now call Lean.
2. "Lean Software Development - An Agile Toolkit" - 21 thinking tools for applying Lean thinking to software development.
3. Michael Kennedy - "Product Development for the Lean Enterprise" - A business novel similar to Goldratt's "The Goal". Software development is much more like product development than manufacturing. Kennedy reports how Toyota does PRODUCT development.
4. Mike Cohn "Agile Estimating and Planning" - a masterpiece which lays out approaches to ensuring reliable delivery by effective application of agile techniques.
5. Michael Feathers - "Working Effectively with Legacy Code" - A fundamental practice of lean is mistake proofing processes so mistakes do not cause defects and slow the work. Agile uses TDD as a major tool to mistake proof its work and ensure that design decisions are not inadvertently broken by later work. This is notoriously difficult for legacy systems which we define as those which were not developed using TDD. Michael Feathers offers powerful strategies for dealing with this situation.
6. Rick Mugridge and Ward Cunningham - "Fit for Developing Software" - Xunit tests specify the behavioral design intent of the people writing the code. Fit Tests specify the behavioral design intent of the team members who are designing the product or business process. Rick and Ward offer a marvelous introductory book which both explains how Fit works (including Fit Library extensions) and how Fit works for an agile team in focusing interaction between the "customer" members and the "implementor" members of the team.
7. "Implementing Lean Software Development - From Concept to Cash" - The topic of our class which shares what we have learned from the organizations we have interacted since we published our first book.
Depending on your specific context and problems, we often recommend other books as well.