Book Review: Lean-Agile Software Development
Buy it now
One Minute Bottom Line
|This book is a pratical guide to understanding the impact on the business of adopting agile software development practices. It's a good primer on lean ideas and how they are the perfect business companion to an agile team.|
ReviewAgile Software Development is no longer a "new thing". It's a well accepted and adopted set of practices; a way of developing software that is regarded as efficient, cost-effective and with high quality output. But how do you manage an agile team when many of the practices that make it succesful (like frequent release, commitment to a fixed scope, self-sustained pace) are not in sync with the traditional way of doing business?
Lean-Agile Software Development explains why the transition to agile methodologies must involve the whole business, not only the developers, and offers insights and pratical advice on how the business side of things can achieve the maximum return from an agile team. While the book is not very long or heavy, the calm and clear language in which it is written carries a lot of concepts and information.
The book is divided in three parts: the first part presents the lean philosophy as a business-level complement to agile methodologies at the team level; it explains how Lean provides a global, higher level view to better direct and organize agile teams that are more focused on details and small increments.
The second part is a collection of focused chapters that address specific themes: the role of architecture, how to prepare for Iteration 0, how to avoid some Scrum limitations and pitfalls, and so on.
The third part, which is just the last chapter, recaps the main ideas of the book and illustrates how they are rooted in the real world, using the authors' experience on coaching and mentoring agile teams and lean management.
The last chapter also reviews in a unified way the extensive bibliography that closes every other chapter, organizing a comprehensive body of knowledge to sustain the ideas presented all through the book, and to offer opportunities of further investigation. The two appendixes, then propose a Team Extimation Game to practice the methods involved, and a modellization of the lean thinking model applied to software development.
Like many things in methodology or best practices, the main ideas that the book proposes are quite simple, or even sometimes obvious. But their conscious, through, and constant application is what changes the way you work and greatly improve the quality and value of the output. Moreover, the clear exposition of lean principles and way of thinking does a lot to explain to the developers what the managers want, and to the managers how to obtain it from the developers without impeding their newly acquired speed and focus. It even explains how to avoid the trap of abusing some of the otherwise good traits of the most common agile methods that can lead to team opacity and mis(sed) communication instead of promoting transparency.
Some readers may find this book too "lightweight"; but it's really part of the lean methodology to keep the methods and processes skinny and nimble, and pushing on getting the value to the customer as soon as possible, cutting waste and resolving problems along the way. Everything other than this objective must be removed if is not demonstrably really needed in the process; every impediment to the value tranfer must be removed; every difficulty must be acknowledged, not hidden, and corrected, modifying the process accordingly.
Everyone (especially managers and businesses) that thinks that lean and agile mean less discipline and less control will find (one more time) that agile methodologies require no less discipline, concentration and organization that waterfall methods. Some authors believe they require more, in fact. Combined with lean, agile becomes a very business oriented tool to realize complete transparency of the development costs and status, and to enable powerful and well-informed management decisions. Many teams abused the methods by calling management control "impediment" and asking for its removal, with the illusion of getting more freedom and silencing a distant and disruptive voice; lean instead demonstrates how management can, when correctly and trasparently informed, make the right decisions and correctly evaluate the costs of interruptions, balancing them with the returns on business opportunities.
Lean-Agile Software Development is a book for both camps, management and development: is a book on how business can obtain the maximum return for having and productive healthy agile team without impending its rythm and focus, and how development teams can understand the business consequences of the organization of work and the management of change.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)