DZone has the answer.
With the help of DZone's 300-member Book Review Team, we're picking our Top 100 Book Recommendations for Developers. Over the next few months, we'll be bringing you our top picks in each major category of development, including Java, .NET, Agile, Web Design, and more.
This week's category is Agile and Lean Software development. There were a lot of great books to choose from. This list is focused on the processes under the Agile and Lean umbrellas that facilitate the efficient development of better software.
DZone's Top 10 Agile Books
1. Agile Estimating and Planning by Mike Cohn"We know how to build predictive plans and manage them. But building plans that only estimate the future and then embrace change, challenge most of our training and skills. In Agile Estimating and Planning, Mike Cohn once again fills a hole in the Agile practices, this time by showing us a workable approach to Agile estimating and planning. Mike delves into the nooks and crannies of the subject and anticipates many of the questions and nuances of this topic. Students of Agile processes will recognize that this book is truly about agility, bridging many of the practices between Scrum and ExtremeProgramming."
—Ken Schwaber, Scrum evangelist, Agile Alliance cofounder, and signatory to the Agile Manifesto
"Mike's writing style captures the essence of agility-just the right amount of information to bring clarity to the reader. This book provides an excellent guide for all Agile practitioners, both seasoned and novice."
—Robert Holler, President and CEO, VersionOne, LLC
"It is as if Mike took the distilled knowledge regarding planning and estimation of a great Agile developer (which he is) and laid out all he knows in an easily understandable manner. More importantly, he has a great mix of concepts with real-world examples finished off with a case study so the reader can relate the information to their own situation. Unless you are already an expert Agile planner and estimator, this book is for you."
—Alan Shalloway, CEO, Senior Consultant, Net Objectives, and coauthor of Design Patterns Explained, Second Edition (Addison-Wesley, 2005)
Mike Cohn is a DZone MVB.
2. Agile Software Development, Principles, Patterns, and Practices by Robert (Bob) C. MartinThis excellent book includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application—from the early stages of analysis, through the low-level design and into the implementation. Walks readers through the designer's thoughts — showing the errors, blind alleys, and creative insights that occur throughout the software design process.
The book covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies. Covers traps, pitfalls, and work arounds in the application of C++ and OOD and then shows how Agile methods can be used. Discusses the methods for designing and developing big software in detail. Features a three-chapter, in-depth, single case study of a building security system. For Software Engineers, Programmers, and Analysts who want to understand how to design object oriented software with state of the art methods.
You should also check out Bob Martin's "Clean Code: A Handbook of Agile Software Craftsmanship", which is more focused on code writing and review techniques.
3. Agile Retrospectives: Making Good Teams Great by Esther Derby, Diana Larsen, and Ken SchwaberSee how to mine the experience of your software development team continually throughout the life of the project. The tools and recipes in this book will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult "people" issues on your team.
Project retrospectives help teams examine what went right and what went wrong on a project. But traditionally, retrospectives (also known as "post-mortems") are only helpful at the end of the project--too late to help. You need agile retrospectives that are iterative and incremental. You need to accurately find and fix problems to help the team today.
Now, Derby and Larsen show you the tools, tricks, and tips you need to fix the problems you face on a software development project on an on-going basis. You'll see how to architect retrospectives in general, how to design them specifically for your team and organization, how to run them effectively, how to make the needed changes, and how to scale these techniques up. You'll learn how to deal with problems, and implement solutions effectively throughout the project--not just at the end.
With regular tune-ups, your team will hum like a precise, world-class orchestra.
4. Succeeding with Agile: Software Development Using Scrum by Mike Cohn“If making the move to agile has always baffled you, then this book will unlock its mysteries. Mike Cohn gives us all the definitive, no-nonsense guide to transforming your organization into a high-powered, innovative, and competitive success.”
–Steve Greene, Senior Director, Program Management and Agile Development, Salesforce.com
“The title says it all; this is an astonishingly insightful and pragmatic guide to succeeding with agile software development. If you only read one agile book, this is the one. I want to give it to all my clients now!”
–Henrik Kniberg, Agile Coach, Agile Alliance Board Member, Author of Scrum and XP from the Trenches
“Whether you’re just starting out or have some Scrum experience under your belt, in Succeeding with Agile, Mike Cohn provides a wealth of information to guide you in your quest toward continuous improvement. Throughout the book, concepts are reinforced with practical everyday advice, including how to handle objections and thought-provoking ‘things to try now.’ An extensive list of recommended readings round this out to be a must have book.”
–Nikki Rohm, Studio Director Project and Resource Management, Electronic Arts
“Succeeding with Agile is at once enormously practical, deeply insightful, and a pleasure to read. It combines great ideas with stories and examples from around the software industry and will appeal to a wide range of readers, from those looking to adopt a new company-wide agile process to developers who just need to improve the way a team is running a single project.”
–Andrew Stellman, Developer, Project Manager, and Author of Head First PMP, Beautiful Teams, Applied Software Project Management
5. Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory“With Agile Testing, Lisa and Janet have used their holistic sensibility of testing to describe a culture shift for testers and teams willing to elevate their test effectiveness. The combination of real-life project experiences and specific techniques provide an excellent way to learn and adapt to continually changing project needs.”
–Adam Geras, M.Sc. Developer-Tester, Ideaca Knowledge Services
“On Agile projects, everyone seems to ask, ‘But, what about testing?’ Is it the development team’s responsibility entirely, the testing team, or a collaborative effort between developers and testers? Or, ‘How much testing should we automate?’ Lisa and Janet have written a book that finally answers these types of questions and more! Whether you’re a tester, developer, or manager, you’ll learn many great examples and stories from the real-world work experiences they’ve shared in this excellent book.”
–Paul Duvall, CTO of Stelligent and co-author of Continuous Integration: Improving Software Quality and Reducing Risk
“Refreshingly pragmatic. Chock-full of wisdom. Absent of dogma. This book is a gamechanger. Every software professional should read it.”
–Uncle Bob Martin, Object Mentor, Inc.
6. Extreme Programming Installed by Ron Jeffries, Ann Anderson, and Chet HendricksonHow much would you pay for a software development team that would do what you want? Wait, don't answer yet--what if they could also tell you how much it would cost, so that you could decide what to do and what to defer, on your way to your deadline? You also get quality software, a robust array of tests that support the project through its entire lifecycle, and an up-to-date, clear view of project status. Best of all, you get the ability to change your mind about what you want, at any time.
There aren't any silver bullets in software development, and there probably never will be. However, Extreme Programming is a simple set of common-sense practices that, when used together, really can give you much of what you just read in the paragraph above. In this book, we tell you what the XP practices are, and how to install them in your project.
We are software developers. We have been involved in many successful projects, and even in some that weren't so successful. The successful ones were a lot more fun, for us, and for our customers. The unsuccessful ones have taught us a great deal about software development.
The first book in the Extreme Programming series, Extreme Programming Explained , covers the reasoning behind the XP process. Based on our experience on the original XP project (and others), this book describes what makes XP work, day to day and month to month.
7. Behind Closed Doors: Secrets of Great Management by Johanna Rothman, and Esther DerbyPerfect for someone who manages developers. Great management is difficult to see as it occurs. It's possible to see the results of great management, but it's not easy to see how managers achieve those results. Great management happens in one-on-one meetings and with other managers---all in private. It's hard to learn management by example when you can't see it.
You can learn to be a better manager---even a great manager---with this guide. You'll follow along as Sam, a manager just brought on board, learns the ropes and deals with his new team over the course of his first eight weeks on the job. From scheduling and managing resources to helping team members grow and prosper, you'll be there as Sam makes it happen. You'll find powerful tips covering:
• Delegating effectively
• Using feedback and goal-setting
• Developing influence
• Handling one-on-one meetings
• Coaching and mentoring
• Deciding what work to do---and what not to do
• ...and more.
Johanna Rothman is a DZone MVB.
8. Leading Lean Software Development: Results Are Not the Point by Mary and Tom PoppendieckThe Poppendiecks have written some of the most authoritative works on Lean software development, and Mary is a Foremost Lean Expert who speaks at many conferences. This book shows software leaders and team members exactly how to drive high-value change throughout a software organization—and make it stick. They go far beyond generic implementation guidelines, demonstrating exactly how to make lean work in real projects, environments, and companies.
The Poppendiecks organize this book around the crucial concept of frames, the unspoken mental constructs that shape our perspectives and control our behavior in ways we rarely notice. For software leaders and team members, some frames lead to long-term failure, while others offer a strong foundation for success. Drawing on decades of experience, the authors present twenty-four frames that offer a coherent, complete framework for leading lean software development.
This is aimed at people who lead/manage development teams and helps you on your continuous improvement journey from mapping your value stream, eliminating waste to implementing a pull system with a Kanban board for visibility. Really good read.
-Robin Bramley, DZone Book Reviewer
Other popular books by the Poppendiecks include "Leading Lean Software Development: From Concept to Cash", and Lean Software Development: An Agile Toolkit.
9. Lean-Agile Software Development: Achieving Enterprise Agility by Alan Shalloway, Guy Beaver, and James R. TrottAgile techniques have demonstrated immense potential for developing more effective, higher-quality software. However,scaling these techniques to the enterprise presents many challenges. The solution is to integrate the principles and practices of Lean Software Development with Agile’s ideology and methods. By doing so, software organizations leverage Lean’s powerful capabilities for “optimizing the whole” and managing complex enterprise projects.
A combined “Lean-Agile” approach can dramatically improve both developer productivity and the software’s business value.In this book, three expert Lean software consultants draw from their unparalleled experience to gather all the insights, knowledge, and new skills you need to succeed with Lean-Agile development.
“This book is a timely addition to our Agile body of knowledge. Very little has been said to date about how we scale Agile software projects beyond the single team. The authors do an excellent job of explaining the foundations of Lean thinking and how these concepts can be applied across the enterprise. Lean is the key to scaling Agile projects, and this book provides the foundational knowledge you need to make it happen.”
–Mike Cottmeyer, Agile evangelist
“For a good few years, when asking why Agile approaches work, we got the response ‘It’s empirical. We tried things and kept the ones that worked.’ Now people have applied theory from the Lean body of knowledge, and it tells us why Agile approaches work. Using this theory, we can make well-reasoned choices about what changes to our ways of working would be improvements, overall. This book is about this synergy between Lean and Agile. For those who believe in magic, find an empirical guru to believe. For the rationalists among us, here’s a good book for you.”
–Paul Oldfield, Capgemini
10. The Art of Agile Development by James Shore and Shane WardenThe Art of Agile Development contains practical guidance for anyone considering or applying agile development for building valuable software. Plenty of books describe what agile development is or why it helps software projects succeed, but very few combine information for developers, managers, testers, and customers into a single package that they can apply directly. This book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience with Extreme Programming (XP). You get a gestalt view of the agile development process, including comprehensive guidance for non-technical readers and hands-on technical practices for developers and testers. The Art of Agile Development gives you clear answers to questions such as:
• How can we adopt agile development?
• Do we really need to pair program?
• What metrics should we report?
• What if I can't get my customer to participate?
• How much documentation should we write?
• When do we design and architect?
• As a non-developer, how should I work with my agile team?
• Where is my product roadmap?
• How does QA fit in?
James Shore is a DZone MVB.
Which of these choices did you agree/disagree with? What books would you add/subtract in this list?
Read the other parts in this series:
DZone MVB Jurgen Appelo has a great 'top 100' list of Agile and Lean Books